summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.hgtags1
-rwxr-xr-xautobuild.xml272
-rwxr-xr-xdoc/contributions.txt38
-rw-r--r--indra/cmake/00-COMPILE-LINK-RUN.txt344
-rwxr-xr-xindra/cmake/00-Common.cmake2
-rwxr-xr-xindra/cmake/Boost.cmake13
-rwxr-xr-xindra/cmake/Copy3rdPartyLibs.cmake29
-rwxr-xr-xindra/cmake/FreeType.cmake2
-rwxr-xr-xindra/cmake/GoogleMock.cmake2
-rwxr-xr-xindra/cmake/LLPrimitive.cmake28
-rwxr-xr-xindra/cmake/Linking.cmake1
-rwxr-xr-xindra/cmake/OpenSSL.cmake4
-rwxr-xr-xindra/cmake/PNG.cmake25
-rwxr-xr-xindra/cmake/WebKitLibPlugin.cmake43
-rwxr-xr-xindra/cmake/ZLIB.cmake21
-rwxr-xr-xindra/edit-me-to-trigger-new-build.txt1
-rwxr-xr-xindra/llaudio/llaudiodecodemgr.h2
-rwxr-xr-xindra/llcommon/CMakeLists.txt2
-rwxr-xr-xindra/llcommon/llmemory.h3
-rwxr-xr-xindra/llmessage/lltransfermanager.cpp8
-rwxr-xr-xindra/media_plugins/quicktime/media_plugin_quicktime.cpp28
-rwxr-xr-xindra/media_plugins/webkit/CMakeLists.txt12
-rwxr-xr-xindra/newview/CMakeLists.txt29
-rw-r--r--indra/newview/VIEWER_VERSION.txt2
-rw-r--r--indra/newview/app_settings/filters/BlackAndWhite.xml14
-rw-r--r--indra/newview/app_settings/filters/Sepia.xml25
-rwxr-xr-xindra/newview/app_settings/settings.xml13
-rwxr-xr-xindra/newview/icons/beta/secondlife_128.pngbin18268 -> 16200 bytes
-rwxr-xr-xindra/newview/icons/beta/secondlife_16.pngbin3536 -> 1020 bytes
-rwxr-xr-xindra/newview/icons/beta/secondlife_256.pngbin49418 -> 49119 bytes
-rwxr-xr-xindra/newview/icons/beta/secondlife_32.pngbin4767 -> 2252 bytes
-rwxr-xr-xindra/newview/icons/beta/secondlife_48.pngbin6438 -> 3940 bytes
-rwxr-xr-xindra/newview/icons/beta/secondlife_512.pngbin151779 -> 157618 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_128.pngbin17706 -> 15587 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_16.pngbin3471 -> 956 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_256.pngbin48488 -> 48230 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_32.pngbin4675 -> 2153 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_48.pngbin6195 -> 3704 bytes
-rwxr-xr-xindra/newview/icons/project/secondlife_512.pngbin149145 -> 155555 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_128.pngbin17198 -> 15184 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_16.pngbin3524 -> 1009 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_256.pngbin47946 -> 47740 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_32.pngbin4746 -> 2237 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_48.pngbin6249 -> 3748 bytes
-rwxr-xr-xindra/newview/icons/release/secondlife_512.pngbin147963 -> 154396 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_128.pngbin17156 -> 15058 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_16.pngbin3471 -> 956 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_256.pngbin47522 -> 47320 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_32.pngbin4644 -> 2130 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_48.pngbin6115 -> 3630 bytes
-rwxr-xr-xindra/newview/icons/test/secondlife_512.pngbin146971 -> 153502 bytes
-rw-r--r--indra/newview/llfloaterfacebook.cpp327
-rw-r--r--indra/newview/llfloaterfacebook.h46
-rw-r--r--indra/newview/llfloaterflickr.cpp23
-rw-r--r--indra/newview/llfloaterflickr.h1
-rwxr-xr-xindra/newview/llfloaterland.cpp7
-rwxr-xr-xindra/newview/llfloaterregioninfo.cpp21
-rwxr-xr-xindra/newview/llfloaterregioninfo.h2
-rwxr-xr-xindra/newview/llfloatersnapshot.cpp163
-rwxr-xr-xindra/newview/llfloatertopobjects.cpp24
-rwxr-xr-xindra/newview/llfloatertopobjects.h1
-rw-r--r--indra/newview/llfloatertwitter.cpp23
-rw-r--r--indra/newview/llfloatertwitter.h1
-rwxr-xr-xindra/newview/llinventoryfilter.cpp51
-rwxr-xr-xindra/newview/llinventoryfilter.h13
-rwxr-xr-xindra/newview/llinventorypanel.cpp5
-rwxr-xr-xindra/newview/llinventorypanel.h1
-rwxr-xr-xindra/newview/llpanelmaininventory.cpp43
-rwxr-xr-xindra/newview/llpanelsnapshot.cpp19
-rwxr-xr-xindra/newview/llpanelsnapshot.h1
-rwxr-xr-xindra/newview/llpanelsnapshotinventory.cpp13
-rwxr-xr-xindra/newview/llpanelsnapshotoptions.cpp11
-rwxr-xr-xindra/newview/llpanelsnapshotpostcard.cpp26
-rw-r--r--indra/newview/llsnapshotlivepreview.cpp32
-rw-r--r--indra/newview/llsyntaxid.cpp17
-rwxr-xr-xindra/newview/lltexturefetch.cpp355
-rwxr-xr-xindra/newview/lltextureview.cpp4
-rwxr-xr-xindra/newview/llviewermessage.cpp140
-rwxr-xr-xindra/newview/llviewerregion.cpp4
-rwxr-xr-xindra/newview/skins/default/textures/bottomtray/ChatBarHandle.pngbin2808 -> 260 bytes
-rwxr-xr-xindra/newview/skins/default/textures/bottomtray/Move_Fly_Off.pngbin3347 -> 609 bytes
-rwxr-xr-xindra/newview/skins/default/textures/bottomtray/Notices_Unread.pngbin3693 -> 436 bytes
-rwxr-xr-xindra/newview/skins/default/textures/bottomtray/Snapshot_Off.pngbin3204 -> 549 bytes
-rwxr-xr-xindra/newview/skins/default/textures/down_arrow.pngbin2936 -> 423 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Edit_Wrench.pngbin3000 -> 452 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Generic_Group_Large.pngbin7507 -> 5274 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Generic_Person.pngbin3280 -> 481 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Hierarchy_View_On.pngbin2839 -> 306 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_Link.pngbin2857 -> 317 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_LostClosed.pngbin3033 -> 526 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_LostOpen.pngbin3223 -> 708 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_Mesh.pngbin3263 -> 751 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_SysClosed.pngbin3153 -> 643 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_SysOpen.pngbin3251 -> 734 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_TrashClosed.pngbin2978 -> 465 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Inv_TrashOpen.pngbin2970 -> 457 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.pngbin3221 -> 681 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.pngbin3235 -> 696 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_Fly_Dark.pngbin3077 -> 474 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.pngbin3194 -> 680 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.pngbin3189 -> 680 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.pngbin3011 -> 452 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.pngbin3011 -> 453 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Person_Check.pngbin3824 -> 925 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Person_Star.pngbin3762 -> 739 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/SL_Logo.pngbin3999 -> 1484 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Shop.pngbin3052 -> 473 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/Web_Profile_Off.pngbin2961 -> 410 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/back_arrow_off.pngbin3775 -> 1261 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/back_arrow_over.pngbin3792 -> 1277 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/back_arrow_press.pngbin3844 -> 1329 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/check_mark.pngbin3166 -> 650 bytes
-rwxr-xr-xindra/newview/skins/default/textures/icons/pop_up_caution.pngbin3158 -> 642 bytes
-rwxr-xr-xindra/newview/skins/default/textures/menu_separator.pngbin2831 -> 304 bytes
-rwxr-xr-xindra/newview/skins/default/textures/model_wizard/progress_bar_bg.pngbin3180 -> 556 bytes
-rwxr-xr-xindra/newview/skins/default/textures/model_wizard/progress_light.pngbin2979 -> 464 bytes
-rwxr-xr-xindra/newview/skins/default/textures/navbar/Search.pngbin3182 -> 516 bytes
-rwxr-xr-xindra/newview/skins/default/textures/navbar/separator.pngbin2826 -> 330 bytes
-rwxr-xr-xindra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.pngbin2899 -> 355 bytes
-rwxr-xr-xindra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.pngbin2886 -> 339 bytes
-rwxr-xr-xindra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.pngbin2896 -> 341 bytes
-rwxr-xr-xindra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.pngbin2920 -> 344 bytes
-rw-r--r--indra/newview/skins/default/textures/toolbar_icons/facebook.pngbin2974 -> 424 bytes
-rwxr-xr-xindra/newview/skins/default/textures/toolbar_icons/mini_cart.pngbin2987 -> 474 bytes
-rwxr-xr-xindra/newview/skins/default/textures/up_arrow.pngbin2930 -> 426 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/Arrow_Down.pngbin3066 -> 467 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.pngbin3576 -> 801 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.pngbin4309 -> 1873 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.pngbin4272 -> 1828 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.pngbin4278 -> 1851 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.pngbin3425 -> 746 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.pngbin4151 -> 1726 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.pngbin4137 -> 1696 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.pngbin4200 -> 1767 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.pngbin3169 -> 538 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.pngbin3845 -> 1388 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.pngbin3867 -> 1410 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.pngbin3915 -> 1477 bytes
-rwxr-xr-xindra/newview/skins/default/textures/widgets/Tooltip.pngbin2910 -> 402 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Close_Foreground.pngbin2871 -> 352 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Help_Foreground.pngbin3084 -> 451 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Help_Press.pngbin3062 -> 451 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.pngbin2839 -> 301 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Minimize_Press.pngbin2839 -> 301 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Restore_Foreground.pngbin2955 -> 446 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/Icon_Restore_Press.pngbin2971 -> 406 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_arrow_down.pngbin3170 -> 573 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_arrow_left.pngbin3059 -> 482 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_arrow_lower_left.pngbin3081 -> 490 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_arrow_right.pngbin3112 -> 513 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_arrow_up.pngbin3219 -> 587 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/hint_background.pngbin4316 -> 1532 bytes
-rwxr-xr-xindra/newview/skins/default/textures/windows/yellow_gradient.pngbin3634 -> 1125 bytes
-rwxr-xr-xindra/newview/skins/default/textures/world/CameraDragDot.pngbin3101 -> 563 bytes
-rwxr-xr-xindra/newview/skins/default/textures/world/NoEntryLines.pngbin3523 -> 1265 bytes
-rwxr-xr-xindra/newview/skins/default/xui/de/floater_snapshot.xml13
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_postcard_message.xml4
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_postcard_settings.xml19
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_snapshot_inventory.xml5
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_snapshot_local.xml31
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_snapshot_options.xml11
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_snapshot_postcard.xml8
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_snapshot_profile.xml31
-rw-r--r--indra/newview/skins/default/xui/en/floater_facebook.xml39
-rw-r--r--indra/newview/skins/default/xui/en/floater_flickr.xml23
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_inventory_view_finder.xml96
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_snapshot.xml481
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_top_objects.xml14
-rw-r--r--indra/newview/skins/default/xui/en/floater_twitter.xml34
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_inventory_gear_default.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/notifications.xml21
-rw-r--r--indra/newview/skins/default/xui/en/panel_facebook_account.xml77
-rw-r--r--indra/newview/skins/default/xui/en/panel_facebook_friends.xml23
-rw-r--r--indra/newview/skins/default/xui/en/panel_facebook_photo.xml116
-rw-r--r--indra/newview/skins/default/xui/en/panel_facebook_place.xml120
-rw-r--r--indra/newview/skins/default/xui/en/panel_facebook_status.xml114
-rw-r--r--indra/newview/skins/default/xui/en/panel_flickr_account.xml22
-rw-r--r--indra/newview/skins/default/xui/en/panel_flickr_photo.xml145
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_postcard_message.xml59
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_postcard_settings.xml156
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_snapshot_inventory.xml83
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_snapshot_local.xml242
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_snapshot_options.xml159
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_snapshot_postcard.xml88
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_snapshot_profile.xml206
-rw-r--r--indra/newview/skins/default/xui/en/panel_tools_texture.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_twitter_account.xml24
-rw-r--r--indra/newview/skins/default/xui/en/panel_twitter_photo.xml124
-rwxr-xr-xindra/newview/skins/default/xui/en/teleport_strings.xml5
-rwxr-xr-xindra/newview/viewer_manifest.py106
-rw-r--r--indra/test_apps/llfbconnecttest/CMakeLists.txt118
-rw-r--r--indra/test_apps/llfbconnecttest/README.Linden20
-rwxr-xr-xindra/test_apps/llplugintest/CMakeLists.txt128
-rw-r--r--indra/test_apps/llplugintest/README.Linden21
-rwxr-xr-xindra/viewer_components/login/CMakeLists.txt4
195 files changed, 2965 insertions, 2368 deletions
diff --git a/.hgtags b/.hgtags
index 4d2aec7673..bd574ec656 100755
--- a/.hgtags
+++ b/.hgtags
@@ -486,3 +486,4 @@ a9f2d0cb11f73b06858e6083bb50083becc3f9cd 3.7.9-release
64799eb298834073a3e9992cd8d27c3cb9d30b10 3.7.11-release
3b44ea8988cb902f0dda8429e8d5e4569e304532 3.7.12-release
d86a7e1bc96d27b683f951d3701d5b7042158c68 3.7.13-release
+a7872554f3665588f1e8347d472cec3a299254b3 3.7.14-release
diff --git a/autobuild.xml b/autobuild.xml
index c813e77288..b6586b25b7 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -66,9 +66,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>69ae3b1c9cdb0ebc0d0e1ac8413e3eb7</string>
+ <string>8da309d24fb0bad8eaaa667fb04c6dc7</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/SDL-1.2.14-linux-20110309.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-sdl-update/rev/290561/arch/Linux/installer/SDL-1.2.15-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -138,9 +138,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>e6caaeea16131e1f2343ecd7765e3147</string>
+ <string>127c6c37726b11a0750cd4d3b920beff</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20110217.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-ares-update/rev/290399/arch/Darwin/installer/ares-1.10.0-darwin-20140529.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -150,9 +150,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>0745872db83d45f4ab3bdc697d98e264</string>
+ <string>92f6a454d90b5740a38fb68e369cc13e</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/223275/arch/Linux/installer/ares-1.7.1-linux-20110310.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-ares-update/rev/290399/arch/Linux/installer/ares-1.10.0-linux-20140529.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -162,9 +162,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>1dcec6babd249a2597114d4ac226c461</string>
+ <string>887c93c4075beefefa44b69fb2c0461e</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/220963/arch/CYGWIN/installer/ares-1.7.1-windows-20110211.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-ares-update/rev/290399/arch/CYGWIN/installer/ares-1.10.0-windows-20140529.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -186,9 +186,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>06dd7af75e1eb179aed54fd58d8688af</string>
+ <string>b57789bd22dd166aade4a35ec5d36fbb</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/Darwin/installer/boost-1.52.0-darwin-20130221.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-boost-update/rev/290566/arch/Darwin/installer/boost-1.55.0-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -198,9 +198,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>50c8b50b7cced52cc5656fb44e9b12cf</string>
+ <string>2f076eae296600a1b810ce375dc4b42d</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/Linux/installer/boost-1.52.0-linux-20130222.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-boost-update/rev/290566/arch/Linux/installer/boost-1.55.0-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -210,9 +210,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>742fc9675b033df7f9c6f215ff250f6c</string>
+ <string>8af0500013739866a41cfc2ce90e4f4b</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/CYGWIN/installer/boost-1.52.0-windows-20130221.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-boost-update/rev/290566/arch/CYGWIN/installer/boost-1.55.0-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -234,9 +234,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>480b27a0cb39a4adfcdeabef895de3e1</string>
+ <string>68dc13f49a686331df6f0128c5483da3</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/227230/arch/Darwin/installer/colladadom-2.2-darwin-20110420.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-colladadom-update/rev/290576/arch/Darwin/installer/colladadom-2.3-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -246,9 +246,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>be7321370b69b6d66938b82a9230a067</string>
+ <string>bdec5fe5fd008da4328f84115128ee61</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/233450/arch/Linux/installer/colladadom-2.2-linux-20110621.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-colladadom-update/rev/290576/arch/Linux/installer/colladadom-2.3-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -258,9 +258,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>a9f548eb6f9aaf292508a8b09c7f2f73</string>
+ <string>ae103c9481be20cd6c035940832b2650</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/226584/arch/CYGWIN/installer/colladadom-2.2-windows-20110413.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-colladadom-update/rev/290576/arch/CYGWIN/installer/colladadom-2.3-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -282,9 +282,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>f7d9b6a9c624364389b71209881f39de</string>
+ <string>f5a699c93beb1a854d0b51382b5cecc8</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/280289/arch/Darwin/installer/curl-7.24.0-darwin-20130826.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-curl-update/rev/290664/arch/Darwin/installer/curl-7.37.0-darwin-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -294,9 +294,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>58b7bf45383c1b1bc24afb303b1519c8</string>
+ <string>2bc285edffd0e55e0cd6290f39854a89</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/280289/arch/Linux/installer/curl-7.24.0-linux-20130826.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-curl-update/rev/290664/arch/Linux/installer/curl-7.37.0-linux-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -306,9 +306,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>8d9ccb0277a26bfe3f346c3c49ce4b58</string>
+ <string>8d3b197d7a114d2b688d2831a0a59757</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/280289/arch/CYGWIN/installer/curl-7.24.0-windows-20130826.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-curl-update/rev/290664/arch/CYGWIN/installer/curl-7.37.0-windows-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -546,9 +546,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>d8b08b657247566bde5fd853c7622478</string>
+ <string>2843c48e6c84a51e3d6aa05dace4c8c0</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/fontconfig-2.8.0-linux-20110311.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-fontconfig-update/rev/290569/arch/Linux/installer/fontconfig-2.11.0-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -594,9 +594,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>c0eacb6348e032fbc69cfdc4bd215ee4</string>
+ <string>71c8d80de052f0c2a49e4c7ddf1a56a0</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-darwin-20110307.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-freetype-update/rev/290557/arch/Darwin/installer/freetype-2.4.4-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -606,9 +606,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>bd6f84f9fb3c2e68850676d06935373f</string>
+ <string>52f87a65cc61ec4b05721c079d015b19</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-freetype/rev/271684/arch/Linux/installer/freetype-2.4.4-linux-20130312.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-freetype-update/rev/290557/arch/Linux/installer/freetype-2.4.4-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -618,9 +618,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>271349827b939406162ce42e42cd18e0</string>
+ <string>6e9fc0fe628a7c88f6f614bf3b0450ae</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.4.4-windows-20110218.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-freetype-update/rev/290557/arch/CYGWIN/installer/freetype-2.4.4-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -747,14 +747,14 @@
</map>
</map>
</map>
- <key>google_breakpad</key>
+ <key>gmock</key>
<map>
<key>license</key>
<string>bsd</string>
<key>license_file</key>
- <string>LICENSES/google_breakpad.txt</string>
+ <string>LICENSES/gmock.txt</string>
<key>name</key>
- <string>google_breakpad</string>
+ <string>gmock</string>
<key>platforms</key>
<map>
<key>darwin</key>
@@ -762,9 +762,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>aff5566e04003de0383941981198e04e</string>
+ <string>36b0ea1a8be38f5749a7b13536b871ab</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/273073/arch/Darwin/installer/google_breakpad-0.0.0-rev1099-darwin-20130329.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-google-mock-update/rev/290574/arch/Darwin/installer/gmock-1.7.0-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -774,9 +774,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>52257e5eb166a0b69c9c0c38f6e1920e</string>
+ <string>3de99704847b34c7acccf5ab87222f6c</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/273079/arch/Linux/installer/google_breakpad-0.0.0-rev1099-linux-20130329.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-google-mock-update/rev/290574/arch/Linux/installer/gmock-1.7.0-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -786,23 +786,23 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>a1e519d08c507c12f9d412b2ae8328c8</string>
+ <string>5d91c1d03780aa26bcd5481145ee9e86</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/279804/arch/CYGWIN/installer/google_breakpad-0.0.0-rev1099-windows-20130813.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-google-mock-update/rev/290574/arch/CYGWIN/installer/gmock-1.7.0-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
</map>
- <key>googlemock</key>
+ <key>google_breakpad</key>
<map>
<key>license</key>
<string>bsd</string>
<key>license_file</key>
- <string>LICENSES/googlemock.txt</string>
+ <string>LICENSES/google_breakpad.txt</string>
<key>name</key>
- <string>googlemock</string>
+ <string>google_breakpad</string>
<key>platforms</key>
<map>
<key>darwin</key>
@@ -810,9 +810,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>886ee428f058005ab7f90f61784ec9d9</string>
+ <string>aff5566e04003de0383941981198e04e</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-darwin-20101004.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/273073/arch/Darwin/installer/google_breakpad-0.0.0-rev1099-darwin-20130329.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -822,9 +822,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>782ca04e56d8eab755adcae297cafa7c</string>
+ <string>52257e5eb166a0b69c9c0c38f6e1920e</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/googlemock-1.1.0-linux-20101001.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/273079/arch/Linux/installer/google_breakpad-0.0.0-rev1099-linux-20130329.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -834,9 +834,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>98994d5b0b4b3d43be22aa6a5c36e6fa</string>
+ <string>a1e519d08c507c12f9d412b2ae8328c8</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-mock-graham/rev/272961/arch/CYGWIN/installer/gmock-1.6.0-windows-20130327.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/279804/arch/CYGWIN/installer/google_breakpad-0.0.0-rev1099-windows-20130813.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -1194,9 +1194,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>6fe1adf12d98bce9111f60ee762007b9</string>
+ <string>80a84bbbb363e1a38f39bb6be8a3f166</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-darwin-20110222.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libpng-update/rev/290558/arch/Darwin/installer/libpng-1.6.8-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1206,9 +1206,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>0681ab7e1988dfdbdad7dd9edb7760ee</string>
+ <string>3368a25b361c22a03f7ec7e0f8d5ff9d</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libpng-1.5.1-linux-20110223.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libpng-update/rev/290558/arch/Linux/installer/libpng-1.6.8-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1218,9 +1218,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>f194ba857ca8dd86483a3ef24535d0db</string>
+ <string>596f4798f90941817b1ca5009c24d16a</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libpng/rev/226532/arch/CYGWIN/installer/libpng-1.5.1-windows-20110413.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libpng-update/rev/290558/arch/CYGWIN/installer/libpng-1.6.8-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -1261,18 +1261,42 @@
<string>libxml2</string>
<key>platforms</key>
<map>
+ <key>darwin</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>4a5880b8235beb5ca21f1e252a46e342</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libxml-update/rev/290562/arch/Darwin/installer/libxml2-2.9.1-darwin-20140602.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>darwin</string>
+ </map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
- <string>fd34e3e818ad7dd26add1f05e6069c11</string>
+ <string>7eb90f075730f8d7d176f8fb7bad5ef5</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libxml/rev/282218/arch/Linux/installer/libxml2-2.7.8-linux-20131009.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libxml-update/rev/290562/arch/Linux/installer/libxml2-2.9.1-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
</map>
+ <key>windows</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>ba20e2634b4c249a7064620d135f7972</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libxml-update/rev/290562/arch/CYGWIN/installer/libxml2-2.9.1-windows-20140602.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>windows</string>
+ </map>
</map>
</map>
<key>llappearanceutility-source</key>
@@ -1420,9 +1444,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>4a98d727561cd1f4ac5ee02907411df1</string>
+ <string>79afb464255be2be7c02fdfac10bcd5c</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/250147/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20120228.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-llqtwebkit2/rev/290663/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1432,9 +1456,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>f50e5f0cc880c55b3f0f7e67dc8f7221</string>
+ <string>090190a8dd80efe1f0933c7ed307e6f1</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/250147/arch/Linux/installer/llqtwebkit-4.7.1-linux-20120228.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-llqtwebkit2/rev/290663/arch/Linux/installer/llqtwebkit-4.7.1-linux-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1444,9 +1468,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>5e3cd6af397e853a963a6de40d440ff4</string>
+ <string>650f2a30a83eacde238fcc87ff161190</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/250147/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20120228.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-llqtwebkit2/rev/290663/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -1597,36 +1621,26 @@
</map>
</map>
</map>
- <key>openSSL</key>
+ <key>openal_soft</key>
<map>
<key>license</key>
- <string>openSSL</string>
+ <string>lgpl</string>
<key>license_file</key>
- <string>LICENSES/openssl.txt</string>
+ <string>LICENSES/OPENAL.txt</string>
<key>name</key>
- <string>openSSL</string>
+ <string>openal_soft</string>
<key>platforms</key>
<map>
- <key>darwin</key>
- <map>
- <key>archive</key>
- <map>
- <key>hash</key>
- <string>facee34b8bd57ad602157e65a5af1a49</string>
- <key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openssl-0.9.8q-darwin-20110211.tar.bz2</string>
- </map>
- <key>name</key>
- <string>darwin</string>
- </map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
- <string>3d40be8566fa4b9df9a38e2a0f9ea467</string>
+ <string>fccdca18a950ac9363c6fb39118b80e1</string>
+ <key>hash_algorithm</key>
+ <string>md5</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/226882/arch/Linux/installer/openssl-1.0.0d-linux-20110418.tar.bz2</string>
+ <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1636,35 +1650,47 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>774c7f0a0312bee3054757a623e227bc</string>
+ <string>04df406f3e5d04cf176660bdac66c3a1</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220986/arch/CYGWIN/installer/openssl-0.9.8q-windows-20110211.tar.bz2</string>
+ <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-windows-20110301.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
+ <key>version</key>
+ <string>3ad86a1c</string>
</map>
- <key>openal_soft</key>
+ <key>openjpeg</key>
<map>
<key>license</key>
- <string>lgpl</string>
+ <string>openjpeg</string>
<key>license_file</key>
- <string>LICENSES/OPENAL.txt</string>
+ <string>LICENSES/openjpeg.txt</string>
<key>name</key>
- <string>openal_soft</string>
+ <string>openjpeg</string>
<key>platforms</key>
<map>
+ <key>darwin</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>4be51c7cca7d84831e30b63279df7ae5</string>
+ <key>url</key>
+ <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>darwin</string>
+ </map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
- <string>fccdca18a950ac9363c6fb39118b80e1</string>
- <key>hash_algorithm</key>
- <string>md5</string>
+ <string>fb2382014c79e0049746e4e29bd834f9</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2</string>
+ <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-linux-20110314.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1674,25 +1700,23 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>04df406f3e5d04cf176660bdac66c3a1</string>
+ <string>ca5765af55f798724d601720afdf6953</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-windows-20110301.tar.bz2</string>
+ <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-windows-20110302.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
- <key>version</key>
- <string>3ad86a1c</string>
</map>
- <key>openjpeg</key>
+ <key>openssl</key>
<map>
<key>license</key>
- <string>openjpeg</string>
+ <string>openssl</string>
<key>license_file</key>
- <string>LICENSES/openjpeg.txt</string>
+ <string>LICENSES/openssl.txt</string>
<key>name</key>
- <string>openjpeg</string>
+ <string>openssl</string>
<key>platforms</key>
<map>
<key>darwin</key>
@@ -1700,9 +1724,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>4be51c7cca7d84831e30b63279df7ae5</string>
+ <string>4db126327bbb125ea2490c79c73103bf</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-openssl-update/rev/290662/arch/Darwin/installer/openssl-1.0.1h-darwin-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1712,9 +1736,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>fb2382014c79e0049746e4e29bd834f9</string>
+ <string>0665c18f8cdbe2f90cb0a2f088cfe1a6</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-linux-20110314.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-openssl-update/rev/290662/arch/Linux/installer/openssl-1.0.1h-linux-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1724,9 +1748,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>ca5765af55f798724d601720afdf6953</string>
+ <string>138997e1a73c65525d45c00f43f08010</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-windows-20110302.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-openssl-update/rev/290662/arch/CYGWIN/installer/openssl-1.0.1h-windows-20140605.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -1748,9 +1772,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>a8e74694a0f4248228c13c845ed0a6f8</string>
+ <string>af0d38a4c56b52c4df40a4ff0d51efef</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Darwin/installer/pcre-7.6-darwin-20110504.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-pcre-update/rev/290406/arch/Darwin/installer/pcre-8.35-darwin-20140529.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1760,9 +1784,21 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>bb0abe962b3b8208ed2dab0424aab33d</string>
+ <string>5e6368d39b95f2c0d5162dac2c17c67f</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-pcre-update/rev/290406/arch/Linux/installer/pcre-8.35-linux-20140530.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>linux</string>
+ </map>
+ <key>windows</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>9250f74fed826ad1b8700229e964519d</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-pcre/rev/228822/arch/Linux/installer/pcre-7.6-linux-20110504.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-pcre-update/rev/290406/arch/CYGWIN/installer/pcre-8.35-windows-20140529.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1928,9 +1964,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>49b8de20f3bb43537f51311894a72de1</string>
+ <string>6658071e3b54b1dd5f5279227aff402a</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.5-darwin-20110211.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-zlib-update/rev/290556/arch/Darwin/installer/zlib-1.2.8-darwin-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1940,9 +1976,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>7b4cf3aa2c04937d0a20761516587896</string>
+ <string>63a62bb3cbef2aad3cca49cb6f2d0aeb</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/223739/arch/Linux/installer/zlib-1.2.5-linux-20110314.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-zlib-update/rev/290556/arch/Linux/installer/zlib-1.2.8-linux-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1952,9 +1988,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>5852192646681817fc3c3a8c95e91c1e</string>
+ <string>ab45a628e22a495814e806ce46081806</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-zlib/rev/220983/arch/CYGWIN/installer/zlib-1.2.5-windows-20110211.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-zlib-update/rev/290556/arch/CYGWIN/installer/zlib-1.2.8-windows-20140602.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 7e8ab46b1a..2d27562e37 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -323,6 +323,7 @@ Cinder Roxley
STORM-1951
STORM-2035
STORM-2036
+ STORM-2037
Clara Young
Coaldust Numbers
VWR-1095
@@ -712,6 +713,9 @@ Jonathan Yap
STORM-1986
STORM-1981
STORM-2015
+ STORM-2031
+ STORM-2030
+ STORM-2034
STORM-2018
Kadah Coba
STORM-1060
@@ -990,6 +994,38 @@ Nicky Perian
STORM-1090
STORM-1828
Nicoladie Gymnast
+NiranV Dean
+ STORM-2040
+ STORM-2042
+ STORM-2043
+ STORM-2044
+ STORM-2045
+ STORM-2046
+ STORM-2047
+ STORM-2048
+ STORM-2049
+ STORM-2050
+ STORM-2051
+ STORM-2052
+ STORM-2057
+ STORM-2058
+ STORM-2059
+ STORM-2060
+ STORM-2061
+ STORM-2063
+ STORM-2065
+ STORM-2066
+ STORM-2068
+ STORM-2073
+ STORM-2076
+ BUG-372
+ BUG-1179
+ BUG-6835
+ BUG-6837
+ BUG-6839
+ BUG-6840
+ BUG-6958
+ BUG-7020
Nounouch Hapmouche
VWR-238
Ollie Kubrick
@@ -1183,6 +1219,7 @@ Sovereign Engineer
OPEN-189
STORM-1972
OPEN-195
+ OPEN-217
SpacedOut Frye
VWR-34
VWR-45
@@ -1358,6 +1395,7 @@ Whirly Fizzle
VWR-29543
MAINT-873
STORM-1930
+ BUG-6659
Whoops Babii
VWR-631
VWR-1640
diff --git a/indra/cmake/00-COMPILE-LINK-RUN.txt b/indra/cmake/00-COMPILE-LINK-RUN.txt
new file mode 100644
index 0000000000..d08cc2dc0c
--- /dev/null
+++ b/indra/cmake/00-COMPILE-LINK-RUN.txt
@@ -0,0 +1,344 @@
+
+ A short guide to compiling, linking, running and debugging issues
+ in the viewer and its packaged libraries.
+
+Introduction
+
+ A recent pass through some third-party libraries resulted in the
+ collection of a lot of information about how things should and
+ shouldn't be built in the viewer. Some of that is presented below
+ with hints and rules about doing things well. What's presented is
+ a guideline only. Not all suggestions are hard rules and you'll
+ find exceptions all over. Some exceptions arise from solid
+ reasoning, others may be legacy that hasn't been re-examined.
+
+ Use good engineering judgement when applying this information.
+
+Compilation
+
+ Windows Targets
+
+ Significant compilation flags and defines follow:
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ wchar_t /Zc:wchar_t- " "
+ RTL type /MD /MD /MDd
+ FLoating Point /fp:fast " "
+ Debug Info /Zi (app/dll), /Z7 (lib) " "
+ Optimizer /O2 /Ob2 /GR /Od /Ob0 /GR /Od /GR
+ Incr. Link /INCREMENTAL:NO /INCREMENTAL /INCREMENTAL:NO
+ Debug /DEBUG /DEBUG /DEBUG
+ /OPT:REF
+ Ignore Libs LIBCMT LIBCMT LIBCMT;LIBCMTD;MSVCRT
+ Alignment Default " "
+
+ Defines WIN32 " "
+ _WINDOWS " "
+ LL_RELEASE=1 LL_RELEASE=1 n/a
+ LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a
+ NDEBUG NDEBUG _DEBUG
+ n/a n/a LL_DEBUG=1
+ n/a LL_RELEASE_WITH_\ n/a
+ DEBUG_INFO=1
+ n/a n/a _SCL_SECURE_NO_WARNINGS=1
+ _SECURE_STL=0 _SECURE_STL=0 _SECURE_STL=0
+ _HAS_ITERATOR_DEBUGGING=0 n/a n/a
+ LL_WINDOWS=1 " "
+ UNICODE " "
+ _UNICODE " "
+ WINVER=0x0501 " "
+ _WIN32_WINNT=0x0501 " "
+ LL_OS_DRAGDROP_ENABLED=1 " "
+ CARES_STATICLIB " "
+ LIB_NDOF=1 " "
+
+ ----------------------------------------------------------------------------
+ Notes:
+
+ 1. /Zc:wchar_t-. Not certain where this comes from. It may be
+ due to a default set of compilation flags in Qt 4.X that then
+ propagates outward. In Qt 5.X, this setting is flipped back to
+ default (wchar_t is a built-in). Other options for dealing with
+ this include:
+
+ http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.110%29.aspx
+
+ Recommend trying to stay with /Zc:wchar_t (the default) when
+ adding libraries. If incompatible, you'll typically get some
+ missing ostream '<<' operators or something similar in the stream
+ headers.
+
+ 2. /Z7 (VC 7.0 compatibility symbols) gives us debug information
+ in the static libraries we build. Otherwise builds generate
+ vc100.pdb files all over the place which generally aren't useful.
+ DLL's and .EXEs are to get /Zi or /ZI with separate .PDB files.
+ These .PDB files can then be packaged up in symbol tarballs for
+ the crash dump analyzer or used in debugging. There are issues here
+ for VS 2013 (see below).
+
+
+ Mac Targets
+
+ Fairly straightforward, optimization level is easily changed (may
+ be little or negative gain for -O3 and RelWithDebInfo should be
+ kicked up to 1 or 2. Boost debug symbols to dwarf-2 with a goal
+ of dwarf-2 in separate dSYM file when building .dylibs and
+ executables.
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ Strip Debug Symbols On " "
+ During Copy
+
+ Generate Debug Syms On " "
+
+ Level Debug Syms -gdwarf-2 " "
+
+ Optimization -O3 -O0 -O0
+
+ PIC -fPIC -DPIC " "
+
+ Defines LL_RELEASE=1 LL_RELEASE=1 n/a
+ LL_RELEASE_FOR_DOWNLOAD=1 n/a n/a
+ NDEBUG NDEBUG _DEBUG
+ n/a n/a LL_DEBUG=1
+ n/a LL_RELEASE_WITH_\ n/a
+ DEBUG_INFO=1
+ LL_DARWIN=1 " "
+ LL_OS_DRAGDROP_ENABLED=1 " "
+ CARES_STATICLIB " "
+ LIB_NDOF=1 " "
+
+ ----------------------------------------------------------------------------
+ Notes:
+
+ 1. We’re also building dylibs in a somewhat unusual way. They’re
+ currently being generated with a link path of
+ ‘@executable_path/../Resources/<library>’. If we were to follow
+ the recommendations in dyld’s man page, we’d instead reference
+ ‘@loader_path/<library>’, use -rpath on the executable link
+ (pointing to the ‘Resources’ subdir of the main executable), and
+ be able to avoid some symlinking in the .app tree.
+
+ 2. Use the -headerpad_max_install_names link option on all .dylibs.
+
+
+ Linux Targets
+
+ Not much variety here.
+
+ ----------------------------------------------------------------------------
+ Option Release RelWithDebInfo Debug
+ ----------------------------------------------------------------------------
+ Debug Level -g (-g0/1 better?) -g -g
+ During Copy
+
+ Optimization -O2 -O0 -O0
+
+ PIC -fPIC " "
+ ----------------------------------------------------------------------------
+ Notes:
+
+
+Linking
+
+ The library update work has generally moved in the direction of
+ preferring static libraries over dynamic (Qt4 being the notable
+ exception). It also mostly eliminated the extremely bad practice
+ of having multiple versions of a library built into an image.
+
+ How bad was it? Very. Appalling. A nightmare. On Windows, at
+ least four versions of zlib (1.2.3, 1.2.5, 1.2.6, unknown), three
+ versions of Boost (1.45, 1.48, 1.52), two versions of OpenSSL
+ (0.9.8q, 1.0.0g) and three different builds of libexpat
+ 2.0.5/1.5.2 were used. Mac was worse with five builds or versions
+ of zlib, two of PCRE, two of c-ares, and three of OpenSSL. Linux
+ topped that by adding two builds of libpng.
+
+ DO NOT ALLOW THIS TO HAPPEN AGAIN. It isn't enough to update a
+ library and then stuff a new triplet of S3 URLs into the viewer's
+ autobuild.xml. If you update a library you MUST:
+
+ * Update the autobuild.xml of ALL consumers of the library. In
+ the case of zlib, that meant updating freetype, libpng, openssl,
+ libxml2, fontconfig, curl, Boost, SDL, llqtwebkit, google-mock and
+ colladadom.
+
+ * Confirm by test and observation that the consumers actually use
+ your library rather than 'call home to mother' and find
+ system-supplied versions of your library. This may consist of
+ watching configuration scripts, probing with ldd/depends/otool,
+ pulling text out of binaries with 'strings'. The previously-
+ mentioned libraries all have a README.Linden file that gives
+ examples specific to the consumer library.
+
+ * DO NOT RE-EXPORT LIBRARIES. Colladadom was the worst offender
+ of this rule. As a shared library, it was re-exporting part, but
+ not all, of Boost filesystem and system, some zlib, some PCRE,
+ some libxml2 and minizip. This meant that depending upon link-
+ time and run-time symbol resolution, data constructed with one
+ version of a library might be processed by a method built in a
+ second, incompatible version of the library. Switching colladadom
+ to a static library ended the re-export problem.
+
+ * Preventing re-export is not sufficient. other libraries will
+ still be shipped as shared and they can still have Singleton and
+ Fragile Base Class issues. A DLL may be built with a static
+ archive of a library that has global data. That same static
+ archive might be linked into the application proper. An object
+ created with a method in the DLL may pass into a method in the
+ application where the archive's global data has a second instance
+ and no knowledge of the object. This is a failure due to an
+ assumption of Singleton global data which leads to some kind of
+ failure. This is the same effect as when, in Windows, both MSVCRT
+ and MSVCRTD get activated in a program. If you're lucky, some
+ asserts fail in that case having to do with file handle global
+ data.
+
+
+Running
+
+ Windows Debug Build. Seems to have been rendered nearly useless
+ by having the LL_CHECK_MEMORY define in llmemory.h calling
+ _CrtCheckMemory(). Viewer is almost useful disabling this in
+ llvoavatar code alone but not quite.
+
+
+Futures
+
+ Static Versus Dynamic Libraries
+
+ One solution to the above linking problems is the use of static
+ libraries for everything. Single version, singleton instancing of
+ data, etc. But it's not the 1950's and we're not running our
+ applications on bare metal. Every platform comes with 100s of
+ libraries waiting to interfere with operations by breaking the
+ single-version and singleton-data assumption.
+
+ Additionally, there are libraries that simply expect to be built
+ into shared libraries. Qt4 is one such. The version we're using
+ now, 4.7.1, is actually trying to disable both Webkit and plugin
+ modules because we're building it statically on Mac and Linux.
+ It's only because of configuration bugs that we're getting the
+ functionality out of it that we want.
+
+ With enough libraries and a single, global namespace, eventually
+ there will be collisions and there may not be a warning. All it
+ takes is two programmers who thought that 'FILE * open_file(const
+ char *);' was a safe signature to use between compilation units in
+ their libraries and glorious debugging sessions are in your
+ future. Having debugged it, you will now become the proud owner
+ of a one-off version of one of those libraries that uses a special
+ symbol prefix which you will be maintaining forever.
+
+ Lastly, we have some binary blobs that we must use as delivered.
+ Executables can be isolated at run-time if necessary. Shared
+ libraries are a different problem. They may bring their own
+ library dependencies that affect link- and run-time symbol
+ resolution and they'll impose that on us according to platform
+ rules.
+
+ So, what to do? My natural bias for large software is to use
+ shared libraries for everything. It's a path to single-version
+ and singleton data and isolates namespaces and prevents
+ interactions. It also has some field serviceability benefits if
+ you need to debug some bizarre problem a user has.
+
+ But there's a local preference for static. Here, my
+ rules-of-thumb are:
+
+ * Static library used by default.
+
+ * Shared library where the library must be built shared.
+
+ * Shared library if that is the only means to enforce the
+ single-version and singleton-data requirements.
+
+ * Shared library *on a case-by-case basis* if the library is also
+ provided by the platform and some benefit is plausible. (An
+ example of this is freetype/fontconfig on Linux. The .so
+ versions we build with, and incompletely ship, are inferior in
+ behavior to the platform libraries. By being shared libraries,
+ the platform-supplied option is available to all Linux users.)
+
+ In all cases, beware of cmake which appears to collapse and move
+ library references in links. This can drastically affect symbol
+ resolution when there are multiple sources for a symbol.
+
+ General
+
+ VS 2013. The /Z7 flag is rumored to be somewhat broken in 2013.
+ But it also sounds like there are explicit controls to name .PDB
+ files associated with static archives. That would make this an
+ ideal time to switch to /Zi or /ZI everywhere with explicit naming
+ and bring all the .PDBs together.
+
+ The embedded browser technology (e.g. Qt4 with Webkit) is the
+ 800-pound gorilla in the viewer. When starting any major work,
+ decide what changes you need here as those changes will propagate
+ outwards forcing many other decisions (cf: /Zc:wchar_t- flag).
+
+ The current package structure (./include, ./lib/release,
+ ./lib/debug, etc.) really works against the conventions used by
+ configure-like programs. I wasted a lot of time getting each
+ library to work with our structure without having to go back to
+ automake/autoconf. For Linux and Mac (and even for Windows), a
+ structure like the following where each grouping is optional would
+ probably save some work:
+
+ ./debug/bin
+ /include
+ /lib
+ ./debug/shared/bin
+ /include
+ /lib
+ ./debug/static/bin
+ /include
+ /lib
+ ./release/bin
+ /include
+ /lib
+ ...
+
+ In zlib and openssl and in a few of the libraries that consume
+ them, I experimented with packaging both static and shared
+ libraries and then having the consumer library move the unwanted
+ pieces out of the way to use the library type of choice (see
+ restore_dylibs() and restore_sos() functions). It was a bit fussy
+ and simplicity and clarity are the keys to maintaining libraries
+ in the future.
+
+ But it did suggest another approach. The idea is that every build
+ pre-stages inputs. Before anything is built, package pieces are
+ copied or symlinked from the 'stage/packages' area to the
+ 'stage/input' area. Builds then proceed with a single set of
+ -I/-L options for the dependencies. And products are built and
+ installed in a similar output staging structure for the next
+ consumer:
+
+ stage/packages/<package>/[above structure]
+ stage/input/{bin,include,lib}
+ stage/<package>/[above structure]
+
+ Next library project. I'd recommend working on the related set of
+ libexpat, apr, aprutil, xmlrpc-epi. We know libexpat has some
+ updates that should improve stability. Libapr consumes it and it
+ could use some /Z7 flag work to get rid of some 1000's of PDB
+ warnings and improve our debug symbols.
+
+ Miscellany to be sorted out:
+
+ * The packaging of libfreetype and libfontconfig on Linux.
+ Determine what the right thing is, do it.
+
+ * Maybe do something with ICU4C. Qt5 will require it and a number
+ of our packages can consume it typically replacing iconv or some
+ other library. But it is a huge bolus of static data. It can be
+ trimmed, but still.
+
+ * Revisit openssl. Package as a shared library? Replace with
+ LibreSSL when available? Start using platform-supplied crypto?
+
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 6a0f7a214c..52b0f4e8b4 100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -62,7 +62,7 @@ if (WINDOWS)
add_definitions(
/DLL_WINDOWS=1
/DNOMINMAX
- /DDOM_DYNAMIC
+# /DDOM_DYNAMIC # For shared library colladadom
/DUNICODE
/D_UNICODE
/GS
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 50ac27d402..25e54b7cbd 100755
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -8,6 +8,7 @@ if (USESYSTEMLIBS)
include(FindBoost)
set(BOOST_CONTEXT_LIBRARY boost_context-mt)
+ set(BOOST_COROUTINE_LIBRARY boost_coroutine-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
@@ -17,10 +18,11 @@ if (USESYSTEMLIBS)
else (USESYSTEMLIBS)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
- set(BOOST_VERSION "1.52")
+ set(BOOST_VERSION "1.55")
if (WINDOWS)
if(MSVC80)
+ # This should be obsolete at this point
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-vc80-mt-${BOOST_VERSION}
debug libboost_context-vc80-mt-gd-${BOOST_VERSION})
@@ -47,6 +49,9 @@ else (USESYSTEMLIBS)
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-mt
debug libboost_context-mt-gd)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized libboost_coroutine-mt
+ debug libboost_coroutine-mt-gd)
set(BOOST_FILESYSTEM_LIBRARY
optimized libboost_filesystem-mt
debug libboost_filesystem-mt-gd)
@@ -70,6 +75,9 @@ else (USESYSTEMLIBS)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt
debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt
debug boost_filesystem-mt-d)
@@ -92,6 +100,9 @@ else (USESYSTEMLIBS)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt
debug boost_context-mt-d)
+ set(BOOST_COROUTINE_LIBRARY
+ optimized boost_coroutine-mt
+ debug boost_coroutine-mt-d)
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt
debug boost_filesystem-mt-d)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 4f1b6640c2..28202f85d6 100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -40,7 +40,6 @@ if(WINDOWS)
libapriconv-1.dll
ssleay32.dll
libeay32.dll
- libcollada14dom22-d.dll
glod.dll
libhunspell.dll
)
@@ -53,7 +52,6 @@ if(WINDOWS)
libapriconv-1.dll
ssleay32.dll
libeay32.dll
- libcollada14dom22.dll
glod.dll
libhunspell.dll
)
@@ -213,15 +211,12 @@ elseif(DARWIN)
libapr-1.dylib
libaprutil-1.0.dylib
libaprutil-1.dylib
+ libexception_handler.dylib
libexpat.1.5.2.dylib
libexpat.dylib
libGLOD.dylib
- libllqtwebkit.dylib
- libminizip.a
- libndofdev.dylib
libhunspell-1.3.0.dylib
- libexception_handler.dylib
- libcollada14dom.dylib
+ libndofdev.dylib
)
if (FMODEX)
@@ -259,35 +254,21 @@ elseif(LINUX)
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
- libboost_context-mt.so.${BOOST_VERSION}.0
- libboost_filesystem-mt.so.${BOOST_VERSION}.0
- libboost_program_options-mt.so.${BOOST_VERSION}.0
- libboost_regex-mt.so.${BOOST_VERSION}.0
- libboost_signals-mt.so.${BOOST_VERSION}.0
- libboost_system-mt.so.${BOOST_VERSION}.0
- libboost_thread-mt.so.${BOOST_VERSION}.0
- libcollada14dom.so
- libcrypto.so.1.0.0
libdb-5.1.so
libexpat.so
libexpat.so.1
+ libfreetype.so.6.6.2
libfreetype.so.6
libGLOD.so
- libgmock_main.so
- libgmock.so.0
libgmodule-2.0.so
libgobject-2.0.so
- libgtest_main.so
- libgtest.so.0
libhunspell-1.3.so.0.0.0
- libminizip.so
libopenal.so
libopenjpeg.so
- libssl.so
libuuid.so.16
libuuid.so.16.0.22
- libssl.so.1.0.0
- libfontconfig.so.1.4.4
+ libfontconfig.so.1.8.0
+ libfontconfig.so.1
)
if (USE_TCMALLOC)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 02c5b37f28..a36485f6d0 100755
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -7,7 +7,7 @@ if (USESYSTEMLIBS)
pkg_check_modules(FREETYPE REQUIRED freetype2)
else (USESYSTEMLIBS)
use_prebuilt_binary(freetype)
- set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2/)
set(FREETYPE_LIBRARIES freetype)
endif (USESYSTEMLIBS)
diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake
index c4c96a9af7..cac072988e 100755
--- a/indra/cmake/GoogleMock.cmake
+++ b/indra/cmake/GoogleMock.cmake
@@ -2,7 +2,7 @@
include(Prebuilt)
include(Linking)
-use_prebuilt_binary(googlemock)
+use_prebuilt_binary(gmock)
set(GOOGLEMOCK_INCLUDE_DIRS
${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 67c2115237..93626f689f 100755
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -6,32 +6,40 @@ include(Boost)
use_prebuilt_binary(colladadom)
use_prebuilt_binary(pcre)
+use_prebuilt_binary(libxml2)
set(LLPRIMITIVE_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llprimitive
)
if (WINDOWS)
- set(LLPRIMITIVE_LIBRARIES
+ set(LLPRIMITIVE_LIBRARIES
debug llprimitive
optimized llprimitive
- debug libcollada14dom22-d
- optimized libcollada14dom22
+ debug libcollada14dom23-sd
+ optimized libcollada14dom23-s
+ libxml2_a
+ debug pcrecppd
+ optimized pcrecpp
+ debug pcred
+ optimized pcre
${BOOST_SYSTEM_LIBRARIES}
)
-elseif (LINUX)
- use_prebuilt_binary(libxml2)
- set(LLPRIMITIVE_LIBRARIES
+elseif (DARWIN)
+ set(LLPRIMITIVE_LIBRARIES
llprimitive
- collada14dom
+ debug collada14dom-d
+ optimized collada14dom
minizip
xml2
pcrecpp
pcre
+ iconv # Required by libxml2
)
-else (WINDOWS)
- set(LLPRIMITIVE_LIBRARIES
+elseif (LINUX)
+ set(LLPRIMITIVE_LIBRARIES
llprimitive
- collada14dom
+ debug collada14dom-d
+ optimized collada14dom
minizip
xml2
pcrecpp
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index b9c9e531fc..74fe3f1137 100755
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -6,6 +6,7 @@ set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
include(Variables)
set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib)
+set(ARCH_PREBUILT_DIRS_PLUGINS ${AUTOBUILD_INSTALL_DIR}/plugins)
set(ARCH_PREBUILT_DIRS_RELEASE ${AUTOBUILD_INSTALL_DIR}/lib/release)
set(ARCH_PREBUILT_DIRS_DEBUG ${AUTOBUILD_INSTALL_DIR}/lib/debug)
if (WINDOWS)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 5b469f74f9..eb548bdcc1 100755
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -7,7 +7,7 @@ set(OpenSSL_FIND_REQUIRED ON)
if (USESYSTEMLIBS)
include(FindOpenSSL)
else (USESYSTEMLIBS)
- use_prebuilt_binary(openSSL)
+ use_prebuilt_binary(openssl)
if (WINDOWS)
set(OPENSSL_LIBRARIES ssleay32 libeay32)
else (WINDOWS)
@@ -17,7 +17,7 @@ else (USESYSTEMLIBS)
endif (USESYSTEMLIBS)
if (LINUX)
- set(CRYPTO_LIBRARIES crypto)
+ set(CRYPTO_LIBRARIES crypto dl)
elseif (DARWIN)
set(CRYPTO_LIBRARIES crypto)
endif (LINUX)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 173d59391e..248a875a19 100755
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -9,13 +9,26 @@ if (USESYSTEMLIBS)
else (USESYSTEMLIBS)
use_prebuilt_binary(libpng)
if (WINDOWS)
- set(PNG_LIBRARIES libpng15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ set(PNG_LIBRARIES libpng16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
elseif(DARWIN)
- set(PNG_LIBRARIES png15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
else()
- set(PNG_LIBRARIES png15)
- set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lpng16 here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(PNG_PRELOAD_ARCHIVES -Wl,--whole-archive png16 -Wl,--no-whole-archive)
+ set(PNG_LIBRARIES png16)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng16)
endif()
endif (USESYSTEMLIBS)
diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake
index 76f2c148db..f7c548a2fd 100755
--- a/indra/cmake/WebKitLibPlugin.cmake
+++ b/indra/cmake/WebKitLibPlugin.cmake
@@ -1,6 +1,7 @@
# -*- cmake -*-
include(Linking)
include(Prebuilt)
+include(OpenSSL)
if (USESYSTEMLIBS)
# The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny.
@@ -36,27 +37,32 @@ endif (USESYSTEMLIBS)
if (WINDOWS)
set(WEBKIT_PLUGIN_LIBRARIES
- debug llqtwebkitd
- debug QtWebKitd4
- debug QtOpenGLd4
- debug QtNetworkd4
- debug QtGuid4
- debug QtCored4
- debug qtmaind
- optimized llqtwebkit
- optimized QtWebKit4
- optimized QtOpenGL4
- optimized QtNetwork4
- optimized QtGui4
- optimized QtCore4
- optimized qtmain
+ debug llqtwebkitd
+ debug QtWebKitd4
+ debug QtOpenGLd4
+ debug QtNetworkd4
+ debug QtGuid4
+ debug QtCored4
+ debug qtmaind
+ optimized llqtwebkit
+ optimized QtWebKit4
+ optimized QtOpenGL4
+ optimized QtNetwork4
+ optimized QtGui4
+ optimized QtCore4
+ optimized qtmain
)
elseif (DARWIN)
set(WEBKIT_PLUGIN_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtWebKit.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtOpenGL.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtNetwork.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtGui.4.dylib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libQtCore.4.dylib
+ )
elseif (LINUX)
+ # *HUH: What does this do?
set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES})
set(WEBKIT_PLUGIN_LIBRARIES
llqtwebkit
@@ -68,9 +74,10 @@ elseif (LINUX)
QtWebKit
QtOpenGL
QtNetwork
+ ${OPENSSL_LIBRARIES}
QtGui
QtCore
- jscore
+# jscore
# qgif
# qjpeg
# jpeg
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
index b99a8644c9..6cff0753b2 100755
--- a/indra/cmake/ZLIB.cmake
+++ b/indra/cmake/ZLIB.cmake
@@ -13,10 +13,23 @@ else (USESYSTEMLIBS)
set(ZLIB_LIBRARIES
debug zlibd
optimized zlib)
- else (WINDOWS)
+ elseif (LINUX)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lz here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(ZLIB_PRELOAD_ARCHIVES -Wl,--whole-archive z -Wl,--no-whole-archive)
+ set(ZLIB_LIBRARIES z)
+ elseif (DARWIN)
set(ZLIB_LIBRARIES z)
endif (WINDOWS)
- if (WINDOWS OR LINUX)
- set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
- endif (WINDOWS OR LINUX)
+ set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
endif (USESYSTEMLIBS)
diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt
index c63ad74682..6f2087d580 100755
--- a/indra/edit-me-to-trigger-new-build.txt
+++ b/indra/edit-me-to-trigger-new-build.txt
@@ -1 +1,2 @@
2014-02-25 10:34
+
diff --git a/indra/llaudio/llaudiodecodemgr.h b/indra/llaudio/llaudiodecodemgr.h
index 7a9b807d04..8228e20e8c 100755
--- a/indra/llaudio/llaudiodecodemgr.h
+++ b/indra/llaudio/llaudiodecodemgr.h
@@ -24,7 +24,7 @@
*/
#ifndef LL_LLAUDIODECODEMGR_H
-#define LL_LLAUDIODECODEMG_H
+#define LL_LLAUDIODECODEMGR_H
#include "stdtypes.h"
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 8eeb186936..763f5a3521 100755
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -301,7 +301,7 @@ if (LL_TESTS)
LL_ADD_INTEGRATION_TEST(llunits "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(stringize "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(lleventdispatcher "" "${test_libs}")
- LL_ADD_INTEGRATION_TEST(lleventcoro "" "${test_libs};${BOOST_CONTEXT_LIBRARY}")
+ LL_ADD_INTEGRATION_TEST(lleventcoro "" "${test_libs};${BOOST_CONTEXT_LIBRARY};${BOOST_COROUTINE_LIBRARY};${BOOST_SYSTEM_LIBRARY}")
LL_ADD_INTEGRATION_TEST(llprocess "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llleap "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llstreamqueue "" "${test_libs}")
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h
index db52f2b1f4..7d1d541a4b 100755
--- a/indra/llcommon/llmemory.h
+++ b/indra/llcommon/llmemory.h
@@ -257,7 +257,8 @@ inline void ll_memcpy_nonaliased_aligned_16(char* __restrict dst, const char* __
assert((bytes % sizeof(F32))== 0);
ll_assert_aligned(src,16);
ll_assert_aligned(dst,16);
- assert((src < dst) ? ((src + bytes) < dst) : ((dst + bytes) < src));
+
+ assert((src < dst) ? ((src + bytes) <= dst) : ((dst + bytes) <= src));
assert(bytes%16==0);
char* end = dst + bytes;
diff --git a/indra/llmessage/lltransfermanager.cpp b/indra/llmessage/lltransfermanager.cpp
index d6db20d7a3..ec7b21d8b6 100755
--- a/indra/llmessage/lltransfermanager.cpp
+++ b/indra/llmessage/lltransfermanager.cpp
@@ -1260,9 +1260,13 @@ bool LLTransferTarget::addDelayedPacket(
size);
#ifdef _DEBUG
- if (mDelayedPacketMap.find(packet_id) != mDelayedPacketMap.end())
+ transfer_packet_map::iterator iter = mDelayedPacketMap.find(packet_id);
+ if (iter != mDelayedPacketMap.end())
{
- LL_ERRS() << "Packet ALREADY in delayed packet map!" << LL_ENDL;
+ if (!(iter->second->mSize == size) && !(iter->second->mDatap == datap))
+ {
+ LL_ERRS() << "Packet ALREADY in delayed packet map!" << LL_ENDL;
+ }
}
#endif
diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
index 93d2a8fa6e..ff1ed8bfbc 100755
--- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
+++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp
@@ -28,26 +28,26 @@
#include "linden_common.h"
-#if defined(LL_DARWIN)
- #include <QuickTime/QuickTime.h>
-#elif defined(LL_WINDOWS)
- #include "llwin32headers.h"
- #include "MacTypes.h"
- #include "QTML.h"
- #include "Movies.h"
- #include "QDoffscreen.h"
- #include "FixMath.h"
- #include "QTLoadLibraryUtils.h"
-#endif
-
#include "llgl.h"
-
+
#include "llplugininstance.h"
#include "llpluginmessage.h"
#include "llpluginmessageclasses.h"
#include "media_plugin_base.h"
-
+
#if LL_QUICKTIME_ENABLED
+
+#if defined(LL_DARWIN)
+#include <QuickTime/QuickTime.h>
+#elif defined(LL_WINDOWS)
+#include "llwin32headers.h"
+#include "MacTypes.h"
+#include "QTML.h"
+#include "Movies.h"
+#include "QDoffscreen.h"
+#include "FixMath.h"
+#include "QTLoadLibraryUtils.h"
+#endif
diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt
index 0c1c3d800e..5a8fe90bdd 100755
--- a/indra/media_plugins/webkit/CMakeLists.txt
+++ b/indra/media_plugins/webkit/CMakeLists.txt
@@ -121,12 +121,12 @@ if (DARWIN)
)
# copy the webkit dylib to the build directory
- add_custom_command(
- TARGET media_plugin_webkit POST_BUILD
-# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib
- COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
- DEPENDS media_plugin_webkit ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+# add_custom_command(
+# TARGET media_plugin_webkit POST_BUILD
+# # OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib
+# COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+# DEPENDS media_plugin_webkit ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+# )
endif (DARWIN)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index b1625ca1d7..279d98e5c0 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -47,6 +47,8 @@ include(VisualLeakDetector)
include(GLOD)
include(CMakeCopyIfDifferent)
include(LLAppearance)
+include(PNG)
+include(ZLIB)
if (NOT HAVOK_TPV)
# When using HAVOK_TPV, the library is precompiled, so no need for this
@@ -1889,13 +1891,37 @@ else (WINDOWS)
)
endif (WINDOWS)
-# *NOTE - this list is very sensitive to ordering, test carefully on all
+# *NOTE: - this list is very sensitive to ordering, test carefully on all
# platforms if you change the releative order of the entries here.
# In particular, cmake 2.6.4 (when buidling with linux/makefile generators)
# appears to sometimes de-duplicate redundantly listed dependencies improperly.
# To work around this, higher level modules should be listed before the modules
# that they depend upon. -brad
+#
+# *NOTE: On mixing system shared libraries and updated static archives.
+# We use a number of libraries that have an existence as system libraries,
+# internal-use libraries and applications libraries. The most-referenced
+# one of these being libz where you can find four or more versions in play
+# at once. On Linux, libz can be found at link and run time via a number
+# of paths:
+#
+# => -lfreetype
+# => libz.so.1 (on install machine, not build)
+# => -lSDL
+# => libz.so.1 (on install machine, not build)
+# => -lgdk-x11-2.0
+# => libz.so.1
+# => -lz
+#
+# We generally want the newest version of the library to provide all symbol
+# resolution. To that end, when using static archives, the *_PRELOAD_ARCHIVES
+# variables, PNG_PRELOAD_ARCHIVES and ZLIB_PRELOAD_ARCHIVES, get the archives
+# dumped into the target binary and runtime lookup will find the most
+# modern version.
+
target_link_libraries(${VIEWER_BINARY_NAME}
+ ${PNG_PRELOAD_ARCHIVES}
+ ${ZLIB_PRELOAD_ARCHIVES}
${UPDATER_LIBRARIES}
${GOOGLE_PERFTOOLS_LIBRARIES}
${LLAUDIO_LIBRARIES}
@@ -1922,6 +1948,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${BOOST_PROGRAM_OPTIONS_LIBRARY}
${BOOST_REGEX_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
+ ${BOOST_COROUTINE_LIBRARY}
${DBUSGLIB_LIBRARIES}
${OPENGL_LIBRARIES}
${FMODWRAPPER_LIBRARY} # must come after LLAudio
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 35c6ac5179..03d7b8fb9b 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-3.7.14
+3.7.15
diff --git a/indra/newview/app_settings/filters/BlackAndWhite.xml b/indra/newview/app_settings/filters/BlackAndWhite.xml
index 101ed8233a..7894628d29 100644
--- a/indra/newview/app_settings/filters/BlackAndWhite.xml
+++ b/indra/newview/app_settings/filters/BlackAndWhite.xml
@@ -1,20 +1,6 @@
<llsd>
<array>
<array>
- <string>linearize</string>
- <real>0.01</real>
- <real>1.0</real>
- <real>1.0</real>
- <real>1.0</real>
- </array>
- <array>
- <string>contrast</string>
- <real>0.8</real>
- <real>1.0</real>
- <real>1.0</real>
- <real>1.0</real>
- </array>
- <array>
<string>grayscale</string>
</array>
</array>
diff --git a/indra/newview/app_settings/filters/Sepia.xml b/indra/newview/app_settings/filters/Sepia.xml
index 3d577b2998..81d7caf0eb 100644
--- a/indra/newview/app_settings/filters/Sepia.xml
+++ b/indra/newview/app_settings/filters/Sepia.xml
@@ -1,31 +1,6 @@
<llsd>
<array>
<array>
- <string>linearize</string>
- <real>0.01</real>
- <real>1.0</real>
- <real>1.0</real>
- <real>1.0</real>
- </array>
- <array>
- <string>contrast</string>
- <real>0.8</real>
- <real>1.0</real>
- <real>1.0</real>
- <real>1.0</real>
- </array>
- <array>
- <string>stencil</string>
- <string>vignette</string>
- <string>fade</string>
- <real>0.5</real>
- <real>1.0</real>
- <real>0.0</real>
- <real>0.0</real>
- <real>1.0</real>
- <real>4.0</real>
- </array>
- <array>
<string>sepia</string>
</array>
</array>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 000362ebfd..cab7af8a32 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -80,7 +80,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>AgentPause</key>
<map>
@@ -11452,17 +11452,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>SnapshotFiltersEnabled</key>
- <map>
- <key>Comment</key>
- <string>Enable filters in the Snapshot Advanced panel (experimental).</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>SnapshotFormat</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/icons/beta/secondlife_128.png b/indra/newview/icons/beta/secondlife_128.png
index fa42aa764b..af5ae63335 100755
--- a/indra/newview/icons/beta/secondlife_128.png
+++ b/indra/newview/icons/beta/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_16.png b/indra/newview/icons/beta/secondlife_16.png
index ff648cf3fc..9e6305d98f 100755
--- a/indra/newview/icons/beta/secondlife_16.png
+++ b/indra/newview/icons/beta/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_256.png b/indra/newview/icons/beta/secondlife_256.png
index 245e2c3e9f..b0814fc180 100755
--- a/indra/newview/icons/beta/secondlife_256.png
+++ b/indra/newview/icons/beta/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_32.png b/indra/newview/icons/beta/secondlife_32.png
index fd7f46bf4d..a00b3cf53c 100755
--- a/indra/newview/icons/beta/secondlife_32.png
+++ b/indra/newview/icons/beta/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_48.png b/indra/newview/icons/beta/secondlife_48.png
index cc3a795e2b..551587b1cd 100755
--- a/indra/newview/icons/beta/secondlife_48.png
+++ b/indra/newview/icons/beta/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/beta/secondlife_512.png b/indra/newview/icons/beta/secondlife_512.png
index a959bd9a9e..99226de74e 100755
--- a/indra/newview/icons/beta/secondlife_512.png
+++ b/indra/newview/icons/beta/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_128.png b/indra/newview/icons/project/secondlife_128.png
index d67b8228f9..b1b4997306 100755
--- a/indra/newview/icons/project/secondlife_128.png
+++ b/indra/newview/icons/project/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_16.png b/indra/newview/icons/project/secondlife_16.png
index 91493a033c..7d3d74b534 100755
--- a/indra/newview/icons/project/secondlife_16.png
+++ b/indra/newview/icons/project/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_256.png b/indra/newview/icons/project/secondlife_256.png
index cccfaf7cba..88ad959275 100755
--- a/indra/newview/icons/project/secondlife_256.png
+++ b/indra/newview/icons/project/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_32.png b/indra/newview/icons/project/secondlife_32.png
index ad7b33f789..e55f75e1dd 100755
--- a/indra/newview/icons/project/secondlife_32.png
+++ b/indra/newview/icons/project/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_48.png b/indra/newview/icons/project/secondlife_48.png
index 104a931fbc..c29703e164 100755
--- a/indra/newview/icons/project/secondlife_48.png
+++ b/indra/newview/icons/project/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/project/secondlife_512.png b/indra/newview/icons/project/secondlife_512.png
index 74e2fa9bc6..4fa3474d70 100755
--- a/indra/newview/icons/project/secondlife_512.png
+++ b/indra/newview/icons/project/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_128.png b/indra/newview/icons/release/secondlife_128.png
index bcf94dcae8..4c9544f498 100755
--- a/indra/newview/icons/release/secondlife_128.png
+++ b/indra/newview/icons/release/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_16.png b/indra/newview/icons/release/secondlife_16.png
index 90311ea8b0..bb3168b8be 100755
--- a/indra/newview/icons/release/secondlife_16.png
+++ b/indra/newview/icons/release/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_256.png b/indra/newview/icons/release/secondlife_256.png
index a89fb4c74f..bece338a90 100755
--- a/indra/newview/icons/release/secondlife_256.png
+++ b/indra/newview/icons/release/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_32.png b/indra/newview/icons/release/secondlife_32.png
index 530e8fc80c..736359c147 100755
--- a/indra/newview/icons/release/secondlife_32.png
+++ b/indra/newview/icons/release/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_48.png b/indra/newview/icons/release/secondlife_48.png
index cb33c51f8a..07d39ae585 100755
--- a/indra/newview/icons/release/secondlife_48.png
+++ b/indra/newview/icons/release/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/release/secondlife_512.png b/indra/newview/icons/release/secondlife_512.png
index f291e60586..53d1643f45 100755
--- a/indra/newview/icons/release/secondlife_512.png
+++ b/indra/newview/icons/release/secondlife_512.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_128.png b/indra/newview/icons/test/secondlife_128.png
index 019f65db28..486772b6d3 100755
--- a/indra/newview/icons/test/secondlife_128.png
+++ b/indra/newview/icons/test/secondlife_128.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_16.png b/indra/newview/icons/test/secondlife_16.png
index 91493a033c..7d3d74b534 100755
--- a/indra/newview/icons/test/secondlife_16.png
+++ b/indra/newview/icons/test/secondlife_16.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_256.png b/indra/newview/icons/test/secondlife_256.png
index f402424c51..56c781788d 100755
--- a/indra/newview/icons/test/secondlife_256.png
+++ b/indra/newview/icons/test/secondlife_256.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_32.png b/indra/newview/icons/test/secondlife_32.png
index 80d6efe13d..476029db61 100755
--- a/indra/newview/icons/test/secondlife_32.png
+++ b/indra/newview/icons/test/secondlife_32.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_48.png b/indra/newview/icons/test/secondlife_48.png
index bba938feba..d7de7849f9 100755
--- a/indra/newview/icons/test/secondlife_48.png
+++ b/indra/newview/icons/test/secondlife_48.png
Binary files differ
diff --git a/indra/newview/icons/test/secondlife_512.png b/indra/newview/icons/test/secondlife_512.png
index 10ff65312b..a4b1e4974c 100755
--- a/indra/newview/icons/test/secondlife_512.png
+++ b/indra/newview/icons/test/secondlife_512.png
Binary files differ
diff --git a/indra/newview/llfloaterfacebook.cpp b/indra/newview/llfloaterfacebook.cpp
index 9e3f917eae..33422fb5fd 100644
--- a/indra/newview/llfloaterfacebook.cpp
+++ b/indra/newview/llfloaterfacebook.cpp
@@ -58,7 +58,6 @@ static LLPanelInjector<LLFacebookStatusPanel> t_panel_status("llfacebookstatuspa
static LLPanelInjector<LLFacebookPhotoPanel> t_panel_photo("llfacebookphotopanel");
static LLPanelInjector<LLFacebookCheckinPanel> t_panel_checkin("llfacebookcheckinpanel");
static LLPanelInjector<LLFacebookFriendsPanel> t_panel_friends("llfacebookfriendspanel");
-static LLPanelInjector<LLFacebookAccountPanel> t_panel_account("llfacebookaccountpanel");
const S32 MAX_POSTCARD_DATASIZE = 1024 * 1024; // one megabyte
const std::string DEFAULT_CHECKIN_LOCATION_URL = "http://maps.secondlife.com/";
@@ -99,13 +98,29 @@ S32 compute_jpeg_quality(S32 width, S32 height)
LLFacebookStatusPanel::LLFacebookStatusPanel() :
mMessageTextEditor(NULL),
mPostButton(NULL),
- mCancelButton(NULL)
+ mCancelButton(NULL),
+ mAccountCaptionLabel(NULL),
+ mAccountNameLabel(NULL),
+ mPanelButtons(NULL),
+ mConnectButton(NULL),
+ mDisconnectButton(NULL)
{
+ mCommitCallbackRegistrar.add("SocialSharing.Connect", boost::bind(&LLFacebookStatusPanel::onConnect, this));
+ mCommitCallbackRegistrar.add("SocialSharing.Disconnect", boost::bind(&LLFacebookStatusPanel::onDisconnect, this));
+
+ setVisibleCallback(boost::bind(&LLFacebookStatusPanel::onVisibilityChange, this, _2));
+
mCommitCallbackRegistrar.add("SocialSharing.SendStatus", boost::bind(&LLFacebookStatusPanel::onSend, this));
}
BOOL LLFacebookStatusPanel::postBuild()
{
+ mAccountCaptionLabel = getChild<LLTextBox>("account_caption_label");
+ mAccountNameLabel = getChild<LLTextBox>("account_name_label");
+ mPanelButtons = getChild<LLUICtrl>("panel_buttons");
+ mConnectButton = getChild<LLUICtrl>("connect_btn");
+ mDisconnectButton = getChild<LLUICtrl>("disconnect_btn");
+
mMessageTextEditor = getChild<LLUICtrl>("status_message");
mPostButton = getChild<LLUICtrl>("post_status_btn");
mCancelButton = getChild<LLUICtrl>("cancel_status_btn");
@@ -115,6 +130,16 @@ BOOL LLFacebookStatusPanel::postBuild()
void LLFacebookStatusPanel::draw()
{
+ LLFacebookConnect::EConnectionState connection_state = LLFacebookConnect::instance().getConnectionState();
+
+ //Disable the 'disconnect' button and the 'use another account' button when disconnecting in progress
+ bool disconnecting = connection_state == LLFacebookConnect::FB_DISCONNECTING;
+ mDisconnectButton->setEnabled(!disconnecting);
+
+ //Disable the 'connect' button when a connection is in progress
+ bool connecting = connection_state == LLFacebookConnect::FB_CONNECTION_IN_PROGRESS;
+ mConnectButton->setEnabled(!connecting);
+
if (mMessageTextEditor && mPostButton && mCancelButton)
{
bool no_ongoing_connection = !(LLFacebookConnect::instance().isTransactionOngoing());
@@ -131,7 +156,8 @@ void LLFacebookStatusPanel::onSend()
{
LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookStatusPanel"); // just in case it is already listening
LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookStatusPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectStateChange, this, _1));
-
+
+ pressedConnect = FALSE;
// Connect to Facebook if necessary and then post
if (LLFacebookConnect::instance().isConnected())
{
@@ -145,10 +171,24 @@ void LLFacebookStatusPanel::onSend()
bool LLFacebookStatusPanel::onFacebookConnectStateChange(const LLSD& data)
{
+ if(LLFacebookConnect::instance().isConnected())
+ {
+ //In process of disconnecting so leave the layout as is
+ if(data.get("enum").asInteger() != LLFacebookConnect::FB_DISCONNECTING)
+ {
+ showConnectedLayout();
+ }
+ }
+ else
+ {
+ showDisconnectedLayout();
+ }
+
switch (data.get("enum").asInteger())
{
case LLFacebookConnect::FB_CONNECTED:
- sendStatus();
+ if(!pressedConnect)
+ sendStatus();
break;
case LLFacebookConnect::FB_POSTED:
@@ -169,6 +209,104 @@ void LLFacebookStatusPanel::sendStatus()
}
}
+void LLFacebookStatusPanel::onVisibilityChange(BOOL visible)
+{
+ if(visible)
+ {
+ LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookAccountPanel");
+ LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectStateChange, this, _1));
+
+ LLEventPumps::instance().obtain("FacebookConnectInfo").stopListening("LLFacebookAccountPanel");
+ LLEventPumps::instance().obtain("FacebookConnectInfo").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookStatusPanel::onFacebookConnectInfoChange, this));
+
+ //Connected
+ if(LLFacebookConnect::instance().isConnected())
+ {
+ showConnectedLayout();
+ }
+ //Check if connected (show disconnected layout in meantime)
+ else
+ {
+ showDisconnectedLayout();
+ }
+ if ((LLFacebookConnect::instance().getConnectionState() == LLFacebookConnect::FB_NOT_CONNECTED) ||
+ (LLFacebookConnect::instance().getConnectionState() == LLFacebookConnect::FB_CONNECTION_FAILED))
+ {
+ LLFacebookConnect::instance().checkConnectionToFacebook();
+ }
+ }
+ else
+ {
+ LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookAccountPanel");
+ LLEventPumps::instance().obtain("FacebookConnectInfo").stopListening("LLFacebookAccountPanel");
+ }
+}
+
+bool LLFacebookStatusPanel::onFacebookConnectInfoChange()
+{
+ LLSD info = LLFacebookConnect::instance().getInfo();
+ std::string clickable_name;
+
+ //Strings of format [http://www.somewebsite.com Click Me] become clickable text
+ if(info.has("link") && info.has("name"))
+ {
+ clickable_name = "[" + info["link"].asString() + " " + info["name"].asString() + "]";
+ }
+
+ mAccountNameLabel->setText(clickable_name);
+
+ return false;
+}
+
+void LLFacebookStatusPanel::showConnectButton()
+{
+ if(!mConnectButton->getVisible())
+ {
+ mConnectButton->setVisible(TRUE);
+ mDisconnectButton->setVisible(FALSE);
+ }
+}
+
+void LLFacebookStatusPanel::hideConnectButton()
+{
+ if(mConnectButton->getVisible())
+ {
+ mConnectButton->setVisible(FALSE);
+ mDisconnectButton->setVisible(TRUE);
+ }
+}
+
+void LLFacebookStatusPanel::showDisconnectedLayout()
+{
+ mAccountCaptionLabel->setText(getString("facebook_disconnected"));
+ mAccountNameLabel->setText(std::string(""));
+ showConnectButton();
+}
+
+void LLFacebookStatusPanel::showConnectedLayout()
+{
+ LLFacebookConnect::instance().loadFacebookInfo();
+
+ mAccountCaptionLabel->setText(getString("facebook_connected"));
+ hideConnectButton();
+}
+
+void LLFacebookStatusPanel::onConnect()
+{
+ LLFacebookConnect::instance().checkConnectionToFacebook(true);
+
+ pressedConnect = TRUE;
+ //Clear only the facebook browser cookies so that the facebook login screen appears
+ LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");
+}
+
+void LLFacebookStatusPanel::onDisconnect()
+{
+ LLFacebookConnect::instance().disconnectFromFacebook();
+
+ LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");
+}
+
void LLFacebookStatusPanel::clearAndClose()
{
mMessageTextEditor->setValue("");
@@ -185,7 +323,6 @@ void LLFacebookStatusPanel::clearAndClose()
///////////////////////////
LLFacebookPhotoPanel::LLFacebookPhotoPanel() :
-mSnapshotPanel(NULL),
mResolutionComboBox(NULL),
mRefreshBtn(NULL),
mBtnPreview(NULL),
@@ -213,7 +350,6 @@ BOOL LLFacebookPhotoPanel::postBuild()
{
setVisibleCallback(boost::bind(&LLFacebookPhotoPanel::onVisibilityChange, this, _2));
- mSnapshotPanel = getChild<LLUICtrl>("snapshot_panel");
mResolutionComboBox = getChild<LLUICtrl>("resolution_combobox");
mResolutionComboBox->setValue("[i1200,i630]"); // hardcoded defaults ftw!
mResolutionComboBox->setCommitCallback(boost::bind(&LLFacebookPhotoPanel::updateResolution, this, TRUE));
@@ -300,16 +436,9 @@ void LLFacebookPhotoPanel::draw()
// calc preview offset within the preview rect
const S32 local_offset_x = (thumbnail_rect.getWidth() - thumbnail_w) / 2 ;
const S32 local_offset_y = (thumbnail_rect.getHeight() - thumbnail_h) / 2 ;
+ S32 offset_x = thumbnail_rect.mLeft + local_offset_x;
+ S32 offset_y = thumbnail_rect.mBottom + local_offset_y;
- // calc preview offset within the floater rect
- // Hack : To get the full offset, we need to take into account each and every offset of each widgets up to the floater.
- // This is almost as arbitrary as using a fixed offset so that's what we do here for the sake of simplicity.
- // *TODO : Get the offset looking through the hierarchy of widgets, should be done in postBuild() so to avoid traversing the hierarchy each time.
- S32 offset_x = thumbnail_rect.mLeft + local_offset_x - 1;
- S32 offset_y = thumbnail_rect.mBottom + local_offset_y - 39;
-
- mSnapshotPanel->localPointToOtherView(offset_x, offset_y, &offset_x, &offset_y, getParentByType<LLFloater>());
-
gGL.matrixMode(LLRender::MM_MODELVIEW);
// Apply floater transparency to the texture unless the floater is focused.
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
@@ -344,7 +473,7 @@ void LLFacebookPhotoPanel::onVisibilityChange(BOOL visible)
LLSnapshotLivePreview* preview = getPreviewView();
if(preview)
{
- lldebugs << "opened, updating snapshot" << llendl;
+ LL_DEBUGS() << "opened, updating snapshot" << LL_ENDL;
preview->updateSnapshot(TRUE);
}
}
@@ -477,7 +606,7 @@ void LLFacebookPhotoPanel::updateControls()
BOOL got_snap = previewp && previewp->getSnapshotUpToDate();
// *TODO: Separate maximum size for Web images from postcards
- lldebugs << "Is snapshot up-to-date? " << got_snap << llendl;
+ LL_DEBUGS() << "Is snapshot up-to-date? " << got_snap << LL_ENDL;
updateResolution(FALSE);
}
@@ -507,13 +636,13 @@ void LLFacebookPhotoPanel::updateResolution(BOOL do_update)
if (width == 0 || height == 0)
{
// take resolution from current window size
- lldebugs << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << llendl;
+ LL_DEBUGS() << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << LL_ENDL;
previewp->setSize(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
}
else
{
// use the resolution from the selected pre-canned drop-down choice
- lldebugs << "Setting preview res selected from combo: " << width << "x" << height << llendl;
+ LL_DEBUGS() << "Setting preview res selected from combo: " << width << "x" << height << LL_ENDL;
previewp->setSize(width, height);
}
@@ -887,164 +1016,6 @@ bool LLFacebookFriendsPanel::onConnectedToFacebook(const LLSD& data)
return false;
}
-///////////////////////////
-//LLFacebookAccountPanel//////
-///////////////////////////
-
-LLFacebookAccountPanel::LLFacebookAccountPanel() :
-mAccountCaptionLabel(NULL),
-mAccountNameLabel(NULL),
-mPanelButtons(NULL),
-mConnectButton(NULL),
-mDisconnectButton(NULL)
-{
- mCommitCallbackRegistrar.add("SocialSharing.Connect", boost::bind(&LLFacebookAccountPanel::onConnect, this));
- mCommitCallbackRegistrar.add("SocialSharing.Disconnect", boost::bind(&LLFacebookAccountPanel::onDisconnect, this));
-
- setVisibleCallback(boost::bind(&LLFacebookAccountPanel::onVisibilityChange, this, _2));
-}
-
-BOOL LLFacebookAccountPanel::postBuild()
-{
- mAccountCaptionLabel = getChild<LLTextBox>("account_caption_label");
- mAccountNameLabel = getChild<LLTextBox>("account_name_label");
- mPanelButtons = getChild<LLUICtrl>("panel_buttons");
- mConnectButton = getChild<LLUICtrl>("connect_btn");
- mDisconnectButton = getChild<LLUICtrl>("disconnect_btn");
-
- return LLPanel::postBuild();
-}
-
-void LLFacebookAccountPanel::draw()
-{
- LLFacebookConnect::EConnectionState connection_state = LLFacebookConnect::instance().getConnectionState();
-
- //Disable the 'disconnect' button and the 'use another account' button when disconnecting in progress
- bool disconnecting = connection_state == LLFacebookConnect::FB_DISCONNECTING;
- mDisconnectButton->setEnabled(!disconnecting);
-
- //Disable the 'connect' button when a connection is in progress
- bool connecting = connection_state == LLFacebookConnect::FB_CONNECTION_IN_PROGRESS;
- mConnectButton->setEnabled(!connecting);
-
- LLPanel::draw();
-}
-
-void LLFacebookAccountPanel::onVisibilityChange(BOOL visible)
-{
- if(visible)
- {
- LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookAccountPanel");
- LLEventPumps::instance().obtain("FacebookConnectState").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookAccountPanel::onFacebookConnectStateChange, this, _1));
-
- LLEventPumps::instance().obtain("FacebookConnectInfo").stopListening("LLFacebookAccountPanel");
- LLEventPumps::instance().obtain("FacebookConnectInfo").listen("LLFacebookAccountPanel", boost::bind(&LLFacebookAccountPanel::onFacebookConnectInfoChange, this));
-
- //Connected
- if(LLFacebookConnect::instance().isConnected())
- {
- showConnectedLayout();
- }
- //Check if connected (show disconnected layout in meantime)
- else
- {
- showDisconnectedLayout();
- }
- if ((LLFacebookConnect::instance().getConnectionState() == LLFacebookConnect::FB_NOT_CONNECTED) ||
- (LLFacebookConnect::instance().getConnectionState() == LLFacebookConnect::FB_CONNECTION_FAILED))
- {
- LLFacebookConnect::instance().checkConnectionToFacebook();
- }
- }
- else
- {
- LLEventPumps::instance().obtain("FacebookConnectState").stopListening("LLFacebookAccountPanel");
- LLEventPumps::instance().obtain("FacebookConnectInfo").stopListening("LLFacebookAccountPanel");
- }
-}
-
-bool LLFacebookAccountPanel::onFacebookConnectStateChange(const LLSD& data)
-{
- if(LLFacebookConnect::instance().isConnected())
- {
- //In process of disconnecting so leave the layout as is
- if(data.get("enum").asInteger() != LLFacebookConnect::FB_DISCONNECTING)
- {
- showConnectedLayout();
- }
- }
- else
- {
- showDisconnectedLayout();
- }
-
- return false;
-}
-
-bool LLFacebookAccountPanel::onFacebookConnectInfoChange()
-{
- LLSD info = LLFacebookConnect::instance().getInfo();
- std::string clickable_name;
-
- //Strings of format [http://www.somewebsite.com Click Me] become clickable text
- if(info.has("link") && info.has("name"))
- {
- clickable_name = "[" + info["link"].asString() + " " + info["name"].asString() + "]";
- }
-
- mAccountNameLabel->setText(clickable_name);
-
- return false;
-}
-
-void LLFacebookAccountPanel::showConnectButton()
-{
- if(!mConnectButton->getVisible())
- {
- mConnectButton->setVisible(TRUE);
- mDisconnectButton->setVisible(FALSE);
- }
-}
-
-void LLFacebookAccountPanel::hideConnectButton()
-{
- if(mConnectButton->getVisible())
- {
- mConnectButton->setVisible(FALSE);
- mDisconnectButton->setVisible(TRUE);
- }
-}
-
-void LLFacebookAccountPanel::showDisconnectedLayout()
-{
- mAccountCaptionLabel->setText(getString("facebook_disconnected"));
- mAccountNameLabel->setText(std::string(""));
- showConnectButton();
-}
-
-void LLFacebookAccountPanel::showConnectedLayout()
-{
- LLFacebookConnect::instance().loadFacebookInfo();
-
- mAccountCaptionLabel->setText(getString("facebook_connected"));
- hideConnectButton();
-}
-
-void LLFacebookAccountPanel::onConnect()
-{
- LLFacebookConnect::instance().checkConnectionToFacebook(true);
-
- //Clear only the facebook browser cookies so that the facebook login screen appears
- LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");
-}
-
-void LLFacebookAccountPanel::onDisconnect()
-{
- LLFacebookConnect::instance().disconnectFromFacebook();
-
- LLViewerMedia::getCookieStore()->removeCookiesByDomain(".facebook.com");
-}
-
////////////////////////
//LLFloaterFacebook///////
////////////////////////
@@ -1094,7 +1065,7 @@ void LLFloaterFacebook::showPhotoPanel()
LLTabContainer* parent = dynamic_cast<LLTabContainer*>(mFacebookPhotoPanel->getParent());
if (!parent)
{
- llwarns << "Cannot find panel container" << llendl;
+ LL_WARNS() << "Cannot find panel container" << LL_ENDL;
return;
}
diff --git a/indra/newview/llfloaterfacebook.h b/indra/newview/llfloaterfacebook.h
index 34356412d6..6fe7a6541b 100644
--- a/indra/newview/llfloaterfacebook.h
+++ b/indra/newview/llfloaterfacebook.h
@@ -51,6 +51,24 @@ public:
void clearAndClose();
private:
+ void onVisibilityChange(BOOL new_visibility);
+ bool onFacebookConnectInfoChange();
+ void onConnect();
+ void onUseAnotherAccount();
+ void onDisconnect();
+
+ void showConnectButton();
+ void hideConnectButton();
+ void showDisconnectedLayout();
+ void showConnectedLayout();
+
+ bool pressedConnect;
+
+ LLTextBox * mAccountCaptionLabel;
+ LLTextBox * mAccountNameLabel;
+ LLUICtrl * mPanelButtons;
+ LLUICtrl * mConnectButton;
+ LLUICtrl * mDisconnectButton;
LLUICtrl* mMessageTextEditor;
LLUICtrl* mPostButton;
LLUICtrl* mCancelButton;
@@ -87,7 +105,6 @@ private:
LLHandle<LLView> mPreviewHandle;
- LLUICtrl * mSnapshotPanel;
LLUICtrl * mResolutionComboBox;
LLUICtrl * mFilterComboBox;
LLUICtrl * mRefreshBtn;
@@ -147,33 +164,6 @@ private:
LLAvatarList* mSuggestedFriends;
};
-class LLFacebookAccountPanel : public LLPanel
-{
-public:
- LLFacebookAccountPanel();
- BOOL postBuild();
- void draw();
-
-private:
- void onVisibilityChange(BOOL new_visibility);
- bool onFacebookConnectStateChange(const LLSD& data);
- bool onFacebookConnectInfoChange();
- void onConnect();
- void onUseAnotherAccount();
- void onDisconnect();
-
- void showConnectButton();
- void hideConnectButton();
- void showDisconnectedLayout();
- void showConnectedLayout();
-
- LLTextBox * mAccountCaptionLabel;
- LLTextBox * mAccountNameLabel;
- LLUICtrl * mPanelButtons;
- LLUICtrl * mConnectButton;
- LLUICtrl * mDisconnectButton;
-};
-
class LLFloaterFacebook : public LLFloater
{
public:
diff --git a/indra/newview/llfloaterflickr.cpp b/indra/newview/llfloaterflickr.cpp
index 4e6d98ecfa..36afab86b7 100644
--- a/indra/newview/llfloaterflickr.cpp
+++ b/indra/newview/llfloaterflickr.cpp
@@ -65,7 +65,6 @@ const std::string FLICKR_MACHINE_TAGS_NAMESPACE = "secondlife";
///////////////////////////
LLFlickrPhotoPanel::LLFlickrPhotoPanel() :
-mSnapshotPanel(NULL),
mResolutionComboBox(NULL),
mRefreshBtn(NULL),
mBtnPreview(NULL),
@@ -96,7 +95,6 @@ BOOL LLFlickrPhotoPanel::postBuild()
{
setVisibleCallback(boost::bind(&LLFlickrPhotoPanel::onVisibilityChange, this, _2));
- mSnapshotPanel = getChild<LLUICtrl>("snapshot_panel");
mResolutionComboBox = getChild<LLUICtrl>("resolution_combobox");
mResolutionComboBox->setCommitCallback(boost::bind(&LLFlickrPhotoPanel::updateResolution, this, TRUE));
mFilterComboBox = getChild<LLUICtrl>("filters_combobox");
@@ -191,16 +189,9 @@ void LLFlickrPhotoPanel::draw()
// calc preview offset within the preview rect
const S32 local_offset_x = (thumbnail_rect.getWidth() - thumbnail_w) / 2 ;
const S32 local_offset_y = (thumbnail_rect.getHeight() - thumbnail_h) / 2 ;
+ S32 offset_x = thumbnail_rect.mLeft + local_offset_x;
+ S32 offset_y = thumbnail_rect.mBottom + local_offset_y;
- // calc preview offset within the floater rect
- // Hack : To get the full offset, we need to take into account each and every offset of each widgets up to the floater.
- // This is almost as arbitrary as using a fixed offset so that's what we do here for the sake of simplicity.
- // *TODO : Get the offset looking through the hierarchy of widgets, should be done in postBuild() so to avoid traversing the hierarchy each time.
- S32 offset_x = thumbnail_rect.mLeft + local_offset_x - 1;
- S32 offset_y = thumbnail_rect.mBottom + local_offset_y - 39;
-
- mSnapshotPanel->localPointToOtherView(offset_x, offset_y, &offset_x, &offset_y, getParentByType<LLFloater>());
-
gGL.matrixMode(LLRender::MM_MODELVIEW);
// Apply floater transparency to the texture unless the floater is focused.
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
@@ -235,7 +226,7 @@ void LLFlickrPhotoPanel::onVisibilityChange(BOOL visible)
LLSnapshotLivePreview* preview = getPreviewView();
if(preview)
{
- lldebugs << "opened, updating snapshot" << llendl;
+ LL_DEBUGS() << "opened, updating snapshot" << LL_ENDL;
preview->updateSnapshot(TRUE);
}
}
@@ -427,7 +418,7 @@ void LLFlickrPhotoPanel::updateControls()
BOOL got_snap = previewp && previewp->getSnapshotUpToDate();
// *TODO: Separate maximum size for Web images from postcards
- lldebugs << "Is snapshot up-to-date? " << got_snap << llendl;
+ LL_DEBUGS() << "Is snapshot up-to-date? " << got_snap << LL_ENDL;
updateResolution(FALSE);
}
@@ -457,13 +448,13 @@ void LLFlickrPhotoPanel::updateResolution(BOOL do_update)
if (width == 0 || height == 0)
{
// take resolution from current window size
- lldebugs << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << llendl;
+ LL_DEBUGS() << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << LL_ENDL;
previewp->setSize(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
}
else
{
// use the resolution from the selected pre-canned drop-down choice
- lldebugs << "Setting preview res selected from combo: " << width << "x" << height << llendl;
+ LL_DEBUGS() << "Setting preview res selected from combo: " << width << "x" << height << LL_ENDL;
previewp->setSize(width, height);
}
@@ -726,7 +717,7 @@ void LLFloaterFlickr::showPhotoPanel()
LLTabContainer* parent = dynamic_cast<LLTabContainer*>(mFlickrPhotoPanel->getParent());
if (!parent)
{
- llwarns << "Cannot find panel container" << llendl;
+ LL_WARNS() << "Cannot find panel container" << LL_ENDL;
return;
}
diff --git a/indra/newview/llfloaterflickr.h b/indra/newview/llfloaterflickr.h
index ba27c9a3d8..74da3bcea9 100644
--- a/indra/newview/llfloaterflickr.h
+++ b/indra/newview/llfloaterflickr.h
@@ -67,7 +67,6 @@ private:
LLHandle<LLView> mPreviewHandle;
- LLUICtrl * mSnapshotPanel;
LLUICtrl * mResolutionComboBox;
LLUICtrl * mFilterComboBox;
LLUICtrl * mRefreshBtn;
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 7213064746..d01c089eaf 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -1517,6 +1517,8 @@ void LLPanelLandObjects::onClickRefresh(void* userdata)
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
if (!region) return;
+ self->mBtnRefresh->setEnabled(false);
+
// ready the list for results
self->mOwnerList->deleteAllItems();
self->mOwnerList->setCommentText(LLTrans::getString("Searching"));
@@ -1576,6 +1578,7 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo
{
msg->getU32("DataExtended", "TimeStamp", most_recent_time, i);
}
+
if (owner_id.isNull())
{
continue;
@@ -1611,10 +1614,10 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo
item_params.columns.add().value(LLDate((time_t)most_recent_time)).font(FONT).column("mostrecent").type("date");
self->mOwnerList->addNameItemRow(item_params);
-
LL_DEBUGS() << "object owner " << owner_id << " (" << (is_group_owned ? "group" : "agent")
<< ") owns " << object_count << " objects." << LL_ENDL;
}
+
// check for no results
if (0 == self->mOwnerList->getItemCount())
{
@@ -1624,6 +1627,8 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo
{
self->mOwnerList->setEnabled(TRUE);
}
+
+ self->mBtnRefresh->setEnabled(true);
}
// static
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 5e9b25b474..a2af9da670 100755
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -481,6 +481,17 @@ void LLFloaterRegionInfo::refresh()
}
}
+void LLFloaterRegionInfo::enableTopButtons()
+{
+ getChildView("top_colliders_btn")->setEnabled(true);
+ getChildView("top_scripts_btn")->setEnabled(true);
+}
+
+void LLFloaterRegionInfo::disableTopButtons()
+{
+ getChildView("top_colliders_btn")->setEnabled(false);
+ getChildView("top_scripts_btn")->setEnabled(false);
+}
///----------------------------------------------------------------------------
/// Local class implementation
@@ -1033,6 +1044,11 @@ void LLPanelRegionDebugInfo::onClickTopColliders(void* data)
if(!instance) return;
LLFloaterReg::showInstance("top_objects");
instance->clearList();
+ instance->disableRefreshBtn();
+
+ self->getChildView("top_colliders_btn")->setEnabled(false);
+ self->getChildView("top_scripts_btn")->setEnabled(false);
+
self->sendEstateOwnerMessage(gMessageSystem, "colliders", invoice, strings);
}
@@ -1047,6 +1063,11 @@ void LLPanelRegionDebugInfo::onClickTopScripts(void* data)
if(!instance) return;
LLFloaterReg::showInstance("top_objects");
instance->clearList();
+ instance->disableRefreshBtn();
+
+ self->getChildView("top_colliders_btn")->setEnabled(false);
+ self->getChildView("top_scripts_btn")->setEnabled(false);
+
self->sendEstateOwnerMessage(gMessageSystem, "scripts", invoice, strings);
}
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index 5bc4273d5f..792f60ebc8 100755
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -96,6 +96,8 @@ public:
void requestRegionInfo();
void requestMeshRezInfo();
+ void enableTopButtons();
+ void disableTopButtons();
private:
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 960d3f35dd..8677028942 100755
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -62,7 +62,6 @@ const S32 MAX_TEXTURE_SIZE = 512 ; //max upload texture size 512 * 512
static LLDefaultChildRegistry::Register<LLSnapshotFloaterView> r("snapshot_floater_view");
-
///----------------------------------------------------------------------------
/// Class LLFloaterSnapshot::Impl
///----------------------------------------------------------------------------
@@ -96,7 +95,6 @@ public:
static void onClickAutoSnap(LLUICtrl *ctrl, void* data);
static void onClickFilter(LLUICtrl *ctrl, void* data);
//static void onClickAdvanceSnap(LLUICtrl *ctrl, void* data);
- static void onClickMore(void* data) ;
static void onClickUICheck(LLUICtrl *ctrl, void* data);
static void onClickHUDCheck(LLUICtrl *ctrl, void* data);
static void applyKeepAspectCheck(LLFloaterSnapshot* view, BOOL checked);
@@ -264,29 +262,34 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
BOOL advanced = gSavedSettings.getBOOL("AdvanceSnapshot");
- // Show/hide advanced options.
- LLPanel* advanced_options_panel = floaterp->getChild<LLPanel>("advanced_options_panel");
- floaterp->getChild<LLButton>("advanced_options_btn")->setImageOverlay(advanced ? "TabIcon_Open_Off" : "TabIcon_Close_Off");
- if (advanced != advanced_options_panel->getVisible())
+ //BD - Automatically calculate the size of our snapshot window to enlarge
+ // the snapshot preview to its maximum size, this is especially helpfull
+ // for pretty much every aspect ratio other than 1:1.
+ F32 panel_width = 400.f * gViewerWindow->getWorldViewAspectRatio();
+
+ //BD - Make sure we clamp at 700 here because 700 would be for 16:9 which we
+ // consider the maximum. Everything bigger will be clamped and will have
+ // a slightly smaller preview window which most likely won't fill up the
+ // whole snapshot floater as it should.
+ if(panel_width > 700.f)
{
- S32 panel_width = advanced_options_panel->getRect().getWidth();
- floaterp->getChild<LLPanel>("advanced_options_panel")->setVisible(advanced);
- S32 floater_width = floaterp->getRect().getWidth();
- floater_width += (advanced ? panel_width : -panel_width);
- floaterp->reshape(floater_width, floaterp->getRect().getHeight());
+ panel_width = 700.f;
}
- if(!advanced) //set to original window resolution
+ S32 floater_width = 224.f;
+ if(advanced)
{
- previewp->mKeepAspectRatio = TRUE;
-
- floaterp->getChild<LLComboBox>("profile_size_combo")->setCurrentByIndex(0);
- floaterp->getChild<LLComboBox>("postcard_size_combo")->setCurrentByIndex(0);
- floaterp->getChild<LLComboBox>("texture_size_combo")->setCurrentByIndex(0);
- floaterp->getChild<LLComboBox>("local_size_combo")->setCurrentByIndex(0);
+ floater_width = floater_width + panel_width;
+ }
- LLSnapshotLivePreview* previewp = getPreviewView(floaterp);
- previewp->setSize(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
+ LLUICtrl* thumbnail_placeholder = floaterp->getChild<LLUICtrl>("thumbnail_placeholder");
+ thumbnail_placeholder->setVisible(advanced);
+ thumbnail_placeholder->reshape(panel_width, thumbnail_placeholder->getRect().getHeight());
+ floaterp->getChild<LLUICtrl>("image_res_text")->setVisible(advanced);
+ floaterp->getChild<LLUICtrl>("file_size_label")->setVisible(advanced);
+ if(!floaterp->isMinimized())
+ {
+ floaterp->reshape(floater_width, floaterp->getRect().getHeight());
}
bool use_freeze_frame = floaterp->getChild<LLUICtrl>("freeze_frame_check")->getValue().asBoolean();
@@ -388,7 +391,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
height_ctrl->setValue(h);
}
- // Сlamp snapshot resolution to window size when showing UI or HUD in snapshot.
+ // Clamp snapshot resolution to window size when showing UI or HUD in snapshot.
if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
{
S32 width = gViewerWindow->getWindowWidthRaw();
@@ -576,25 +579,11 @@ void LLFloaterSnapshot::Impl::onClickFilter(LLUICtrl *ctrl, void* data)
LLComboBox* filterbox = static_cast<LLComboBox *>(view->getChild<LLComboBox>("filters_combobox"));
std::string filter_name = (filterbox->getCurrentIndex() ? filterbox->getSimple() : "");
previewp->setFilter(filter_name);
- previewp->updateSnapshot(FALSE, TRUE);
+ previewp->updateSnapshot(TRUE);
}
}
}
-void LLFloaterSnapshot::Impl::onClickMore(void* data)
-{
- BOOL visible = gSavedSettings.getBOOL("AdvanceSnapshot");
-
- LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
- if (view)
- {
- view->impl.setStatus(Impl::STATUS_READY);
- gSavedSettings.setBOOL("AdvanceSnapshot", !visible);
- updateControls(view) ;
- updateLayout(view) ;
- }
-}
-
// static
void LLFloaterSnapshot::Impl::onClickUICheck(LLUICtrl *ctrl, void* data)
{
@@ -772,6 +761,12 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
S32 original_width = 0 , original_height = 0 ;
previewp->getSize(original_width, original_height) ;
+ if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
+ { //clamp snapshot resolution to window size when showing UI or HUD in snapshot
+ width = llmin(width, gViewerWindow->getWindowWidthRaw());
+ height = llmin(height, gViewerWindow->getWindowHeightRaw());
+ }
+
if (width == 0 || height == 0)
{
// take resolution from current window size
@@ -817,14 +812,12 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
checkAspectRatio(view, width) ;
previewp->getSize(width, height);
-
- if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
- { //clamp snapshot resolution to window size when showing UI or HUD in snapshot
- width = llmin(width, gViewerWindow->getWindowWidthRaw());
- height = llmin(height, gViewerWindow->getWindowHeightRaw());
- }
- updateSpinners(view, previewp, width, height, TRUE); // may change width and height
+ // We use the height spinner here because we come here via the aspect ratio
+ // checkbox as well and we want height always changing to width by default.
+ // If we use the width spinner we would change width according to height by
+ // default, that is not what we want.
+ updateSpinners(view, previewp, width, height, !getHeightSpinner(view)->isDirty()); // may change width and height
if(getWidthSpinner(view)->getValue().asInteger() != width || getHeightSpinner(view)->getValue().asInteger() != height)
{
@@ -839,12 +832,11 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
// hide old preview as the aspect ratio could be wrong
checkAutoSnapshot(previewp, FALSE);
LL_DEBUGS() << "updating thumbnail" << LL_ENDL;
- getPreviewView(view)->updateSnapshot(FALSE, TRUE);
+ getPreviewView(view)->updateSnapshot(TRUE);
if(do_update)
{
LL_DEBUGS() << "Will update controls" << LL_ENDL;
updateControls(view);
- setNeedRefresh(view, true);
}
}
}
@@ -887,7 +879,6 @@ void LLFloaterSnapshot::Impl::onImageFormatChange(LLFloaterSnapshot* view)
LL_DEBUGS() << "image format changed, updating snapshot" << LL_ENDL;
getPreviewView(view)->updateSnapshot(TRUE);
updateControls(view);
- setNeedRefresh(view, false); // we're refreshing
}
}
@@ -956,6 +947,8 @@ void LLFloaterSnapshot::Impl::setImageSizeSpinnersValues(LLFloaterSnapshot *view
// static
void LLFloaterSnapshot::Impl::updateSpinners(LLFloaterSnapshot* view, LLSnapshotLivePreview* previewp, S32& width, S32& height, BOOL is_width_changed)
{
+ getWidthSpinner(view)->resetDirty();
+ getHeightSpinner(view)->resetDirty();
if (checkImageSize(previewp, width, height, is_width_changed, previewp->getMaxImageSize()))
{
setImageSizeSpinnersValues(view, width, height);
@@ -965,8 +958,6 @@ void LLFloaterSnapshot::Impl::updateSpinners(LLFloaterSnapshot* view, LLSnapshot
// static
void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32 w, S32 h)
{
- bool need_refresh = false;
-
LL_DEBUGS() << "applyCustomResolution(" << w << ", " << h << ")" << LL_ENDL;
if (!view) return;
@@ -981,25 +972,16 @@ void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32
//if to upload a snapshot, process spinner input in a special way.
previewp->setMaxImageSize((S32) getWidthSpinner(view)->getMaxValue()) ;
- updateSpinners(view, previewp, w, h, w != curw); // may change w and h
-
previewp->setSize(w,h);
checkAutoSnapshot(previewp, FALSE);
- LL_DEBUGS() << "applied custom resolution, updating thumbnail" << LL_ENDL;
- previewp->updateSnapshot(FALSE, TRUE);
comboSetCustom(view, "profile_size_combo");
comboSetCustom(view, "postcard_size_combo");
comboSetCustom(view, "texture_size_combo");
comboSetCustom(view, "local_size_combo");
- need_refresh = true;
+ LL_DEBUGS() << "applied custom resolution, updating thumbnail" << LL_ENDL;
+ previewp->updateSnapshot(TRUE);
}
}
-
- updateControls(view);
- if (need_refresh)
- {
- setNeedRefresh(view, true); // need to do this after updateControls()
- }
}
// static
@@ -1055,8 +1037,6 @@ BOOL LLFloaterSnapshot::postBuild()
mSucceessLblPanel = getChild<LLUICtrl>("succeeded_panel");
mFailureLblPanel = getChild<LLUICtrl>("failed_panel");
- childSetAction("advanced_options_btn", Impl::onClickMore, this);
-
childSetCommitCallback("ui_check", Impl::onClickUICheck, this);
getChild<LLUICtrl>("ui_check")->setValue(gSavedSettings.getBOOL("RenderUIInSnapshot"));
@@ -1075,24 +1055,15 @@ BOOL LLFloaterSnapshot::postBuild()
getChild<LLUICtrl>("auto_snapshot_check")->setValue(gSavedSettings.getBOOL("AutoSnapshot"));
childSetCommitCallback("auto_snapshot_check", Impl::onClickAutoSnap, this);
+
// Filters
LLComboBox* filterbox = getChild<LLComboBox>("filters_combobox");
- if (gSavedSettings.getBOOL("SnapshotFiltersEnabled"))
- {
- // Update filter list if setting is on (experimental)
- std::vector<std::string> filter_list = LLImageFiltersManager::getInstance()->getFiltersList();
- for (U32 i = 0; i < filter_list.size(); i++)
- {
- filterbox->add(filter_list[i]);
- }
- childSetCommitCallback("filters_combobox", Impl::onClickFilter, this);
- }
- else
+ std::vector<std::string> filter_list = LLImageFiltersManager::getInstance()->getFiltersList();
+ for (U32 i = 0; i < filter_list.size(); i++)
{
- // Hide Filter UI if setting is off (default)
- getChild<LLUICtrl>("filter_list_label")->setVisible(FALSE);
- filterbox->setVisible(FALSE);
+ filterbox->add(filter_list[i]);
}
+ childSetCommitCallback("filters_combobox", Impl::onClickFilter, this);
LLWebProfile::setImageUploadResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSnapshotUploadFinished, _1));
LLPostCard::setPostResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSendingPostcardFinished, _1));
@@ -1119,7 +1090,7 @@ BOOL LLFloaterSnapshot::postBuild()
getChild<LLComboBox>("profile_size_combo")->selectNthItem(0);
getChild<LLComboBox>("postcard_size_combo")->selectNthItem(0);
getChild<LLComboBox>("texture_size_combo")->selectNthItem(0);
- getChild<LLComboBox>("local_size_combo")->selectNthItem(0);
+ getChild<LLComboBox>("local_size_combo")->selectNthItem(8);
getChild<LLComboBox>("local_format_combo")->selectNthItem(0);
impl.mPreviewHandle = previewp->getHandle();
@@ -1145,7 +1116,7 @@ void LLFloaterSnapshot::draw()
LLFloater::draw();
- if (previewp && !isMinimized())
+ if (previewp && !isMinimized() && sThumbnailPlaceholder->getVisible())
{
if(previewp->getThumbnailImage())
{
@@ -1172,44 +1143,13 @@ void LLFloaterSnapshot::draw()
previewp->drawPreviewRect(offset_x, offset_y) ;
- // Draw some controls on top of the preview thumbnail.
- static const S32 PADDING = 5;
- static const S32 REFRESH_LBL_BG_HEIGHT = 32;
-
- // Reshape and position the posting result message panels at the top of the thumbnail.
- // Do this regardless of current posting status (finished or not) to avoid flicker
- // when the result message is displayed for the first time.
- // if (impl.getStatus() == Impl::STATUS_FINISHED)
- {
- LLRect result_lbl_rect = mSucceessLblPanel->getRect();
- const S32 result_lbl_h = result_lbl_rect.getHeight();
- result_lbl_rect.setLeftTopAndSize(local_offset_x, local_offset_y + thumbnail_h, thumbnail_w - 1, result_lbl_h);
- mSucceessLblPanel->reshape(result_lbl_rect.getWidth(), result_lbl_h);
- mSucceessLblPanel->setRect(result_lbl_rect);
- mFailureLblPanel->reshape(result_lbl_rect.getWidth(), result_lbl_h);
- mFailureLblPanel->setRect(result_lbl_rect);
- }
-
- // Position the refresh button in the bottom left corner of the thumbnail.
- mRefreshBtn->setOrigin(local_offset_x + PADDING, local_offset_y + PADDING);
-
- if (impl.mNeedRefresh)
- {
- // Place the refresh hint text to the right of the refresh button.
- const LLRect& refresh_btn_rect = mRefreshBtn->getRect();
- mRefreshLabel->setOrigin(refresh_btn_rect.mLeft + refresh_btn_rect.getWidth() + PADDING, refresh_btn_rect.mBottom);
-
- // Draw the refresh hint background.
- LLRect refresh_label_bg_rect(offset_x, offset_y + REFRESH_LBL_BG_HEIGHT, offset_x + thumbnail_w - 1, offset_y);
- gl_rect_2d(refresh_label_bg_rect, LLColor4::white % 0.9f, TRUE);
- }
-
gGL.pushUIMatrix();
LLUI::translate((F32) thumbnail_rect.mLeft, (F32) thumbnail_rect.mBottom);
sThumbnailPlaceholder->draw();
gGL.popUIMatrix();
}
}
+ impl.updateLayout(this);
}
void LLFloaterSnapshot::onOpen(const LLSD& key)
@@ -1225,6 +1165,9 @@ void LLFloaterSnapshot::onOpen(const LLSD& key)
gSnapshotFloaterView->setVisible(TRUE);
gSnapshotFloaterView->adjustToFitScreen(this, FALSE);
+ impl.updateControls(this);
+ impl.updateLayout(this);
+
// Initialize default tab.
getChild<LLSideTrayPanelContainer>("panel_container")->getCurrentPanel()->onOpen(LLSD());
}
@@ -1293,8 +1236,6 @@ S32 LLFloaterSnapshot::notify(const LLSD& info)
{
// Disable the send/post/save buttons until snapshot is ready.
impl.updateControls(this);
- // Force hiding the "Refresh to save" hint because we know we've just started refresh.
- impl.setNeedRefresh(this, false);
return 1;
}
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 7530c72dd2..d604b8619a 100755
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -50,6 +50,7 @@
#include "llviewerregion.h"
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
+#include "llfloaterregioninfo.h"
//LLFloaterTopObjects* LLFloaterTopObjects::sInstance = NULL;
@@ -207,7 +208,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
columns[column_num++]["font"] = "SANSSERIF";
columns[column_num]["column"] = "location";
- columns[column_num]["value"] = llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z);
+ columns[column_num]["value"] = llformat("<%0.f, %0.f, %0.f>", location_x, location_y, location_z);
columns[column_num++]["font"] = "SANSSERIF";
columns[column_num]["column"] = "parcel";
@@ -257,6 +258,8 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
format.setArg("[COUNT]", llformat("%d", total_count));
format.setArg("[TIME]", llformat("%0.3f", mtotalScore));
getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
+ list->setColumnLabel("URLs", getString("URLs"));
+ list->setColumnLabel("memory", getString("memory"));
}
else
{
@@ -268,6 +271,13 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
format.setArg("[COUNT]", llformat("%d", total_count));
getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
}
+
+ LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
+ if(region_info_floater)
+ {
+ region_info_floater->enableTopButtons();
+ }
+ getChildView("refresh_btn")->setEnabled(true);
}
void LLFloaterTopObjects::onCommitObjectsList()
@@ -453,12 +463,24 @@ void LLFloaterTopObjects::onRefresh()
msg->addStringFast(_PREHASH_Filter, filter);
msg->addS32Fast(_PREHASH_ParcelLocalID, 0);
+ LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
+ if(region_info_floater)
+ {
+ region_info_floater->disableTopButtons();
+ }
+ disableRefreshBtn();
+
msg->sendReliable(gAgent.getRegionHost());
mFilter.clear();
mFlags = 0;
}
+void LLFloaterTopObjects::disableRefreshBtn()
+{
+ getChildView("refresh_btn")->setEnabled(false);
+}
+
void LLFloaterTopObjects::onGetByObjectName()
{
mFlags = STAT_FILTER_BY_OBJECT;
diff --git a/indra/newview/llfloatertopobjects.h b/indra/newview/llfloatertopobjects.h
index 28d2aa58e2..dbbe9ac521 100755
--- a/indra/newview/llfloatertopobjects.h
+++ b/indra/newview/llfloatertopobjects.h
@@ -66,6 +66,7 @@ public:
void onRefresh();
static void setMode(U32 mode);
+ void disableRefreshBtn();
private:
LLFloaterTopObjects(const LLSD& key);
diff --git a/indra/newview/llfloatertwitter.cpp b/indra/newview/llfloatertwitter.cpp
index 78e9259919..868d623d57 100644
--- a/indra/newview/llfloatertwitter.cpp
+++ b/indra/newview/llfloatertwitter.cpp
@@ -64,7 +64,6 @@ const std::string DEFAULT_STATUS_TEXT = " #SecondLife";
///////////////////////////
LLTwitterPhotoPanel::LLTwitterPhotoPanel() :
-mSnapshotPanel(NULL),
mResolutionComboBox(NULL),
mRefreshBtn(NULL),
mBtnPreview(NULL),
@@ -94,7 +93,6 @@ BOOL LLTwitterPhotoPanel::postBuild()
{
setVisibleCallback(boost::bind(&LLTwitterPhotoPanel::onVisibilityChange, this, _2));
- mSnapshotPanel = getChild<LLUICtrl>("snapshot_panel");
mResolutionComboBox = getChild<LLUICtrl>("resolution_combobox");
mResolutionComboBox->setValue("[i800,i600]"); // hardcoded defaults ftw!
mResolutionComboBox->setCommitCallback(boost::bind(&LLTwitterPhotoPanel::updateResolution, this, TRUE));
@@ -194,15 +192,8 @@ void LLTwitterPhotoPanel::draw()
// calc preview offset within the preview rect
const S32 local_offset_x = (thumbnail_rect.getWidth() - thumbnail_w) / 2 ;
const S32 local_offset_y = (thumbnail_rect.getHeight() - thumbnail_h) / 2 ;
-
- // calc preview offset within the floater rect
- // Hack : To get the full offset, we need to take into account each and every offset of each widgets up to the floater.
- // This is almost as arbitrary as using a fixed offset so that's what we do here for the sake of simplicity.
- // *TODO : Get the offset looking through the hierarchy of widgets, should be done in postBuild() so to avoid traversing the hierarchy each time.
- S32 offset_x = thumbnail_rect.mLeft + local_offset_x - 1;
- S32 offset_y = thumbnail_rect.mBottom + local_offset_y - 39;
-
- mSnapshotPanel->localPointToOtherView(offset_x, offset_y, &offset_x, &offset_y, getParentByType<LLFloater>());
+ S32 offset_x = thumbnail_rect.mLeft + local_offset_x;
+ S32 offset_y = thumbnail_rect.mBottom + local_offset_y;
gGL.matrixMode(LLRender::MM_MODELVIEW);
// Apply floater transparency to the texture unless the floater is focused.
@@ -238,7 +229,7 @@ void LLTwitterPhotoPanel::onVisibilityChange(BOOL visible)
LLSnapshotLivePreview* preview = getPreviewView();
if(preview)
{
- lldebugs << "opened, updating snapshot" << llendl;
+ LL_DEBUGS() << "opened, updating snapshot" << LL_ENDL;
preview->updateSnapshot(TRUE);
}
}
@@ -455,7 +446,7 @@ void LLTwitterPhotoPanel::updateControls()
BOOL got_snap = previewp && previewp->getSnapshotUpToDate();
// *TODO: Separate maximum size for Web images from postcards
- lldebugs << "Is snapshot up-to-date? " << got_snap << llendl;
+ LL_DEBUGS() << "Is snapshot up-to-date? " << got_snap << LL_ENDL;
updateResolution(FALSE);
}
@@ -485,13 +476,13 @@ void LLTwitterPhotoPanel::updateResolution(BOOL do_update)
if (width == 0 || height == 0)
{
// take resolution from current window size
- lldebugs << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << llendl;
+ LL_DEBUGS() << "Setting preview res from window: " << gViewerWindow->getWindowWidthRaw() << "x" << gViewerWindow->getWindowHeightRaw() << LL_ENDL;
previewp->setSize(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
}
else
{
// use the resolution from the selected pre-canned drop-down choice
- lldebugs << "Setting preview res selected from combo: " << width << "x" << height << llendl;
+ LL_DEBUGS() << "Setting preview res selected from combo: " << width << "x" << height << LL_ENDL;
previewp->setSize(width, height);
}
@@ -755,7 +746,7 @@ void LLFloaterTwitter::showPhotoPanel()
LLTabContainer* parent = dynamic_cast<LLTabContainer*>(mTwitterPhotoPanel->getParent());
if (!parent)
{
- llwarns << "Cannot find panel container" << llendl;
+ LL_WARNS() << "Cannot find panel container" << LL_ENDL;
return;
}
diff --git a/indra/newview/llfloatertwitter.h b/indra/newview/llfloatertwitter.h
index f07ec2ca2f..d586799d18 100644
--- a/indra/newview/llfloatertwitter.h
+++ b/indra/newview/llfloatertwitter.h
@@ -70,7 +70,6 @@ private:
LLHandle<LLView> mPreviewHandle;
- LLUICtrl * mSnapshotPanel;
LLUICtrl * mResolutionComboBox;
LLUICtrl * mFilterComboBox;
LLUICtrl * mRefreshBtn;
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 000eee3317..0bbb4aeeff 100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -37,6 +37,7 @@
#include "llfolderview.h"
#include "llinventorybridge.h"
#include "llviewerfoldertype.h"
+#include "llradiogroup.h"
// linden library includes
#include "llclipboard.h"
@@ -51,6 +52,7 @@ LLInventoryFilter::FilterOps::FilterOps(const Params& p)
mMinDate(p.date_range.min_date),
mMaxDate(p.date_range.max_date),
mHoursAgo(p.hours_ago),
+ mDateSearchDirection(p.date_search_direction),
mShowFolderState(p.show_folder_state),
mPermissions(p.permissions),
mFilterTypes(p.types),
@@ -209,6 +211,7 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
{
const U16 HOURS_TO_SECONDS = 3600;
time_t earliest = time_corrected() - mFilterOps.mHoursAgo * HOURS_TO_SECONDS;
+
if (mFilterOps.mMinDate > time_min() && mFilterOps.mMinDate < earliest)
{
earliest = mFilterOps.mMinDate;
@@ -217,9 +220,19 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
{
earliest = 0;
}
- if (listener->getCreationDate() < earliest ||
- listener->getCreationDate() > mFilterOps.mMaxDate)
- return FALSE;
+
+ if (FILTERDATEDIRECTION_NEWER == mFilterOps.mDateSearchDirection || isSinceLogoff())
+ {
+ if (listener->getCreationDate() < earliest ||
+ listener->getCreationDate() > mFilterOps.mMaxDate)
+ return FALSE;
+ }
+ else
+ {
+ if (listener->getCreationDate() > earliest ||
+ listener->getCreationDate() > mFilterOps.mMaxDate)
+ return FALSE;
+ }
}
////////////////////////////////////////////////////////////////////////////////
@@ -629,11 +642,22 @@ void LLInventoryFilter::setHoursAgo(U32 hours)
bool are_date_limits_valid = mFilterOps.mMinDate == time_min() && mFilterOps.mMaxDate == time_max();
bool is_increasing = hours > mFilterOps.mHoursAgo;
+ bool is_decreasing = hours < mFilterOps.mHoursAgo;
bool is_increasing_from_zero = is_increasing && !mFilterOps.mHoursAgo && !isSinceLogoff();
// *NOTE: need to cache last filter time, in case filter goes stale
- BOOL less_restrictive = (are_date_limits_valid && ((is_increasing && mFilterOps.mHoursAgo)) || !hours);
- BOOL more_restrictive = (are_date_limits_valid && (!is_increasing && hours) || is_increasing_from_zero);
+ BOOL less_restrictive;
+ BOOL more_restrictive;
+ if (FILTERDATEDIRECTION_NEWER == mFilterOps.mDateSearchDirection)
+ {
+ less_restrictive = (are_date_limits_valid && ((is_increasing && mFilterOps.mHoursAgo)) || !hours);
+ more_restrictive = (are_date_limits_valid && (!is_increasing && hours) || is_increasing_from_zero);
+ }
+ else
+ {
+ less_restrictive = (are_date_limits_valid && ((is_decreasing && mFilterOps.mHoursAgo)) || !hours);
+ more_restrictive = (are_date_limits_valid && (!is_decreasing && hours) || is_increasing_from_zero);
+ }
mFilterOps.mHoursAgo = hours;
mFilterOps.mMinDate = time_min();
@@ -662,6 +686,20 @@ void LLInventoryFilter::setHoursAgo(U32 hours)
}
}
+void LLInventoryFilter::setDateSearchDirection(U32 direction)
+{
+ if (direction != mFilterOps.mDateSearchDirection)
+ {
+ mFilterOps.mDateSearchDirection = direction;
+ setModified(FILTER_RESTART);
+ }
+}
+
+U32 LLInventoryFilter::getDateSearchDirection() const
+{
+ return mFilterOps.mDateSearchDirection;
+}
+
void LLInventoryFilter::setFilterLinks(U64 filter_links)
{
if (mFilterOps.mFilterLinks != filter_links)
@@ -926,6 +964,7 @@ LLInventoryFilter& LLInventoryFilter::operator=( const LLInventoryFilter& othe
setFilterObjectTypes(other.getFilterObjectTypes());
setDateRange(other.getMinDate(), other.getMaxDate());
setHoursAgo(other.getHoursAgo());
+ setDateSearchDirection(other.getDateSearchDirection());
setShowFolderState(other.getShowFolderState());
setFilterPermissions(other.getFilterPermissions());
setFilterSubString(other.getFilterSubString());
@@ -945,6 +984,7 @@ void LLInventoryFilter::toParams(Params& params) const
params.filter_ops.date_range.min_date = getMinDate();
params.filter_ops.date_range.max_date = getMaxDate();
params.filter_ops.hours_ago = getHoursAgo();
+ params.filter_ops.date_search_direction = getDateSearchDirection();
params.filter_ops.show_folder_state = getShowFolderState();
params.filter_ops.permissions = getFilterPermissions();
params.substring = getFilterSubString();
@@ -966,6 +1006,7 @@ void LLInventoryFilter::fromParams(const Params& params)
}
setDateRange(params.filter_ops.date_range.min_date, params.filter_ops.date_range.max_date);
setHoursAgo(params.filter_ops.hours_ago);
+ setDateSearchDirection(params.filter_ops.date_search_direction);
setShowFolderState(params.filter_ops.show_folder_state);
setFilterPermissions(params.filter_ops.permissions);
setFilterSubString(params.substring);
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index ce516af0b9..0d3d3889cb 100755
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
@@ -55,6 +55,12 @@ public:
FILTERTYPE_EMPTYFOLDERS = 0x1 << 5 // pass if folder is not a system folder to be hidden if
};
+ enum EFilterDateDirection
+ {
+ FILTERDATEDIRECTION_NEWER,
+ FILTERDATEDIRECTION_OLDER
+ };
+
enum EFilterLink
{
FILTERLINK_INCLUDE_LINKS, // show links too
@@ -94,7 +100,8 @@ public:
Optional<EFilterLink> links;
Optional<LLUUID> uuid;
Optional<DateRange> date_range;
- Optional<S32> hours_ago;
+ Optional<U32> hours_ago;
+ Optional<U32> date_search_direction;
Optional<EFolderShow> show_folder_state;
Optional<PermissionMask> permissions;
@@ -107,6 +114,7 @@ public:
uuid("uuid"),
date_range("date_range"),
hours_ago("hours_ago", 0),
+ date_search_direction("date_search_direction", FILTERDATEDIRECTION_NEWER),
show_folder_state("show_folder_state", SHOW_NON_EMPTY_FOLDERS),
permissions("permissions", PERM_NONE)
{}
@@ -124,6 +132,7 @@ public:
time_t mMinDate,
mMaxDate;
U32 mHoursAgo;
+ U32 mDateSearchDirection;
EFolderShow mShowFolderState;
PermissionMask mPermissions;
@@ -177,6 +186,8 @@ public:
void setHoursAgo(U32 hours);
U32 getHoursAgo() const;
+ void setDateSearchDirection(U32 direction);
+ U32 getDateSearchDirection() const;
void setFilterLinks(U64 filter_link);
U64 getFilterLinks() const;
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index a4a85e2e8d..db5be2cef5 100755
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -400,6 +400,11 @@ void LLInventoryPanel::setHoursAgo(U32 hours)
getFilter().setHoursAgo(hours);
}
+void LLInventoryPanel::setDateSearchDirection(U32 direction)
+{
+ getFilter().setDateSearchDirection(direction);
+}
+
void LLInventoryPanel::setFilterLinks(U64 filter_links)
{
getFilter().setFilterLinks(filter_links);
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 91c3efd8f0..a490dfce5d 100755
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -173,6 +173,7 @@ public:
const std::string getFilterSubString();
void setSinceLogoff(BOOL sl);
void setHoursAgo(U32 hours);
+ void setDateSearchDirection(U32 direction);
BOOL getSinceLogoff();
void setFilterLinks(U64 filter_links);
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index b02298090a..6c8765c62d 100755
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -55,6 +55,7 @@
#include "llviewertexturelist.h"
#include "llsidepanelinventory.h"
#include "llfolderview.h"
+#include "llradiogroup.h"
const std::string FILTERS_FILENAME("filters.xml");
@@ -82,6 +83,7 @@ public:
void updateElementsFromFilter();
BOOL getCheckShowEmpty();
BOOL getCheckSinceLogoff();
+ U32 getDateSearchDirection();
static void onTimeAgo(LLUICtrl*, void *);
static void onCloseBtn(void* user_data);
@@ -700,6 +702,30 @@ void LLFloaterInventoryFinder::onTimeAgo(LLUICtrl *ctrl, void *user_data)
if ( self->mSpinSinceDays->get() || self->mSpinSinceHours->get() )
{
self->getChild<LLUICtrl>("check_since_logoff")->setValue(false);
+
+ U32 days = (U32)self->mSpinSinceDays->get();
+ U32 hours = (U32)self->mSpinSinceHours->get();
+ if (hours >= 24)
+ {
+ // Try to handle both cases of spinner clicking and text input in a sensible fashion as best as possible.
+ // There is no way to tell if someone has clicked the spinner to get to 24 or input 24 manually, so in
+ // this case add to days. Any value > 24 means they have input the hours manually, so do not add to the
+ // current day value.
+ if (24 == hours) // Got to 24 via spinner clicking or text input of 24
+ {
+ days = days + hours / 24;
+ }
+ else // Text input, so do not add to days
+ {
+ days = hours / 24;
+ }
+ hours = (U32)hours % 24;
+ self->mSpinSinceHours->setFocus(false);
+ self->mSpinSinceDays->setFocus(false);
+ self->mSpinSinceDays->set((F32)days);
+ self->mSpinSinceHours->set((F32)hours);
+ self->mSpinSinceHours->setFocus(true);
+ }
}
}
@@ -719,6 +745,7 @@ void LLFloaterInventoryFinder::updateElementsFromFilter()
std::string filter_string = mFilter->getFilterSubString();
LLInventoryFilter::EFolderShow show_folders = mFilter->getShowFolderState();
U32 hours = mFilter->getHoursAgo();
+ U32 date_search_direction = mFilter->getDateSearchDirection();
// update the ui elements
setTitle(mFilter->getName());
@@ -740,6 +767,7 @@ void LLFloaterInventoryFinder::updateElementsFromFilter()
getChild<LLUICtrl>("check_since_logoff")->setValue(mFilter->isSinceLogoff());
mSpinSinceHours->set((F32)(hours % 24));
mSpinSinceDays->set((F32)(hours / 24));
+ getChild<LLRadioGroup>("date_search_direction")->setSelectedIndex(date_search_direction);
}
void LLFloaterInventoryFinder::draw()
@@ -840,17 +868,23 @@ void LLFloaterInventoryFinder::draw()
}
U32 days = (U32)mSpinSinceDays->get();
U32 hours = (U32)mSpinSinceHours->get();
- if (hours > 24)
+ if (hours >= 24)
{
- days += hours / 24;
+ days = hours / 24;
hours = (U32)hours % 24;
+ // A UI element that has focus will not display a new value set to it
+ mSpinSinceHours->setFocus(false);
+ mSpinSinceDays->setFocus(false);
mSpinSinceDays->set((F32)days);
mSpinSinceHours->set((F32)hours);
+ mSpinSinceHours->setFocus(true);
}
hours += days * 24;
+
mPanelMainInventory->getPanel()->setHoursAgo(hours);
mPanelMainInventory->getPanel()->setSinceLogoff(getCheckSinceLogoff());
mPanelMainInventory->setFilterTextFromFilter();
+ mPanelMainInventory->getPanel()->setDateSearchDirection(getDateSearchDirection());
LLPanel::draw();
}
@@ -865,6 +899,11 @@ BOOL LLFloaterInventoryFinder::getCheckSinceLogoff()
return getChild<LLUICtrl>("check_since_logoff")->getValue();
}
+U32 LLFloaterInventoryFinder::getDateSearchDirection()
+{
+ return getChild<LLRadioGroup>("date_search_direction")->getSelectedIndex();
+}
+
void LLFloaterInventoryFinder::onCloseBtn(void* user_data)
{
LLFloaterInventoryFinder* finderp = (LLFloaterInventoryFinder*)user_data;
diff --git a/indra/newview/llpanelsnapshot.cpp b/indra/newview/llpanelsnapshot.cpp
index 5924448671..56569e3207 100755
--- a/indra/newview/llpanelsnapshot.cpp
+++ b/indra/newview/llpanelsnapshot.cpp
@@ -65,8 +65,6 @@ void LLPanelSnapshot::onOpen(const LLSD& key)
{
LLFloaterSnapshot::getInstance()->notify(LLSD().with("image-format-change", true));
}
-
- updateCustomResControls();
}
LLFloaterSnapshot::ESnapshotFormat LLPanelSnapshot::getImageFormat() const
@@ -77,11 +75,6 @@ LLFloaterSnapshot::ESnapshotFormat LLPanelSnapshot::getImageFormat() const
void LLPanelSnapshot::enableControls(BOOL enable)
{
setCtrlsEnabled(enable);
- if (enable)
- {
- // Make sure only relevant controls are enabled/shown.
- updateCustomResControls();
- }
}
LLSpinCtrl* LLPanelSnapshot::getWidthSpinner()
@@ -121,16 +114,6 @@ LLSideTrayPanelContainer* LLPanelSnapshot::getParentContainer()
return parent;
}
-// virtual
-void LLPanelSnapshot::updateCustomResControls()
-{
- // Only show width/height spinners and the aspect ratio checkbox
- // when a custom resolution is chosen.
- LLComboBox* combo = getChild<LLComboBox>(getImageSizeComboName());
- const bool show = combo->getFirstSelectedIndex() == (combo->getItemCount() - 1);
- getChild<LLUICtrl>(getImageSizePanelName())->setVisible(show);
-}
-
void LLPanelSnapshot::updateImageQualityLevel()
{
LLSliderCtrl* quality_slider = getChild<LLSliderCtrl>("image_quality_slider");
@@ -188,8 +171,6 @@ void LLPanelSnapshot::onCustomResolutionCommit()
void LLPanelSnapshot::onResolutionComboCommit(LLUICtrl* ctrl)
{
- updateCustomResControls();
-
LLSD info;
info["combo-res-change"]["control-name"] = ctrl->getName();
LLFloaterSnapshot::getInstance()->notify(info);
diff --git a/indra/newview/llpanelsnapshot.h b/indra/newview/llpanelsnapshot.h
index f3274cf594..42ad798d60 100755
--- a/indra/newview/llpanelsnapshot.h
+++ b/indra/newview/llpanelsnapshot.h
@@ -57,7 +57,6 @@ public:
protected:
LLSideTrayPanelContainer* getParentContainer();
- virtual void updateCustomResControls();
void updateImageQualityLevel();
void goBack(); ///< Switch to the default (Snapshot Options) panel
void cancel();
diff --git a/indra/newview/llpanelsnapshotinventory.cpp b/indra/newview/llpanelsnapshotinventory.cpp
index 47e46a968f..c8a201a5c8 100755
--- a/indra/newview/llpanelsnapshotinventory.cpp
+++ b/indra/newview/llpanelsnapshotinventory.cpp
@@ -49,7 +49,6 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
private:
- /*virtual*/ void updateCustomResControls(); ///< Show/hide custom resolution controls (spinners and checkbox)
/*virtual*/ std::string getWidthSpinnerName() const { return "inventory_snapshot_width"; }
/*virtual*/ std::string getHeightSpinnerName() const { return "inventory_snapshot_height"; }
/*virtual*/ std::string getAspectRatioCBName() const { return "inventory_keep_aspect_check"; }
@@ -73,7 +72,6 @@ BOOL LLPanelSnapshotInventory::postBuild()
{
getChild<LLSpinCtrl>(getWidthSpinnerName())->setAllowEdit(FALSE);
getChild<LLSpinCtrl>(getHeightSpinnerName())->setAllowEdit(FALSE);
- getChild<LLUICtrl>(getAspectRatioCBName())->setVisible(FALSE); // we don't keep aspect ratio for inventory textures
return LLPanelSnapshot::postBuild();
}
@@ -85,17 +83,6 @@ void LLPanelSnapshotInventory::onOpen(const LLSD& key)
}
// virtual
-void LLPanelSnapshotInventory::updateCustomResControls()
-{
- LLComboBox* combo = getChild<LLComboBox>(getImageSizeComboName());
- S32 selected_idx = combo->getFirstSelectedIndex();
- const bool show = selected_idx == (combo->getItemCount() - 1); // Custom selected
-
- getChild<LLUICtrl>(getWidthSpinnerName())->setVisible(show);
- getChild<LLUICtrl>(getHeightSpinnerName())->setVisible(show);
-}
-
-// virtual
void LLPanelSnapshotInventory::updateControls(const LLSD& info)
{
const bool have_snapshot = info.has("have-snapshot") ? info["have-snapshot"].asBoolean() : true;
diff --git a/indra/newview/llpanelsnapshotoptions.cpp b/indra/newview/llpanelsnapshotoptions.cpp
index 743ef3e329..0fc9ceec83 100755
--- a/indra/newview/llpanelsnapshotoptions.cpp
+++ b/indra/newview/llpanelsnapshotoptions.cpp
@@ -72,7 +72,9 @@ LLPanelSnapshotOptions::LLPanelSnapshotOptions()
mCommitCallbackRegistrar.add("Snapshot.SaveToEmail", boost::bind(&LLPanelSnapshotOptions::onSaveToEmail, this));
mCommitCallbackRegistrar.add("Snapshot.SaveToInventory", boost::bind(&LLPanelSnapshotOptions::onSaveToInventory, this));
mCommitCallbackRegistrar.add("Snapshot.SaveToComputer", boost::bind(&LLPanelSnapshotOptions::onSaveToComputer, this));
-
+ mCommitCallbackRegistrar.add("Snapshot.SendToFacebook", boost::bind(&LLPanelSnapshotOptions::onSendToFacebook, this));
+ mCommitCallbackRegistrar.add("Snapshot.SendToTwitter", boost::bind(&LLPanelSnapshotOptions::onSendToTwitter, this));
+ mCommitCallbackRegistrar.add("Snapshot.SendToFlickr", boost::bind(&LLPanelSnapshotOptions::onSendToFlickr, this));
LLGlobalEconomy::Singleton::getInstance()->addObserver(this);
}
@@ -84,13 +86,6 @@ LLPanelSnapshotOptions::~LLPanelSnapshotOptions()
// virtual
BOOL LLPanelSnapshotOptions::postBuild()
{
- LLTextBox* sendToFacebookTextBox = getChild<LLTextBox>("send_to_facebook_textbox");
- sendToFacebookTextBox->setURLClickedCallback(boost::bind(&LLPanelSnapshotOptions::onSendToFacebook, this));
- LLTextBox* sendToTwitterTextBox = getChild<LLTextBox>("send_to_twitter_textbox");
- sendToTwitterTextBox->setURLClickedCallback(boost::bind(&LLPanelSnapshotOptions::onSendToTwitter, this));
- LLTextBox* sendToFlickrTextBox = getChild<LLTextBox>("send_to_flickr_textbox");
- sendToFlickrTextBox->setURLClickedCallback(boost::bind(&LLPanelSnapshotOptions::onSendToFlickr, this));
-
return LLPanel::postBuild();
}
diff --git a/indra/newview/llpanelsnapshotpostcard.cpp b/indra/newview/llpanelsnapshotpostcard.cpp
index 95c443b826..8e37b1418c 100755
--- a/indra/newview/llpanelsnapshotpostcard.cpp
+++ b/indra/newview/llpanelsnapshotpostcard.cpp
@@ -72,7 +72,6 @@ private:
void onMsgFormFocusRecieved();
void onFormatComboCommit(LLUICtrl* ctrl);
void onQualitySliderCommit(LLUICtrl* ctrl);
- void onTabButtonPress(S32 btn_idx);
void onSend();
bool mHasFirstMsgFocus;
@@ -86,8 +85,6 @@ LLPanelSnapshotPostcard::LLPanelSnapshotPostcard()
{
mCommitCallbackRegistrar.add("Postcard.Send", boost::bind(&LLPanelSnapshotPostcard::onSend, this));
mCommitCallbackRegistrar.add("Postcard.Cancel", boost::bind(&LLPanelSnapshotPostcard::cancel, this));
- mCommitCallbackRegistrar.add("Postcard.Message", boost::bind(&LLPanelSnapshotPostcard::onTabButtonPress, this, 0));
- mCommitCallbackRegistrar.add("Postcard.Settings", boost::bind(&LLPanelSnapshotPostcard::onTabButtonPress, this, 1));
}
@@ -108,8 +105,6 @@ BOOL LLPanelSnapshotPostcard::postBuild()
getChild<LLUICtrl>("image_quality_slider")->setCommitCallback(boost::bind(&LLPanelSnapshotPostcard::onQualitySliderCommit, this, _1));
- getChild<LLButton>("message_btn")->setToggleState(TRUE);
-
return LLPanelSnapshot::postBuild();
}
@@ -218,27 +213,6 @@ void LLPanelSnapshotPostcard::onQualitySliderCommit(LLUICtrl* ctrl)
LLFloaterSnapshot::getInstance()->notify(info); // updates the "SnapshotQuality" setting
}
-void LLPanelSnapshotPostcard::onTabButtonPress(S32 btn_idx)
-{
- LLButton* buttons[2] = {
- getChild<LLButton>("message_btn"),
- getChild<LLButton>("settings_btn"),
- };
-
- // Switch between Message and Settings tabs.
- LLButton* clicked_btn = buttons[btn_idx];
- LLButton* other_btn = buttons[!btn_idx];
- LLSideTrayPanelContainer* container =
- getChild<LLSideTrayPanelContainer>("postcard_panel_container");
-
- container->selectTab(clicked_btn->getToggleState() ? btn_idx : !btn_idx);
- //clicked_btn->setEnabled(FALSE);
- other_btn->toggleState();
- //other_btn->setEnabled(TRUE);
-
- LL_DEBUGS() << "Button #" << btn_idx << " (" << clicked_btn->getName() << ") clicked" << LL_ENDL;
-}
-
void LLPanelSnapshotPostcard::onSend()
{
// Validate input.
diff --git a/indra/newview/llsnapshotlivepreview.cpp b/indra/newview/llsnapshotlivepreview.cpp
index f61db77169..1aa7041175 100644
--- a/indra/newview/llsnapshotlivepreview.cpp
+++ b/indra/newview/llsnapshotlivepreview.cpp
@@ -151,7 +151,7 @@ F32 LLSnapshotLivePreview::getImageAspect()
void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail, F32 delay)
{
- lldebugs << "updateSnapshot: mSnapshotUpToDate = " << getSnapshotUpToDate() << llendl;
+ LL_DEBUGS() << "updateSnapshot: mSnapshotUpToDate = " << getSnapshotUpToDate() << LL_ENDL;
// Update snapshot if requested.
if (new_snapshot)
@@ -195,6 +195,8 @@ void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail
mSnapshotDelayTimer.start();
mSnapshotDelayTimer.setTimerExpirySec(delay);
+ mPosTakenGlobal = gAgentCamera.getCameraPositionGlobal();
+
// Tell the floater container that the snapshot is in the process of updating itself
if (mViewContainer)
{
@@ -594,7 +596,7 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
}
else
{
- llwarns << "Couldn't find a path to the following filter : " << getFilter() << llendl;
+ LL_WARNS() << "Couldn't find a path to the following filter : " << getFilter() << LL_ENDL;
}
}
// Scale to a power of 2 so it can be mapped to a texture
@@ -642,7 +644,7 @@ LLViewerTexture* LLSnapshotLivePreview::getBigThumbnailImage()
}
else
{
- llwarns << "Couldn't find a path to the following filter : " << getFilter() << llendl;
+ LL_WARNS() << "Couldn't find a path to the following filter : " << getFilter() << LL_ENDL;
}
}
// Scale to a power of 2 so it can be mapped to a texture
@@ -695,7 +697,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
// time to produce a snapshot
if(!previewp->getSnapshotUpToDate())
{
- lldebugs << "producing snapshot" << llendl;
+ LL_DEBUGS() << "producing snapshot" << LL_ENDL;
if (!previewp->mPreviewImage)
{
previewp->mPreviewImage = new LLImageRaw;
@@ -760,7 +762,6 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
curr_preview_image->setFilteringOption(previewp->getSnapshotType() == SNAPSHOT_TEXTURE ? LLTexUnit::TFO_ANISOTROPIC : LLTexUnit::TFO_POINT);
curr_preview_image->setAddressMode(LLTexUnit::TAM_CLAMP);
- previewp->mPosTakenGlobal = gAgentCamera.getCameraPositionGlobal();
previewp->mShineCountdown = 4; // wait a few frames to avoid animation glitch due to readback this frame
}
}
@@ -775,7 +776,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
previewp->setVisible(gSavedSettings.getBOOL("UseFreezeFrame") && previewp->mAllowFullScreenPreview); // only show fullscreen preview when in freeze frame mode
previewp->mSnapshotDelayTimer.stop();
previewp->mSnapshotActive = FALSE;
- lldebugs << "done creating snapshot" << llendl;
+ LL_DEBUGS() << "done creating snapshot" << LL_ENDL;
}
if (!previewp->getThumbnailUpToDate())
@@ -910,13 +911,13 @@ LLPointer<LLImageFormatted> LLSnapshotLivePreview::getFormattedImage()
}
else
{
- llwarns << "Couldn't find a path to the following filter : " << getFilter() << llendl;
+ LL_WARNS() << "Couldn't find a path to the following filter : " << getFilter() << LL_ENDL;
}
}
// Create the new formatted image of the appropriate format.
LLFloaterSnapshot::ESnapshotFormat format = getSnapshotFormat();
- lldebugs << "Encoding new image of format " << format << llendl;
+ LL_DEBUGS() << "Encoding new image of format " << format << LL_ENDL;
switch (format)
{
@@ -975,6 +976,21 @@ void LLSnapshotLivePreview::saveTexture()
mPreviewImage->getHeight(),
mPreviewImage->getComponents());
+ // Apply the filter to mPreviewImage
+ if (getFilter() != "")
+ {
+ std::string filter_path = LLImageFiltersManager::getInstance()->getFilterPath(getFilter());
+ if (filter_path != "")
+ {
+ LLImageFilter filter(filter_path);
+ filter.executeFilter(scaled);
+ }
+ else
+ {
+ LL_WARNS() << "Couldn't find a path to the following filter : " << getFilter() << LL_ENDL;
+ }
+ }
+
scaled->biasedScaleToPowerOfTwo(MAX_TEXTURE_SIZE);
LL_DEBUGS() << "scaled texture to " << scaled->getWidth() << "x" << scaled->getHeight() << LL_ENDL;
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index b1194dcd1b..a763d42a8d 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -47,23 +47,22 @@ public:
LL_DEBUGS("SyntaxLSL") << "Instantiating with file saving to: '" << filespec << "'" << LL_ENDL;
}
- virtual void errorWithContent(U32 status,
- const std::string& reason,
- const LLSD& content)
+ /* virtual */ void httpFailure()
{
- LL_WARNS("SyntaxLSL") << "failed to fetch syntax file [status:" << status << "]: " << content << LL_ENDL;
+ LL_WARNS("SyntaxLSL") << "failed to fetch syntax file [status:" << getStatus() << "]: " << getContent() << LL_ENDL;
}
- virtual void result(const LLSD& content_ref)
+ /* virtual */ void httpSuccess()
{
// Continue only if a valid LLSD object was returned.
- if (content_ref.isMap())
+ const LLSD& content = getContent();
+ if (content.isMap())
{
- if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
+ if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content))
{
- LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
+ LLSyntaxIdLSL::getInstance()->setKeywordsXml(content);
- cacheFile(content_ref);
+ cacheFile(content);
LLSyntaxIdLSL::getInstance()->handleFileFetched(mFileSpec);
}
else
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 9ea46cab68..d9a874be49 100755
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -4,7 +4,7 @@
*
* $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * Copyright (C) 2012-2013, Linden Research, Inc.
+ * Copyright (C) 2012-2014, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -244,6 +244,13 @@ LLTrace::EventStatHandle<F64Milliseconds > LLTextureFetch::sCacheReadLatency("te
static const S32 HTTP_REQUESTS_IN_QUEUE_HIGH_WATER = 40; // Maximum requests to have active in HTTP
static const S32 HTTP_REQUESTS_IN_QUEUE_LOW_WATER = 20; // Active level at which to refill
+// BUG-3323/SH-4375
+// *NOTE: This is a heuristic value. Texture fetches have a habit of using a
+// value of 32MB to indicate 'get the rest of the image'. Certain ISPs and
+// network equipment get confused when they see this in a Range: header. So,
+// if the request end is beyond this value, we issue an open-ended Range:
+// request (e.g. 'Range: <start>-') which seems to fix the problem.
+static const S32 HTTP_REQUESTS_RANGE_END_MAX = 20000000;
//////////////////////////////////////////////////////////////////////////////
@@ -266,6 +273,9 @@ static const char* e_state_name[] =
"DONE"
};
+// Log scope
+static const char * const LOG_TXT = "Texture";
+
class LLTextureFetchWorker : public LLWorkerClass, public LLCore::HttpHandler
{
@@ -926,7 +936,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
calcWorkPriority();
mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL;
-// LL_INFOS() << "Create: " << mID << " mHost:" << host << " Discard=" << discard << LL_ENDL;
+// LL_INFOS(LOG_TXT) << "Create: " << mID << " mHost:" << host << " Discard=" << discard << LL_ENDL;
if (!mFetcher->mDebugPause)
{
U32 work_priority = mWorkPriority | LLWorkerThread::PRIORITY_HIGH;
@@ -937,7 +947,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
LLTextureFetchWorker::~LLTextureFetchWorker()
{
-// LL_INFOS() << "Destroy: " << mID
+// LL_INFOS(LOG_TXT) << "Destroy: " << mID
// << " Decoded=" << mDecodedDiscard
// << " Requested=" << mRequestedDiscard
// << " Desired=" << mDesiredDiscard << LL_ENDL;
@@ -1001,7 +1011,7 @@ void LLTextureFetchWorker::setupPacketData()
mFirstPacket = (data_size - FIRST_PACKET_SIZE) / MAX_IMG_PACKET_SIZE + 1;
if (FIRST_PACKET_SIZE + (mFirstPacket-1) * MAX_IMG_PACKET_SIZE != data_size)
{
- LL_WARNS() << "Bad CACHED TEXTURE size: " << data_size << " removing." << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Bad CACHED TEXTURE size: " << data_size << " removing." << LL_ENDL;
removeFromCache();
resetFormattedData();
clearPackets();
@@ -1124,14 +1134,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (mState == INIT || mState == LOAD_FROM_NETWORK || mState == LOAD_FROM_SIMULATOR)
{
- LL_DEBUGS("Texture") << mID << " abort: mImagePriority < F_ALMOST_ZERO" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " abort: mImagePriority < F_ALMOST_ZERO" << LL_ENDL;
return true; // abort
}
}
if(mState > CACHE_POST && !mCanUseNET && !mCanUseHTTP)
{
//nowhere to get data, abort.
- LL_WARNS("Texture") << mID << " abort, nowhere to get data" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " abort, nowhere to get data" << LL_ENDL;
return true ;
}
@@ -1177,8 +1187,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
setState(LOAD_FROM_TEXTURE_CACHE);
mInCache = FALSE;
mDesiredSize = llmax(mDesiredSize, TEXTURE_CACHE_ENTRY_SIZE); // min desired size is TEXTURE_CACHE_ENTRY_SIZE
- LL_DEBUGS("Texture") << mID << ": Priority: " << llformat("%8.0f",mImagePriority)
- << " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Priority: " << llformat("%8.0f",mImagePriority)
+ << " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
// fall through
}
@@ -1246,7 +1256,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
//
//This should never happen
//
- LL_DEBUGS("Texture") << mID << " this should never happen" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " this should never happen" << LL_ENDL;
return false;
}
}
@@ -1267,15 +1277,15 @@ bool LLTextureFetchWorker::doWork(S32 param)
mLoadedDiscard = mDesiredDiscard;
if (mLoadedDiscard < 0)
{
- LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
- << ", should be >=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << LL_ENDL;
}
setState(DECODE_IMAGE);
mInCache = TRUE;
mWriteToCacheState = NOT_WRITE ;
- LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize()
- << " Size: " << llformat("%dx%d",mFormattedImage->getWidth(),mFormattedImage->getHeight())
- << " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize()
+ << " Size: " << llformat("%dx%d",mFormattedImage->getWidth(),mFormattedImage->getHeight())
+ << " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
record(LLTextureFetch::sCacheHitRate, LLUnits::Ratio::fromValue(1));
}
else
@@ -1283,13 +1293,13 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mUrl.compare(0, 7, "file://") == 0)
{
// failed to load local file, we're done.
- LL_WARNS("Texture") << mID << ": abort, failed to load local file " << mUrl << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << ": abort, failed to load local file " << mUrl << LL_ENDL;
return true;
}
// need more data
else
{
- LL_DEBUGS("Texture") << mID << ": Not in Cache" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Not in Cache" << LL_ENDL;
setState(LOAD_FROM_NETWORK);
}
@@ -1306,11 +1316,11 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (wait_seconds <= 0.0)
{
- LL_INFOS() << mID << " retrying now" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << mID << " retrying now" << LL_ENDL;
}
else
{
- //LL_INFOS() << mID << " waiting to retry for " << wait_seconds << " seconds" << LL_ENDL;
+ //LL_INFOS(LOG_TXT) << mID << " waiting to retry for " << wait_seconds << " seconds" << LL_ENDL;
return false;
}
}
@@ -1333,20 +1343,23 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (mFTType != FTT_DEFAULT)
{
- LL_WARNS() << "trying to seek a non-default texture on the sim. Bad!" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "trying to seek a non-default texture on the sim. Bad!" << LL_ENDL;
}
setUrl(http_url + "/?texture_id=" + mID.asString().c_str());
+ LL_DEBUGS("Texture") << "Texture URL " << mUrl << LL_ENDL;
mWriteToCacheState = CAN_WRITE ; //because this texture has a fixed texture id.
}
else
{
mCanUseHTTP = false ;
+ LL_DEBUGS("Texture") << "Texture not available via HTTP: no URL " << mUrl << LL_ENDL;
}
}
else
{
// This will happen if not logged in or if a region deoes not have HTTP Texture enabled
- //LL_WARNS() << "Region not found for host: " << mHost << LL_ENDL;
+ //LL_WARNS(LOG_TXT) << "Region not found for host: " << mHost << LL_ENDL;
+ LL_DEBUGS("Texture") << "Texture not available via HTTP: no region " << mUrl << LL_ENDL;
mCanUseHTTP = false;
}
}
@@ -1400,20 +1413,20 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
if (processSimulatorPackets())
{
- LL_DEBUGS("Texture") << mID << ": Loaded from Sim. Bytes: " << mFormattedImage->getDataSize() << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Loaded from Sim. Bytes: " << mFormattedImage->getDataSize() << LL_ENDL;
mFetcher->removeFromNetworkQueue(this, false);
if (mFormattedImage.isNull() || !mFormattedImage->getDataSize())
{
// processSimulatorPackets() failed
-// LL_WARNS() << "processSimulatorPackets() failed to load buffer" << LL_ENDL;
- LL_WARNS("Texture") << mID << " processSimulatorPackets() failed to load buffer" << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "processSimulatorPackets() failed to load buffer" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " processSimulatorPackets() failed to load buffer" << LL_ENDL;
return true; // failed
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
if (mLoadedDiscard < 0)
{
- LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
- << ", should be >=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << LL_ENDL;
}
setState(DECODE_IMAGE);
mWriteToCacheState = SHOULD_WRITE;
@@ -1463,7 +1476,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (! mCanUseHTTP)
{
releaseHttpSemaphore();
- LL_WARNS("Texture") << mID << " abort: SEND_HTTP_REQ but !mCanUseHTTP" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " abort: SEND_HTTP_REQ but !mCanUseHTTP" << LL_ENDL;
return true; // abort
}
@@ -1482,8 +1495,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
if (mLoadedDiscard < 0)
{
- LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
- << ", should be >=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << LL_ENDL;
}
setState(DECODE_IMAGE);
releaseHttpSemaphore();
@@ -1492,7 +1505,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
else
{
releaseHttpSemaphore();
- LL_WARNS("Texture") << mID << " SEND_HTTP_REQ abort: cur_size " << cur_size << " <=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " SEND_HTTP_REQ abort: cur_size " << cur_size << " <=0" << LL_ENDL;
return true; // abort.
}
}
@@ -1523,10 +1536,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
mLoaded = FALSE;
mGetStatus = LLCore::HttpStatus();
mGetReason.clear();
- LL_DEBUGS("Texture") << "HTTP GET: " << mID << " Offset: " << mRequestedOffset
- << " Bytes: " << mRequestedSize
- << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << mFetcher->mMaxBandwidth
- << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "HTTP GET: " << mID << " Offset: " << mRequestedOffset
+ << " Bytes: " << mRequestedSize
+ << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << mFetcher->mMaxBandwidth
+ << LL_ENDL;
// Will call callbackHttpGet when curl request completes
// Only server bake images use the returned headers currently, for getting retry-after field.
@@ -1535,14 +1548,16 @@ bool LLTextureFetchWorker::doWork(S32 param)
mWorkPriority,
mUrl,
mRequestedOffset,
- mRequestedSize,
+ (mRequestedOffset + mRequestedSize) > HTTP_REQUESTS_RANGE_END_MAX
+ ? 0
+ : mRequestedSize,
options,
mFetcher->mHttpHeaders,
this);
}
if (LLCORE_HTTP_HANDLE_INVALID == mHttpHandle)
{
- LL_WARNS() << "HTTP GET request failed for " << mID << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "HTTP GET request failed for " << mID << LL_ENDL;
resetFormattedData();
releaseHttpSemaphore();
return true; // failed
@@ -1570,7 +1585,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if (mFTType != FTT_MAP_TILE)
{
- LL_WARNS() << "Texture missing from server (404): " << mUrl << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Texture missing from server (404): " << mUrl << LL_ENDL;
}
if(mWriteToCacheState == NOT_WRITE) //map tiles or server bakes
@@ -1579,7 +1594,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
releaseHttpSemaphore();
if (mFTType != FTT_MAP_TILE)
{
- LL_WARNS("Texture") << mID << " abort: WAIT_HTTP_REQ not found" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " abort: WAIT_HTTP_REQ not found" << LL_ENDL;
}
return true;
}
@@ -1597,11 +1612,11 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
else if (http_service_unavail == mGetStatus)
{
- LL_INFOS_ONCE("Texture") << "Texture server busy (503): " << mUrl << LL_ENDL;
- LL_INFOS() << "503: HTTP GET failed for: " << mUrl
- << " Status: " << mGetStatus.toHex()
- << " Reason: '" << mGetReason << "'"
- << LL_ENDL;
+ LL_INFOS_ONCE(LOG_TXT) << "Texture server busy (503): " << mUrl << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "503: HTTP GET failed for: " << mUrl
+ << " Status: " << mGetStatus.toHex()
+ << " Reason: '" << mGetReason << "'"
+ << LL_ENDL;
}
else if (http_not_sat == mGetStatus)
{
@@ -1610,10 +1625,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
else
{
- LL_INFOS() << "HTTP GET failed for: " << mUrl
- << " Status: " << mGetStatus.toTerseString()
- << " Reason: '" << mGetReason << "'"
- << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "HTTP GET failed for: " << mUrl
+ << " Status: " << mGetStatus.toTerseString()
+ << " Reason: '" << mGetReason << "'"
+ << LL_ENDL;
}
if (mFTType != FTT_SERVER_BAKE)
@@ -1627,8 +1642,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
if (mLoadedDiscard < 0)
{
- LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
- << ", should be >=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << LL_ENDL;
}
setState(DECODE_IMAGE);
releaseHttpSemaphore();
@@ -1639,7 +1654,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
resetFormattedData();
setState(DONE);
releaseHttpSemaphore();
- LL_WARNS("Texture") << mID << " abort: fail harder" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " abort: fail harder" << LL_ENDL;
return true; // failed
}
@@ -1663,7 +1678,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
// abort.
setState(DONE);
- LL_WARNS("Texture") << mID << " abort: no data received" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " abort: no data received" << LL_ENDL;
releaseHttpSemaphore();
return true;
}
@@ -1679,8 +1694,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
// Get back into alignment.
if (mHttpReplyOffset > cur_size)
{
- LL_WARNS("Texture") << "Partial HTTP response produces break in image data for texture "
- << mID << ". Aborting load." << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Partial HTTP response produces break in image data for texture "
+ << mID << ". Aborting load." << LL_ENDL;
setState(DONE);
releaseHttpSemaphore();
return true;
@@ -1731,8 +1746,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
mLoadedDiscard = mRequestedDiscard;
if (mLoadedDiscard < 0)
{
- LL_WARNS("Texture") << mID << " mLoadedDiscard is " << mLoadedDiscard
- << ", should be >=0" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " mLoadedDiscard is " << mLoadedDiscard
+ << ", should be >=0" << LL_ENDL;
}
setState(DECODE_IMAGE);
if (mWriteToCacheState != NOT_WRITE)
@@ -1773,26 +1788,26 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
// We aborted, don't decode
setState(DONE);
- LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: desired discard " << mDesiredDiscard << "<0" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " DECODE_IMAGE abort: desired discard " << mDesiredDiscard << "<0" << LL_ENDL;
return true;
}
if (mFormattedImage->getDataSize() <= 0)
{
- LL_WARNS() << "Decode entered with invalid mFormattedImage. ID = " << mID << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Decode entered with invalid mFormattedImage. ID = " << mID << LL_ENDL;
//abort, don't decode
setState(DONE);
- LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: (mFormattedImage->getDataSize() <= 0)" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " DECODE_IMAGE abort: (mFormattedImage->getDataSize() <= 0)" << LL_ENDL;
return true;
}
if (mLoadedDiscard < 0)
{
- LL_WARNS() << "Decode entered with invalid mLoadedDiscard. ID = " << mID << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Decode entered with invalid mLoadedDiscard. ID = " << mID << LL_ENDL;
//abort, don't decode
setState(DONE);
- LL_DEBUGS("Texture") << mID << " DECODE_IMAGE abort: mLoadedDiscard < 0" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " DECODE_IMAGE abort: mLoadedDiscard < 0" << LL_ENDL;
return true;
}
@@ -1803,8 +1818,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
U32 image_priority = LLWorkerThread::PRIORITY_NORMAL | mWorkPriority;
mDecoded = FALSE;
setState(DECODE_IMAGE_UPDATE);
- LL_DEBUGS("Texture") << mID << ": Decoding. Bytes: " << mFormattedImage->getDataSize() << " Discard: " << discard
- << " All Data: " << mHaveAllData << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Decoding. Bytes: " << mFormattedImage->getDataSize() << " Discard: " << discard
+ << " All Data: " << mHaveAllData << LL_ENDL;
mDecodeHandle = mFetcher->mImageDecodeThread->decodeImage(mFormattedImage, image_priority, discard, mNeedsAux,
new DecodeResponder(mFetcher, mID, this));
// fall though
@@ -1821,11 +1836,11 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mDecodedDiscard < 0)
{
- LL_DEBUGS("Texture") << mID << ": Failed to Decode." << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Failed to Decode." << LL_ENDL;
if (mCachedSize > 0 && !mInLocalCache && mRetryAttempt == 0)
{
// Cache file should be deleted, try again
- LL_WARNS() << mID << ": Decode of cached file failed (removed), retrying" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << ": Decode of cached file failed (removed), retrying" << LL_ENDL;
llassert_always(mDecodeHandle == 0);
mFormattedImage = NULL;
++mRetryAttempt;
@@ -1835,15 +1850,15 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
else
{
-// LL_WARNS() << "UNABLE TO LOAD TEXTURE: " << mID << " RETRIES: " << mRetryAttempt << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "UNABLE TO LOAD TEXTURE: " << mID << " RETRIES: " << mRetryAttempt << LL_ENDL;
setState(DONE); // failed
}
}
else
{
llassert_always(mRawImage.notNull());
- LL_DEBUGS("Texture") << mID << ": Decoded. Discard: " << mDecodedDiscard
- << " Raw Image: " << llformat("%dx%d",mRawImage->getWidth(),mRawImage->getHeight()) << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Decoded. Discard: " << mDecodedDiscard
+ << " Raw Image: " << llformat("%dx%d",mRawImage->getWidth(),mRawImage->getHeight()) << LL_ENDL;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
setState(WRITE_TO_CACHE);
}
@@ -1915,9 +1930,9 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
// More data was requested, return to INIT
setState(INIT);
- LL_DEBUGS("Texture") << mID << " more data requested, returning to INIT: "
- << " mDecodedDiscard " << mDecodedDiscard << ">= 0 && mDesiredDiscard " << mDesiredDiscard
- << "<" << " mDecodedDiscard " << mDecodedDiscard << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << " more data requested, returning to INIT: "
+ << " mDecodedDiscard " << mDecodedDiscard << ">= 0 && mDesiredDiscard " << mDesiredDiscard
+ << "<" << " mDecodedDiscard " << mDecodedDiscard << LL_ENDL;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false;
}
@@ -1957,8 +1972,8 @@ void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpRe
F32 rate = fake_failure_rate;
if (mFTType == FTT_SERVER_BAKE && (fake_failure_rate > 0.0) && (rand_val < fake_failure_rate))
{
- LL_WARNS() << mID << " for debugging, setting fake failure status for texture " << mID
- << " (rand was " << rand_val << "/" << rate << ")" << LL_ENDL;
+ LL_WARNS(LOG_TXT) << mID << " for debugging, setting fake failure status for texture " << mID
+ << " (rand was " << rand_val << "/" << rate << ")" << LL_ENDL;
response->setStatus(LLCore::HttpStatus(503));
}
bool success = true;
@@ -1966,12 +1981,12 @@ void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpRe
LLCore::HttpStatus status(response->getStatus());
if (!status && (mFTType == FTT_SERVER_BAKE))
{
- LL_INFOS() << mID << " state " << e_state_name[mState] << LL_ENDL;
+ LL_INFOS(LOG_TXT) << mID << " state " << e_state_name[mState] << LL_ENDL;
mFetchRetryPolicy.onFailure(response);
F32 retry_after;
if (mFetchRetryPolicy.shouldRetry(retry_after))
{
- LL_INFOS() << mID << " will retry after " << retry_after << " seconds, resetting state to LOAD_FROM_NETWORK" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << mID << " will retry after " << retry_after << " seconds, resetting state to LOAD_FROM_NETWORK" << LL_ENDL;
mFetcher->removeFromHTTPQueue(mID, S32Bytes(0));
std::string reason(status.toString());
setGetStatus(status, reason);
@@ -1981,7 +1996,7 @@ void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpRe
}
else
{
- LL_INFOS() << mID << " will not retry" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << mID << " will not retry" << LL_ENDL;
}
}
else
@@ -1989,30 +2004,20 @@ void LLTextureFetchWorker::onCompleted(LLCore::HttpHandle handle, LLCore::HttpRe
mFetchRetryPolicy.onSuccess();
}
- LL_DEBUGS("Texture") << "HTTP COMPLETE: " << mID
- << " status: " << status.toTerseString()
- << " '" << status.toString() << "'"
- << LL_ENDL;
-
-// unsigned int offset(0), length(0), full_length(0);
-// response->getRange(&offset, &length, &full_length);
-// LL_WARNS() << "HTTP COMPLETE: " << mID << " handle: " << handle
-// << " status: " << status.toULong() << " '" << status.toString() << "'"
-// << " req offset: " << mRequestedOffset << " req length: " << mRequestedSize
-// << " offset: " << offset << " length: " << length
-// << LL_ENDL;
-
std::string reason(status.toString());
setGetStatus(status, reason);
+ LL_DEBUGS(LOG_TXT) << "HTTP COMPLETE: " << mID
+ << " status: " << status.toTerseString()
+ << " '" << reason << "'"
+ << LL_ENDL;
+
if (! status)
{
success = false;
if (mFTType != FTT_MAP_TILE) // missing map tiles are normal, don't complain about them.
{
- std::string reason(status.toString());
- setGetStatus(status, reason);
- LL_WARNS() << "CURL GET FAILED, status: " << status.toTerseString()
- << " reason: " << reason << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "CURL GET FAILED, status: " << status.toTerseString()
+ << " reason: " << reason << LL_ENDL;
}
}
else
@@ -2223,13 +2228,13 @@ S32 LLTextureFetchWorker::callbackHttpGet(LLCore::HttpResponse * response,
if (mState != WAIT_HTTP_REQ)
{
- LL_WARNS() << "callbackHttpGet for unrequested fetch worker: " << mID
- << " req=" << mSentRequest << " state= " << mState << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "callbackHttpGet for unrequested fetch worker: " << mID
+ << " req=" << mSentRequest << " state= " << mState << LL_ENDL;
return data_size;
}
if (mLoaded)
{
- LL_WARNS() << "Duplicate callback for " << mID.asString() << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Duplicate callback for " << mID.asString() << LL_ENDL;
return data_size ; // ignore duplicate callback
}
if (success)
@@ -2238,7 +2243,7 @@ S32 LLTextureFetchWorker::callbackHttpGet(LLCore::HttpResponse * response,
LLCore::BufferArray * body(response->getBody());
data_size = body ? body->size() : 0;
- LL_DEBUGS("Texture") << "HTTP RECEIVED: " << mID.asString() << " Bytes: " << data_size << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "HTTP RECEIVED: " << mID.asString() << " Bytes: " << data_size << LL_ENDL;
if (data_size > 0)
{
LLViewerStatsRecorder::instance().textureFetch(data_size);
@@ -2278,10 +2283,10 @@ S32 LLTextureFetchWorker::callbackHttpGet(LLCore::HttpResponse * response,
// response body becomes the entire dataset.
if (data_size <= mRequestedOffset)
{
- LL_WARNS("Texture") << "Fetched entire texture " << mID
- << " when it was expected to be marked complete. mImageSize: "
- << mFileSize << " datasize: " << mFormattedImage->getDataSize()
- << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Fetched entire texture " << mID
+ << " when it was expected to be marked complete. mImageSize: "
+ << mFileSize << " datasize: " << mFormattedImage->getDataSize()
+ << LL_ENDL;
}
mHaveAllData = TRUE;
llassert_always(mDecodeHandle == 0);
@@ -2294,7 +2299,7 @@ S32 LLTextureFetchWorker::callbackHttpGet(LLCore::HttpResponse * response,
else if (data_size > mRequestedSize)
{
// *TODO: This shouldn't be happening any more (REALLY don't expect this anymore)
- LL_WARNS() << "data_size = " << data_size << " > requested: " << mRequestedSize << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "data_size = " << data_size << " > requested: " << mRequestedSize << LL_ENDL;
mHaveAllData = TRUE;
llassert_always(mDecodeHandle == 0);
mFormattedImage = NULL; // discard any previous data we had
@@ -2329,7 +2334,7 @@ void LLTextureFetchWorker::callbackCacheRead(bool success, LLImageFormatted* ima
LLMutexLock lock(&mWorkMutex); // +Mw
if (mState != LOAD_FROM_TEXTURE_CACHE)
{
-// LL_WARNS() << "Read callback for " << mID << " with state = " << mState << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Read callback for " << mID << " with state = " << mState << LL_ENDL;
return;
}
if (success)
@@ -2354,7 +2359,7 @@ void LLTextureFetchWorker::callbackCacheWrite(bool success)
LLMutexLock lock(&mWorkMutex); // +Mw
if (mState != WAIT_ON_WRITE)
{
-// LL_WARNS() << "Write callback for " << mID << " with state = " << mState << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Write callback for " << mID << " with state = " << mState << LL_ENDL;
return;
}
mWritten = TRUE;
@@ -2373,7 +2378,7 @@ void LLTextureFetchWorker::callbackDecoded(bool success, LLImageRaw* raw, LLImag
}
if (mState != DECODE_IMAGE_UPDATE)
{
-// LL_WARNS() << "Decode callback for " << mID << " with state = " << mState << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Decode callback for " << mID << " with state = " << mState << LL_ENDL;
mDecodeHandle = 0;
return;
}
@@ -2386,17 +2391,17 @@ void LLTextureFetchWorker::callbackDecoded(bool success, LLImageRaw* raw, LLImag
mRawImage = raw;
mAuxImage = aux;
mDecodedDiscard = mFormattedImage->getDiscardLevel();
- LL_DEBUGS("Texture") << mID << ": Decode Finished. Discard: " << mDecodedDiscard
- << " Raw Image: " << llformat("%dx%d",mRawImage->getWidth(),mRawImage->getHeight()) << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << mID << ": Decode Finished. Discard: " << mDecodedDiscard
+ << " Raw Image: " << llformat("%dx%d",mRawImage->getWidth(),mRawImage->getHeight()) << LL_ENDL;
}
else
{
- LL_WARNS() << "DECODE FAILED: " << mID << " Discard: " << (S32)mFormattedImage->getDiscardLevel() << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "DECODE FAILED: " << mID << " Discard: " << (S32)mFormattedImage->getDiscardLevel() << LL_ENDL;
removeFromCache();
mDecodedDiscard = -1; // Redundant, here for clarity and paranoia
}
mDecoded = TRUE;
-// LL_INFOS() << mID << " : DECODE COMPLETE " << LL_ENDL;
+// LL_INFOS(LOG_TXT) << mID << " : DECODE COMPLETE " << LL_ENDL;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mCacheReadTime = mCacheReadTimer.getElapsedTimeF32();
} // -Mw
@@ -2583,8 +2588,8 @@ bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const
{
if (worker->mHost != host)
{
- LL_WARNS() << "LLTextureFetch::createRequest " << id << " called with multiple hosts: "
- << host << " != " << worker->mHost << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "LLTextureFetch::createRequest " << id << " called with multiple hosts: "
+ << host << " != " << worker->mHost << LL_ENDL;
removeRequest(worker, true);
worker = NULL;
return false;
@@ -2601,13 +2606,13 @@ bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const
llassert(!url.empty() && (!exten.empty() && LLImageBase::getCodecFromExtension(exten) != IMG_CODEC_J2C));
// Do full requests for baked textures to reduce interim blurring.
- LL_DEBUGS("Texture") << "full request for " << id << " texture is FTT_SERVER_BAKE" << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "full request for " << id << " texture is FTT_SERVER_BAKE" << LL_ENDL;
desired_size = MAX_IMAGE_DATA_SIZE;
desired_discard = 0;
}
else if (!url.empty() && (!exten.empty() && LLImageBase::getCodecFromExtension(exten) != IMG_CODEC_J2C))
{
- LL_DEBUGS("Texture") << "full request for " << id << " exten is not J2C: " << exten << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "full request for " << id << " exten is not J2C: " << exten << LL_ENDL;
// Only do partial requests for J2C at the moment
desired_size = MAX_IMAGE_DATA_SIZE;
desired_discard = 0;
@@ -2648,7 +2653,9 @@ bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const
worker->setImagePriority(priority);
worker->setDesiredDiscard(desired_discard, desired_size);
worker->setCanUseHTTP(can_use_http);
- worker->setUrl(url);
+
+ //MAINT-4184 url is always empty. Do not set with it.
+
if (!worker->haveWork())
{
worker->setState(LLTextureFetchWorker::INIT);
@@ -2675,8 +2682,8 @@ bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const
worker->unlockWorkMutex(); // -Mw
}
- LL_DEBUGS("Texture") << "REQUESTED: " << id << " f_type " << fttype_to_string(f_type)
- << " Discard: " << desired_discard << " size " << desired_size << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "REQUESTED: " << id << " f_type " << fttype_to_string(f_type)
+ << " Discard: " << desired_discard << " size " << desired_size << LL_ENDL;
return true;
}
@@ -2871,7 +2878,7 @@ bool LLTextureFetch::getRequestFinished(const LLUUID& id, S32& discard_level,
// Should only happen if we set mDebugPause...
if (!mDebugPause)
{
-// LL_WARNS() << "Adding work for inactive worker: " << id << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Adding work for inactive worker: " << id << LL_ENDL;
worker->addWork(0, LLWorkerThread::PRIORITY_HIGH | worker->mWorkPriority);
}
}
@@ -2888,7 +2895,7 @@ bool LLTextureFetch::getRequestFinished(const LLUUID& id, S32& discard_level,
record(sCacheReadLatency, cache_read_time);
}
res = true;
- LL_DEBUGS("Texture") << id << ": Request Finished. State: " << worker->mState << " Discard: " << discard_level << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << id << ": Request Finished. State: " << worker->mState << " Discard: " << discard_level << LL_ENDL;
worker->unlockWorkMutex(); // -Mw
}
else
@@ -2993,9 +3000,9 @@ void LLTextureFetch::commonUpdate()
LLCore::HttpStatus status = mHttpRequest->update(0);
if (! status)
{
- LL_INFOS_ONCE("Texture") << "Problem during HTTP servicing. Reason: "
- << status.toString()
- << LL_ENDL;
+ LL_INFOS_ONCE(LOG_TXT) << "Problem during HTTP servicing. Reason: "
+ << status.toString()
+ << LL_ENDL;
}
}
@@ -3075,11 +3082,11 @@ void LLTextureFetch::startThread()
// Threads: Ttf
void LLTextureFetch::endThread()
{
- LL_INFOS("Texture") << "CacheReads: " << mTotalCacheReadCount
- << ", CacheWrites: " << mTotalCacheWriteCount
- << ", ResWaits: " << mTotalResourceWaitCount
- << ", TotalHTTPReq: " << getTotalNumHTTPRequests()
- << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "CacheReads: " << mTotalCacheReadCount
+ << ", CacheWrites: " << mTotalCacheWriteCount
+ << ", ResWaits: " << mTotalResourceWaitCount
+ << ", TotalHTTPReq: " << getTotalNumHTTPRequests()
+ << LL_ENDL;
}
// Threads: Ttf
@@ -3108,7 +3115,7 @@ void LLTextureFetch::threadedUpdate()
S32 q = mCurlGetRequest->getQueued();
if (q > 0)
{
- LL_INFOS() << "Queued gets: " << q << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Queued gets: " << q << LL_ENDL;
info_timer.reset();
}
}
@@ -3157,7 +3164,7 @@ void LLTextureFetch::sendRequestListToSimulators()
(req->mState != LLTextureFetchWorker::LOAD_FROM_SIMULATOR))
{
// We already received our URL, remove from the queue
- LL_WARNS() << "Worker: " << req->mID << " in mNetworkQueue but in wrong state: " << req->mState << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Worker: " << req->mID << " in mNetworkQueue but in wrong state: " << req->mState << LL_ENDL;
mNetworkQueue.erase(curiter);
continue;
}
@@ -3225,7 +3232,7 @@ void LLTextureFetch::sendRequestListToSimulators()
gMessageSystem->addF32Fast(_PREHASH_DownloadPriority, req->mImagePriority);
gMessageSystem->addU32Fast(_PREHASH_Packet, packet);
gMessageSystem->addU8Fast(_PREHASH_Type, req->mType);
-// LL_INFOS() << "IMAGE REQUEST: " << req->mID << " Discard: " << req->mDesiredDiscard
+// LL_INFOS(LOG_TXT) << "IMAGE REQUEST: " << req->mID << " Discard: " << req->mDesiredDiscard
// << " Packet: " << packet << " Priority: " << req->mImagePriority << LL_ENDL;
static LLCachedControl<bool> log_to_viewer_log(gSavedSettings,"LogTextureDownloadsToViewerLog", false);
@@ -3247,7 +3254,7 @@ void LLTextureFetch::sendRequestListToSimulators()
sim_request_count++;
if (sim_request_count >= IMAGES_PER_REQUEST)
{
-// LL_INFOS() << "REQUESTING " << sim_request_count << " IMAGES FROM HOST: " << host.getIPString() << LL_ENDL;
+// LL_INFOS(LOG_TXT) << "REQUESTING " << sim_request_count << " IMAGES FROM HOST: " << host.getIPString() << LL_ENDL;
gMessageSystem->sendSemiReliable(host, NULL, NULL);
sim_request_count = 0;
@@ -3256,7 +3263,7 @@ void LLTextureFetch::sendRequestListToSimulators()
}
if (gMessageSystem && sim_request_count > 0 && sim_request_count < IMAGES_PER_REQUEST)
{
-// LL_INFOS() << "REQUESTING " << sim_request_count << " IMAGES FROM HOST: " << host.getIPString() << LL_ENDL;
+// LL_INFOS(LOG_TXT) << "REQUESTING " << sim_request_count << " IMAGES FROM HOST: " << host.getIPString() << LL_ENDL;
gMessageSystem->sendSemiReliable(host, NULL, NULL);
sim_request_count = 0;
}
@@ -3292,7 +3299,7 @@ void LLTextureFetch::sendRequestListToSimulators()
gMessageSystem->addF32Fast(_PREHASH_DownloadPriority, 0);
gMessageSystem->addU32Fast(_PREHASH_Packet, 0);
gMessageSystem->addU8Fast(_PREHASH_Type, 0);
-// LL_INFOS() << "CANCELING IMAGE REQUEST: " << (*iter2) << LL_ENDL;
+// LL_INFOS(LOG_TXT) << "CANCELING IMAGE REQUEST: " << (*iter2) << LL_ENDL;
request_count++;
if (request_count >= IMAGES_PER_REQUEST)
@@ -3320,12 +3327,12 @@ bool LLTextureFetchWorker::insertPacket(S32 index, U8* data, S32 size)
mRequestedTimer.reset();
if (index >= mTotalPackets)
{
-// LL_WARNS() << "Received Image Packet " << index << " > max: " << mTotalPackets << " for image: " << mID << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received Image Packet " << index << " > max: " << mTotalPackets << " for image: " << mID << LL_ENDL;
return false;
}
if (index > 0 && index < mTotalPackets-1 && size != MAX_IMG_PACKET_SIZE)
{
-// LL_WARNS() << "Received bad sized packet: " << index << ", " << size << " != " << MAX_IMG_PACKET_SIZE << " for image: " << mID << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received bad sized packet: " << index << ", " << size << " != " << MAX_IMG_PACKET_SIZE << " for image: " << mID << LL_ENDL;
return false;
}
@@ -3335,7 +3342,7 @@ bool LLTextureFetchWorker::insertPacket(S32 index, U8* data, S32 size)
}
else if (mPackets[index] != NULL)
{
-// LL_WARNS() << "Received duplicate packet: " << index << " for image: " << mID << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received duplicate packet: " << index << " for image: " << mID << LL_ENDL;
return false;
}
@@ -3355,7 +3362,7 @@ void LLTextureFetchWorker::setState(e_state new_state)
// blurry images fairly frequently. Presumably this is an
// indication of some subtle timing or locking issue.
-// LL_INFOS("Texture") << "id: " << mID << " FTType: " << mFTType << " disc: " << mDesiredDiscard << " sz: " << mDesiredSize << " state: " << e_state_name[mState] << " => " << e_state_name[new_state] << LL_ENDL;
+// LL_INFOS(LOG_TXT) << "id: " << mID << " FTType: " << mFTType << " disc: " << mDesiredDiscard << " sz: " << mDesiredSize << " state: " << e_state_name[mState] << " => " << e_state_name[new_state] << LL_ENDL;
}
mState = new_state;
}
@@ -3371,13 +3378,13 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8
if (!worker)
{
-// LL_WARNS() << "Received header for non active worker: " << id << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received header for non active worker: " << id << LL_ENDL;
res = false;
}
else if (worker->mState != LLTextureFetchWorker::LOAD_FROM_NETWORK ||
worker->mSentRequest != LLTextureFetchWorker::SENT_SIM)
{
-// LL_WARNS() << "receiveImageHeader for worker: " << id
+// LL_WARNS(LOG_TXT) << "receiveImageHeader for worker: " << id
// << " in state: " << LLTextureFetchWorker::sStateDescs[worker->mState]
// << " sent: " << worker->mSentRequest << LL_ENDL;
res = false;
@@ -3385,12 +3392,12 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8
else if (worker->mLastPacket != -1)
{
// check to see if we've gotten this packet before
-// LL_WARNS() << "Received duplicate header for: " << id << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received duplicate header for: " << id << LL_ENDL;
res = false;
}
else if (!data_size)
{
-// LL_WARNS() << "Img: " << id << ":" << " Empty Image Header" << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Img: " << id << ":" << " Empty Image Header" << LL_ENDL;
res = false;
}
if (!res)
@@ -3432,17 +3439,17 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1
if (!worker)
{
-// LL_WARNS() << "Received packet " << packet_num << " for non active worker: " << id << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received packet " << packet_num << " for non active worker: " << id << LL_ENDL;
res = false;
}
else if (worker->mLastPacket == -1)
{
-// LL_WARNS() << "Received packet " << packet_num << " before header for: " << id << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Received packet " << packet_num << " before header for: " << id << LL_ENDL;
res = false;
}
else if (!data_size)
{
-// LL_WARNS() << "Img: " << id << ":" << " Empty Image Header" << LL_ENDL;
+// LL_WARNS(LOG_TXT) << "Img: " << id << ":" << " Empty Image Header" << LL_ENDL;
res = false;
}
if (!res)
@@ -3470,7 +3477,7 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1
}
else
{
-// LL_WARNS() << "receiveImagePacket " << packet_num << "/" << worker->mLastPacket << " for worker: " << id
+// LL_WARNS(LOG_TXT) << "receiveImagePacket " << packet_num << "/" << worker->mLastPacket << " for worker: " << id
// << " in state: " << LLTextureFetchWorker::sStateDescs[worker->mState] << LL_ENDL;
removeFromNetworkQueue(worker, true); // failsafe
}
@@ -3563,33 +3570,33 @@ S32 LLTextureFetch::getFetchState(const LLUUID& id, F32& data_progress_p, F32& r
void LLTextureFetch::dump()
{
- LL_INFOS() << "LLTextureFetch REQUESTS:" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "LLTextureFetch REQUESTS:" << LL_ENDL;
for (request_queue_t::iterator iter = mRequestQueue.begin();
iter != mRequestQueue.end(); ++iter)
{
LLQueuedThread::QueuedRequest* qreq = *iter;
LLWorkerThread::WorkRequest* wreq = (LLWorkerThread::WorkRequest*)qreq;
LLTextureFetchWorker* worker = (LLTextureFetchWorker*)wreq->getWorkerClass();
- LL_INFOS() << " ID: " << worker->mID
- << " PRI: " << llformat("0x%08x",wreq->getPriority())
- << " STATE: " << worker->sStateDescs[worker->mState]
- << LL_ENDL;
+ LL_INFOS(LOG_TXT) << " ID: " << worker->mID
+ << " PRI: " << llformat("0x%08x",wreq->getPriority())
+ << " STATE: " << worker->sStateDescs[worker->mState]
+ << LL_ENDL;
}
- LL_INFOS() << "LLTextureFetch ACTIVE_HTTP:" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "LLTextureFetch ACTIVE_HTTP:" << LL_ENDL;
for (queue_t::const_iterator iter(mHTTPTextureQueue.begin());
mHTTPTextureQueue.end() != iter;
++iter)
{
- LL_INFOS() << " ID: " << (*iter) << LL_ENDL;
+ LL_INFOS(LOG_TXT) << " ID: " << (*iter) << LL_ENDL;
}
- LL_INFOS() << "LLTextureFetch WAIT_HTTP_RESOURCE:" << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "LLTextureFetch WAIT_HTTP_RESOURCE:" << LL_ENDL;
for (wait_http_res_queue_t::const_iterator iter(mHttpWaitResource.begin());
mHttpWaitResource.end() != iter;
++iter)
{
- LL_INFOS() << " ID: " << (*iter) << LL_ENDL;
+ LL_INFOS(LOG_TXT) << " ID: " << (*iter) << LL_ENDL;
}
}
@@ -3714,10 +3721,10 @@ void LLTextureFetch::releaseHttpWaiters()
{
// Not in expected state, remove it, try the next one
worker->unlockWorkMutex(); // -Mw
- LL_WARNS("Texture") << "Resource-waited texture " << worker->mID
- << " in unexpected state: " << worker->mState
- << ". Removing from wait list."
- << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Resource-waited texture " << worker->mID
+ << " in unexpected state: " << worker->mState
+ << ". Removing from wait list."
+ << LL_ENDL;
removeHttpWaiter(worker->mID);
continue;
}
@@ -3884,14 +3891,14 @@ public:
if (status)
{
- LL_DEBUGS("Texture") << "Successfully delivered asset metrics to grid."
- << LL_ENDL;
+ LL_DEBUGS(LOG_TXT) << "Successfully delivered asset metrics to grid."
+ << LL_ENDL;
}
else
{
- LL_WARNS("Texture") << "Error delivering asset metrics to grid. Status: "
- << status.toTerseString()
- << ", Reason: " << status.toString() << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Error delivering asset metrics to grid. Status: "
+ << status.toTerseString()
+ << ", Reason: " << status.toString() << LL_ENDL;
}
}
}; // end class AssetReportHandler
@@ -4502,14 +4509,14 @@ void LLTextureFetchDebugger::debugHTTP()
LLViewerRegion* region = gAgent.getRegion();
if (!region)
{
- LL_INFOS() << "Fetch Debugger : Current region undefined. Cannot fetch textures through HTTP." << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Fetch Debugger : Current region undefined. Cannot fetch textures through HTTP." << LL_ENDL;
return;
}
mHTTPUrl = region->getHttpUrl();
if (mHTTPUrl.empty())
{
- LL_INFOS() << "Fetch Debugger : Current region URL undefined. Cannot fetch textures through HTTP." << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Fetch Debugger : Current region URL undefined. Cannot fetch textures through HTTP." << LL_ENDL;
return;
}
@@ -4580,15 +4587,15 @@ S32 LLTextureFetchDebugger::fillCurlQueue()
// Failed to queue request, log it and mark it done.
LLCore::HttpStatus status(mFetcher->getHttpRequest().getStatus());
- LL_WARNS("Texture") << "Couldn't issue HTTP request in debugger for texture "
- << mFetchingHistory[i].mID
- << ", status: " << status.toTerseString()
- << " reason: " << status.toString()
- << LL_ENDL;
+ LL_WARNS(LOG_TXT) << "Couldn't issue HTTP request in debugger for texture "
+ << mFetchingHistory[i].mID
+ << ", status: " << status.toTerseString()
+ << " reason: " << status.toString()
+ << LL_ENDL;
mFetchingHistory[i].mCurlState = FetchEntry::CURL_DONE;
}
}
- //LL_INFOS() << "Fetch Debugger : Having " << mNbCurlRequests << " requests through the curl thread." << LL_ENDL;
+ //LL_INFOS(LOG_TXT) << "Fetch Debugger : Having " << mNbCurlRequests << " requests through the curl thread." << LL_ENDL;
return mNbCurlRequests;
}
@@ -4890,7 +4897,7 @@ void LLTextureFetchDebugger::onCompleted(LLCore::HttpHandle handle, LLCore::Http
handle_fetch_map_t::iterator iter(mHandleToFetchIndex.find(handle));
if (mHandleToFetchIndex.end() == iter)
{
- LL_INFOS() << "Fetch Debugger : Couldn't find handle " << handle << " in fetch list." << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Fetch Debugger : Couldn't find handle " << handle << " in fetch list." << LL_ENDL;
return;
}
@@ -4898,7 +4905,7 @@ void LLTextureFetchDebugger::onCompleted(LLCore::HttpHandle handle, LLCore::Http
mHandleToFetchIndex.erase(iter);
if (fetch_ind >= mFetchingHistory.size() || mFetchingHistory[fetch_ind].mHttpHandle != handle)
{
- LL_INFOS() << "Fetch Debugger : Handle and fetch object in disagreement. Punting." << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Fetch Debugger : Handle and fetch object in disagreement. Punting." << LL_ENDL;
}
else
{
@@ -4948,7 +4955,7 @@ void LLTextureFetchDebugger::callbackHTTP(FetchEntry & fetch, LLCore::HttpRespon
S32 data_size = ba ? ba->size() : 0;
fetch.mCurlReceivedSize += data_size;
- //LL_INFOS() << "Fetch Debugger : got results for " << fetch.mID << ", data_size = " << data_size << ", received = " << fetch.mCurlReceivedSize << ", requested = " << fetch.mRequestedSize << ", partial = " << partial << LL_ENDL;
+ //LL_INFOS(LOG_TXT) << "Fetch Debugger : got results for " << fetch.mID << ", data_size = " << data_size << ", received = " << fetch.mCurlReceivedSize << ", requested = " << fetch.mRequestedSize << ", partial = " << partial << LL_ENDL;
if ((fetch.mCurlReceivedSize >= fetch.mRequestedSize) || !partial || (fetch.mRequestedSize == 600))
{
U8* d_buffer = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), data_size);
@@ -4974,9 +4981,9 @@ void LLTextureFetchDebugger::callbackHTTP(FetchEntry & fetch, LLCore::HttpRespon
}
else //failed
{
- LL_INFOS() << "Fetch Debugger : CURL GET FAILED, ID = " << fetch.mID
- << ", status: " << status.toTerseString()
- << " reason: " << status.toString() << LL_ENDL;
+ LL_INFOS(LOG_TXT) << "Fetch Debugger : CURL GET FAILED, ID = " << fetch.mID
+ << ", status: " << status.toTerseString()
+ << " reason: " << status.toString() << LL_ENDL;
}
}
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index aa1f680a1e..4f0413a2e4 100755
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -563,7 +563,7 @@ void LLGLTexMemBar::draw()
//----------------------------------------------------------------------------
- text = llformat("Textures: %d Fetch: %d(%d) Pkts:%d(%d) Cache R/W: %d/%d LFS:%d RAW:%d HTP:%d DEC:%d CRE:%d",
+ text = llformat("Textures: %d Fetch: %d(%d) Pkts:%d(%d) Cache R/W: %d/%d LFS:%d RAW:%d HTP:%d DEC:%d CRE:%d ",
gTextureList.getNumImages(),
LLAppViewer::getTextureFetch()->getNumRequests(), LLAppViewer::getTextureFetch()->getNumDeletes(),
LLAppViewer::getTextureFetch()->mPacketCount, LLAppViewer::getTextureFetch()->mBadPacketCount,
@@ -585,7 +585,7 @@ void LLGLTexMemBar::draw()
color = bandwidth > max_bandwidth ? LLColor4::red : bandwidth > max_bandwidth*.75f ? LLColor4::yellow : text_color;
color[VALPHA] = text_color[VALPHA];
text = llformat("BW:%.0f/%.0f",bandwidth.value(), max_bandwidth.value());
- LLFontGL::getFontMonospace()->renderUTF8(text, 0, x_right, v_offset + line_height*2,
+ LLFontGL::getFontMonospace()->renderUTF8(text, 0, x_right, v_offset + line_height*3,
color, LLFontGL::LEFT, LLFontGL::TOP);
// Mesh status line
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 9d5c3c4d4a..332d04a1f4 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5747,83 +5747,101 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock)
}
// some of the server notifications need special handling. This is where we do that.
-bool handle_teleport_access_blocked(LLSD& llsdBlock)
+bool handle_teleport_access_blocked(LLSD& llsdBlock, const std::string & notificationID, const std::string & defaultMessage)
{
- std::string notificationID("TeleportEntryAccessBlocked");
U8 regionAccess = static_cast<U8>(llsdBlock["_region_access"].asInteger());
std::string regionMaturity = LLViewerRegion::accessToString(regionAccess);
LLStringUtil::toLower(regionMaturity);
llsdBlock["REGIONMATURITY"] = regionMaturity;
bool returnValue = false;
- LLNotificationPtr maturityLevelNotification;
- std::string notifySuffix = "_Notify";
- if (regionAccess == SIM_ACCESS_MATURE)
- {
- if (gAgent.isTeen())
- {
- gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_AdultsOnlyContent", llsdBlock);
- returnValue = true;
+ LLNotificationPtr tp_failure_notification;
+ std::string notifySuffix;
- notifySuffix = "_NotifyAdultsOnly";
- }
- else if (gAgent.prefersPG())
+ if (notificationID == std::string("TeleportEntryAccessBlocked"))
+ {
+ notifySuffix = "_Notify";
+ if (regionAccess == SIM_ACCESS_MATURE)
{
- if (gAgent.hasRestartableFailedTeleportRequest())
+ if (gAgent.isTeen())
{
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
+ gAgent.clearTeleportRequest();
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_AdultsOnlyContent", llsdBlock);
returnValue = true;
+
+ notifySuffix = "_NotifyAdultsOnly";
+ }
+ else if (gAgent.prefersPG())
+ {
+ if (gAgent.hasRestartableFailedTeleportRequest())
+ {
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
+ returnValue = true;
+ }
+ else
+ {
+ gAgent.clearTeleportRequest();
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ returnValue = true;
+ }
}
else
{
gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
returnValue = true;
}
}
- else
- {
- gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
- returnValue = true;
- }
- }
- else if (regionAccess == SIM_ACCESS_ADULT)
- {
- if (!gAgent.isAdult())
- {
- gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_AdultsOnlyContent", llsdBlock);
- returnValue = true;
-
- notifySuffix = "_NotifyAdultsOnly";
- }
- else if (gAgent.prefersPG() || gAgent.prefersMature())
+ else if (regionAccess == SIM_ACCESS_ADULT)
{
- if (gAgent.hasRestartableFailedTeleportRequest())
+ if (!gAgent.isAdult())
{
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
+ gAgent.clearTeleportRequest();
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_AdultsOnlyContent", llsdBlock);
returnValue = true;
+
+ notifySuffix = "_NotifyAdultsOnly";
+ }
+ else if (gAgent.prefersPG() || gAgent.prefersMature())
+ {
+ if (gAgent.hasRestartableFailedTeleportRequest())
+ {
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
+ returnValue = true;
+ }
+ else
+ {
+ gAgent.clearTeleportRequest();
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ returnValue = true;
+ }
}
else
{
gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ tp_failure_notification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
returnValue = true;
}
}
- else
+ } // End of special handling for "TeleportEntryAccessBlocked"
+ else
+ { // Normal case, no message munging
+ gAgent.clearTeleportRequest();
+ if (LLNotifications::getInstance()->templateExists(notificationID))
{
- gAgent.clearTeleportRequest();
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
- returnValue = true;
+ tp_failure_notification = LLNotificationsUtil::add(notificationID, llsdBlock, llsdBlock);
}
+ else
+ {
+ llsdBlock["MESSAGE"] = defaultMessage;
+ tp_failure_notification = LLNotificationsUtil::add("GenericAlertOK", llsdBlock);
}
+ returnValue = true;
+ }
- if ((maturityLevelNotification == NULL) || maturityLevelNotification->isIgnored())
+ if ((tp_failure_notification == NULL) || tp_failure_notification->isIgnored())
{
- // Given a simple notification if no maturityLevelNotification is set or it is ignore
+ // Given a simple notification if no tp_failure_notification is set or it is ignore
LLNotificationsUtil::add(notificationID + notifySuffix, llsdBlock);
}
@@ -6039,8 +6057,8 @@ void process_alert_core(const std::string& message, BOOL modal)
std::string alert_name(message.substr(ALERT_PREFIX.length()));
if (!handle_special_alerts(alert_name))
{
- LLNotificationsUtil::add(alert_name);
- }
+ LLNotificationsUtil::add(alert_name);
+ }
}
else if (message.find(NOTIFY_PREFIX) == 0)
{
@@ -6062,10 +6080,10 @@ void process_alert_core(const std::string& message, BOOL modal)
LLFloaterRegionRestarting::close();
}
- std::string new_msg =LLNotifications::instance().getGlobalString(text);
- args["MESSAGE"] = new_msg;
- LLNotificationsUtil::add("SystemMessage", args);
- }
+ std::string new_msg =LLNotifications::instance().getGlobalString(text);
+ args["MESSAGE"] = new_msg;
+ LLNotificationsUtil::add("SystemMessage", args);
+ }
else if (modal)
{
LLSD args;
@@ -6648,8 +6666,8 @@ std::string formatted_time(const time_t& the_time)
void process_teleport_failed(LLMessageSystem *msg, void**)
{
- std::string reason;
- std::string big_reason;
+ std::string message_id; // Tag from server, like "RegionEntryAccessBlocked"
+ std::string big_reason; // Actual message to display
LLSD args;
// Let the interested parties know that teleport failed.
@@ -6659,16 +6677,16 @@ void process_teleport_failed(LLMessageSystem *msg, void**)
if (msg->has(_PREHASH_AlertInfo) && msg->getSizeFast(_PREHASH_AlertInfo, _PREHASH_Message) > 0)
{
// Get the message ID
- msg->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, reason);
- big_reason = LLAgent::sTeleportErrorMessages[reason];
+ msg->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, message_id);
+ big_reason = LLAgent::sTeleportErrorMessages[message_id];
if ( big_reason.size() > 0 )
{ // Substitute verbose reason from the local map
args["REASON"] = big_reason;
}
else
{ // Nothing found in the map - use what the server returned in the original message block
- msg->getStringFast(_PREHASH_Info, _PREHASH_Reason, reason);
- args["REASON"] = reason;
+ msg->getStringFast(_PREHASH_Info, _PREHASH_Reason, big_reason);
+ args["REASON"] = big_reason;
}
LLSD llsd_block;
@@ -6684,7 +6702,7 @@ void process_teleport_failed(LLMessageSystem *msg, void**)
else
{
// change notification name in this special case
- if (handle_teleport_access_blocked(llsd_block))
+ if (handle_teleport_access_blocked(llsd_block, message_id, args["REASON"]))
{
if( gAgent.getTeleportState() != LLAgent::TELEPORT_NONE )
{
@@ -6697,17 +6715,17 @@ void process_teleport_failed(LLMessageSystem *msg, void**)
}
else
- {
- msg->getStringFast(_PREHASH_Info, _PREHASH_Reason, reason);
+ { // Extra message payload not found - use what the simulator sent
+ msg->getStringFast(_PREHASH_Info, _PREHASH_Reason, message_id);
- big_reason = LLAgent::sTeleportErrorMessages[reason];
+ big_reason = LLAgent::sTeleportErrorMessages[message_id];
if ( big_reason.size() > 0 )
{ // Substitute verbose reason from the local map
args["REASON"] = big_reason;
}
else
{ // Nothing found in the map - use what the server returned
- args["REASON"] = reason;
+ args["REASON"] = message_id;
}
}
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index cd5f64b9ca..11cbf3fc24 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -285,8 +285,8 @@ private:
{
regionp->setCapability(iter->first, iter->second);
- LL_DEBUGS("AppInit", "Capabilities") << "got capability for "
- << iter->first << LL_ENDL;
+ LL_DEBUGS("AppInit", "Capabilities")
+ << "Capability '" << iter->first << "' is '" << iter->second << "'" << LL_ENDL;
/* HACK we're waiting for the ServerReleaseNotes */
if (iter->first == "ServerReleaseNotes" && regionp->getReleaseNotesRequested())
diff --git a/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png b/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
index 8b58db0cba..50239c8af8 100755
--- a/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
+++ b/indra/newview/skins/default/textures/bottomtray/ChatBarHandle.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png b/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
index 9e7291d6fb..fade065ce7 100755
--- a/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Move_Fly_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
index 0ac5b72b8f..eb2f3dbaa4 100755
--- a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
+++ b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
index d7ec04237b..4ab4bbe4af 100755
--- a/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
+++ b/indra/newview/skins/default/textures/bottomtray/Snapshot_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/down_arrow.png b/indra/newview/skins/default/textures/down_arrow.png
index 155f80c97e..21a0fc5ec0 100755
--- a/indra/newview/skins/default/textures/down_arrow.png
+++ b/indra/newview/skins/default/textures/down_arrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Edit_Wrench.png b/indra/newview/skins/default/textures/icons/Edit_Wrench.png
index edb40b9c96..42f8466969 100755
--- a/indra/newview/skins/default/textures/icons/Edit_Wrench.png
+++ b/indra/newview/skins/default/textures/icons/Edit_Wrench.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Group_Large.png b/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
index 75833eccf3..46ee6dfe2c 100755
--- a/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Generic_Person.png b/indra/newview/skins/default/textures/icons/Generic_Person.png
index 45b491ab59..e1411354af 100755
--- a/indra/newview/skins/default/textures/icons/Generic_Person.png
+++ b/indra/newview/skins/default/textures/icons/Generic_Person.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
index 296311e797..ae8c8b4c1a 100755
--- a/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
+++ b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Link.png b/indra/newview/skins/default/textures/icons/Inv_Link.png
index c1543dacb5..26bf4086fb 100755
--- a/indra/newview/skins/default/textures/icons/Inv_Link.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Link.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LostClosed.png b/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
index a800217e0d..42b5c88fdd 100755
--- a/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LostClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_LostOpen.png b/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
index 8c4a1a9ac0..a52168d6c7 100755
--- a/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_LostOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_Mesh.png b/indra/newview/skins/default/textures/icons/Inv_Mesh.png
index f1f21f7941..77e52264c3 100755
--- a/indra/newview/skins/default/textures/icons/Inv_Mesh.png
+++ b/indra/newview/skins/default/textures/icons/Inv_Mesh.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
index dcf998449f..57eafc4047 100755
--- a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
index 0efd403c95..b080688e55 100755
--- a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png b/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
index c5201e6f9a..7a958c1ec0 100755
--- a/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
+++ b/indra/newview/skins/default/textures/icons/Inv_TrashClosed.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png b/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
index 4a886a3f37..11e6bf33bc 100755
--- a/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
+++ b/indra/newview/skins/default/textures/icons/Inv_TrashOpen.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
index e0b18b2451..af65873cb6 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
index 101aaa42b1..6ceb9d3d8f 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
index c27f18e3c7..7084e2f591 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
index 956e02b14d..60d056b573 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
index 434caeda8b..d004b0f750 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOff_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
index 064687ed0f..eed28765f7 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Dark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
index 5465650d0c..e35de3c2fa 100755
--- a/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
+++ b/indra/newview/skins/default/textures/icons/Parcel_SeeAVsOn_Light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Person_Check.png b/indra/newview/skins/default/textures/icons/Person_Check.png
index f8638540d4..d40eafe793 100755
--- a/indra/newview/skins/default/textures/icons/Person_Check.png
+++ b/indra/newview/skins/default/textures/icons/Person_Check.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Person_Star.png b/indra/newview/skins/default/textures/icons/Person_Star.png
index ad10580ac4..e02935672f 100755
--- a/indra/newview/skins/default/textures/icons/Person_Star.png
+++ b/indra/newview/skins/default/textures/icons/Person_Star.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png
index 8342d7cfee..5e376c72f9 100755
--- a/indra/newview/skins/default/textures/icons/SL_Logo.png
+++ b/indra/newview/skins/default/textures/icons/SL_Logo.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Shop.png b/indra/newview/skins/default/textures/icons/Shop.png
index 81c13eeabd..8977c49195 100755
--- a/indra/newview/skins/default/textures/icons/Shop.png
+++ b/indra/newview/skins/default/textures/icons/Shop.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/Web_Profile_Off.png b/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
index f5fb774a6f..5716dd6d22 100755
--- a/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
+++ b/indra/newview/skins/default/textures/icons/Web_Profile_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_off.png b/indra/newview/skins/default/textures/icons/back_arrow_off.png
index 422f67cf83..e7cea49d73 100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_off.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_over.png b/indra/newview/skins/default/textures/icons/back_arrow_over.png
index b4cc170f37..4e5a93a25f 100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_over.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_press.png b/indra/newview/skins/default/textures/icons/back_arrow_press.png
index a9e2f326a7..289b8c20e6 100755
--- a/indra/newview/skins/default/textures/icons/back_arrow_press.png
+++ b/indra/newview/skins/default/textures/icons/back_arrow_press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/check_mark.png b/indra/newview/skins/default/textures/icons/check_mark.png
index 2c05297f4f..4d927cb29e 100755
--- a/indra/newview/skins/default/textures/icons/check_mark.png
+++ b/indra/newview/skins/default/textures/icons/check_mark.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/pop_up_caution.png b/indra/newview/skins/default/textures/icons/pop_up_caution.png
index 78b681cb33..8364bcc328 100755
--- a/indra/newview/skins/default/textures/icons/pop_up_caution.png
+++ b/indra/newview/skins/default/textures/icons/pop_up_caution.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/menu_separator.png b/indra/newview/skins/default/textures/menu_separator.png
index 89dcdcdff5..7bb27c499d 100755
--- a/indra/newview/skins/default/textures/menu_separator.png
+++ b/indra/newview/skins/default/textures/menu_separator.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png b/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
index d0b213cdc5..7c6920205f 100755
--- a/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
+++ b/indra/newview/skins/default/textures/model_wizard/progress_bar_bg.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/model_wizard/progress_light.png b/indra/newview/skins/default/textures/model_wizard/progress_light.png
index 019344f812..c8ab151c44 100755
--- a/indra/newview/skins/default/textures/model_wizard/progress_light.png
+++ b/indra/newview/skins/default/textures/model_wizard/progress_light.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Search.png b/indra/newview/skins/default/textures/navbar/Search.png
index 0d0e330bc7..4c29e57f7b 100755
--- a/indra/newview/skins/default/textures/navbar/Search.png
+++ b/indra/newview/skins/default/textures/navbar/Search.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/separator.png b/indra/newview/skins/default/textures/navbar/separator.png
index b93e5791a7..c1d74e5a64 100755
--- a/indra/newview/skins/default/textures/navbar/separator.png
+++ b/indra/newview/skins/default/textures/navbar/separator.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
index 50c01062a5..4e59042e33 100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
index bf2065cd37..be7b298bb8 100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
index 8b48258142..1e234ff09b 100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
index 09efe779fe..48c78b453d 100755
--- a/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/facebook.png b/indra/newview/skins/default/textures/toolbar_icons/facebook.png
index b960b834dc..ae524b643f 100644
--- a/indra/newview/skins/default/textures/toolbar_icons/facebook.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/facebook.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png b/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
index 9fcf46794d..9eeb1d4e09 100755
--- a/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
+++ b/indra/newview/skins/default/textures/toolbar_icons/mini_cart.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/up_arrow.png b/indra/newview/skins/default/textures/up_arrow.png
index fe68ad49dc..76f839510e 100755
--- a/indra/newview/skins/default/textures/up_arrow.png
+++ b/indra/newview/skins/default/textures/up_arrow.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Arrow_Down.png b/indra/newview/skins/default/textures/widgets/Arrow_Down.png
index e10f6472eb..cb4eea953c 100755
--- a/indra/newview/skins/default/textures/widgets/Arrow_Down.png
+++ b/indra/newview/skins/default/textures/widgets/Arrow_Down.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
index c7c0eaa96b..3897e16801 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
index 4a73c254fc..95a4a36c9d 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
index 6fb5c432de..20d1ebf53d 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
index fa18517933..63f4b503e2 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Left_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
index bed1a701bd..d570f77f6d 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
index 57ce9af574..28a002b118 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
index 2c43022f0e..a195e80b0e 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
index 6b8c1baca4..9863ee32cb 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Middle_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
index 51505e80c5..2ffbc4a16f 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Disabled.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
index 9f93efbd93..ce47da169b 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
index 3a4ec1a315..2225150983 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
index 1f1b4c2ed5..2d541d0f70 100755
--- a/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
+++ b/indra/newview/skins/default/textures/widgets/BreadCrumbBtn_Right_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/widgets/Tooltip.png b/indra/newview/skins/default/textures/widgets/Tooltip.png
index f989ac9083..3c4d6a965d 100755
--- a/indra/newview/skins/default/textures/widgets/Tooltip.png
+++ b/indra/newview/skins/default/textures/widgets/Tooltip.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
index 2292b79eda..3534b716fd 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
index 1a514742d3..177c0675bb 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
index 7478644b6a..aa21a1c789 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
index 9f72a5422b..a98a3a98c2 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
index 07db8be1b0..5df0e7691c 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
index 1e753aaf1d..b4d4ef01fc 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Restore_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png b/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
index be66b05230..0d0238dc32 100755
--- a/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Restore_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_down.png b/indra/newview/skins/default/textures/windows/hint_arrow_down.png
index ddadef0978..0cb5a819ec 100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_down.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_down.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_left.png b/indra/newview/skins/default/textures/windows/hint_arrow_left.png
index 2794b967e8..45204d9132 100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_left.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png b/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
index 0dfc99898d..3e3ae9f42d 100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_lower_left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_right.png b/indra/newview/skins/default/textures/windows/hint_arrow_right.png
index 7ac57f805b..3fe7a773c3 100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_right.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_right.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_arrow_up.png b/indra/newview/skins/default/textures/windows/hint_arrow_up.png
index bb3e1c07fa..44f003dc63 100755
--- a/indra/newview/skins/default/textures/windows/hint_arrow_up.png
+++ b/indra/newview/skins/default/textures/windows/hint_arrow_up.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/hint_background.png b/indra/newview/skins/default/textures/windows/hint_background.png
index cfac5deacb..e25f354347 100755
--- a/indra/newview/skins/default/textures/windows/hint_background.png
+++ b/indra/newview/skins/default/textures/windows/hint_background.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/yellow_gradient.png b/indra/newview/skins/default/textures/windows/yellow_gradient.png
index 5fd847aaef..5bd21b4297 100755
--- a/indra/newview/skins/default/textures/windows/yellow_gradient.png
+++ b/indra/newview/skins/default/textures/windows/yellow_gradient.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/CameraDragDot.png b/indra/newview/skins/default/textures/world/CameraDragDot.png
index 57698e1956..2ccf098e0f 100755
--- a/indra/newview/skins/default/textures/world/CameraDragDot.png
+++ b/indra/newview/skins/default/textures/world/CameraDragDot.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/world/NoEntryLines.png b/indra/newview/skins/default/textures/world/NoEntryLines.png
index 18e270bde5..d7496b8bd0 100755
--- a/indra/newview/skins/default/textures/world/NoEntryLines.png
+++ b/indra/newview/skins/default/textures/world/NoEntryLines.png
Binary files differ
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 798461c007..b98ee78685 100755
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -41,23 +41,24 @@
</string>
<button name="advanced_options_btn" tool_tip="Erweiterte Optionen"/>
<text name="image_res_text">
- [WIDTH] x [HEIGHT] px
+ [WIDTH]px (Breite) x [HEIGHT]px (Höhe)
</text>
<text name="file_size_label">
[SIZE] KB
</text>
+ <button name="advanced_options" label="AUFNAHME OPTIONEN"/>
<panel name="advanced_options_panel">
- <text name="advanced_options_label">
- ERWEITERTE OPTIONEN
- </text>
<text name="layer_type_label">
- Aufnahme:
+ Aufnehmen:
</text>
<combo_box label="Bildebenen" 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"/>
+ <combo_box label="Filter" name="filters_combobox">
+ <combo_box.item label="Kein Filter" name="NoFilter"/>
+ </combo_box>
+ <check_box label="Benutzeroberfläche" name="ui_check"/>
<check_box label="HUDs" name="hud_check"/>
<check_box label="Standbild (Vollbild)" name="freeze_frame_check"/>
<check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/>
diff --git a/indra/newview/skins/default/xui/de/panel_postcard_message.xml b/indra/newview/skins/default/xui/de/panel_postcard_message.xml
index 6eeef8af71..b34dc776de 100755
--- a/indra/newview/skins/default/xui/de/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/de/panel_postcard_message.xml
@@ -9,13 +9,11 @@
<text name="subject_label">
Betreff:
</text>
- <line_editor label="Betreff hier eingeben." name="subject_form"/>
+ <line_editor label="Betreff hier rein." name="subject_form"/>
<text name="msg_label">
Nachricht:
</text>
<text_editor name="msg_form">
Nachricht hier eingeben.
</text_editor>
- <button label="Abbrechen" name="cancel_btn"/>
- <button label="Senden" name="send_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_postcard_settings.xml b/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
index c1a1c0cc46..e6d3b7de66 100755
--- a/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/de/panel_postcard_settings.xml
@@ -7,17 +7,10 @@
<combo_box.item label="1024x768" name="1024x768"/>
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
</combo_box>
- <layout_stack name="postcard_image_params_ls">
- <layout_panel name="postcard_image_size_lp">
- <spinner label="Breite" name="postcard_snapshot_width"/>
- <spinner label="Höhe" name="postcard_snapshot_height"/>
- <check_box label="Seitenverhältnis beibehalten" name="postcard_keep_aspect_check"/>
- </layout_panel>
- <layout_panel name="postcard_image_format_quality_lp">
- <slider label="Bildqualität" name="image_quality_slider"/>
- <text name="image_quality_level">
- ([QLVL])
- </text>
- </layout_panel>
- </layout_stack>
+ <spinner label="Breite x Höhe" name="postcard_snapshot_width"/>
+ <check_box label="Seitenverhältnis beibehalten" name="postcard_keep_aspect_check"/>
+ <slider label="Qualität" name="image_quality_slider"/>
+ <text name="image_quality_level">
+ ([QLVL])
+ </text>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
index 10827ce6f2..d13f56ed3d 100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_snapshot_inventory">
<text name="title">
- In meinem Inventar speichern
+ Inventar
</text>
<text name="hint_lbl">
Das Speichern eines Bilds in Ihrem Inventar kostet [UPLOAD_COST] L$. Um das Bild als Textur zu speichern, wählen Sie eines der quadratischen Formate aus.
@@ -13,8 +13,7 @@
<combo_box.item label="Groß (512x512)" name="Large(512x512)"/>
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
</combo_box>
- <spinner label="Breite" name="inventory_snapshot_width"/>
- <spinner label="Höhe" name="inventory_snapshot_height"/>
+ <spinner label="Breite x Höhe" name="inventory_snapshot_width"/>
<check_box label="Seitenverhältnis beibehalten" name="inventory_keep_aspect_check"/>
<button label="Abbrechen" name="cancel_btn"/>
<button label="Speichern" name="save_btn"/>
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
index 3aeae80388..53e78ba290 100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_snapshot_local">
<text name="title">
- Auf meinem Computer speichern
+ Festplatte
</text>
<combo_box label="Auflösung" name="local_size_combo">
<combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
@@ -13,24 +13,17 @@
<combo_box.item label="1600x1200" name="1600x1200"/>
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
</combo_box>
- <layout_stack name="local_image_params_ls">
- <layout_panel name="local_image_size_lp">
- <spinner label="Breite" name="local_snapshot_width"/>
- <spinner label="Höhe" name="local_snapshot_height"/>
- <check_box label="Seitenverhältnis beibehalten" name="local_keep_aspect_check"/>
- </layout_panel>
- <layout_panel name="local_image_format_quality_lp">
- <combo_box label="Format" name="local_format_combo">
- <combo_box.item label="PNG (verlustfrei)" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP (verlustfrei)" name="BMP"/>
- </combo_box>
- <slider label="Bildqualität" name="image_quality_slider"/>
- <text name="image_quality_level">
- ([QLVL])
- </text>
- </layout_panel>
- </layout_stack>
+ <spinner label="Breite x Höhe" name="local_snapshot_width"/>
+ <check_box label="Seitenverhältnis beibehalten" name="local_keep_aspect_check"/>
+ <combo_box label="Format" name="local_format_combo">
+ <combo_box.item label="PNG (verlustfrei)" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP (verlustfrei)" name="BMP"/>
+ </combo_box>
+ <slider label="Qualität" name="image_quality_slider"/>
+ <text name="image_quality_level">
+ ([QLVL])
+ </text>
<button label="Abbrechen" name="cancel_btn"/>
<flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
<flyout_button.item label="Speichern" name="save_item"/>
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_options.xml b/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
index e1d8a5dc6d..e2ba5bd4db 100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_options.xml
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_snapshot_options">
- <button label="In meinem Profil posten" name="save_to_profile_btn"/>
- <button label="E-Mail" name="save_to_email_btn"/>
- <button label="In meinem Inventar speichern ([AMOUNT] L$)" name="save_to_inventory_btn"/>
- <button label="Auf meinem Computer speichern" name="save_to_computer_btn"/>
+ <button label="Ins Profil hochladen" name="save_to_profile_btn"/>
+ <button label="Per E-Mail senden" name="save_to_email_btn"/>
+ <button label="Im Inventar speichern" name="save_to_inventory_btn"/>
+ <button label="Auf Festplatte speichern" name="save_to_computer_btn"/>
+ <button label="Zu Facebook hochladen" name="send_to_facebook_btn"/>
+ <button label="Zu Twitter hochladen" name="send_to_twitter_btn"/>
+ <button label="Zu Flickr hochladen" name="send_to_flickr_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
index c9afe86d7f..ead56f2885 100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_postcard.xml
@@ -12,6 +12,10 @@
<text name="title">
E-Mail
</text>
- <button label="Nachricht" name="message_btn"/>
- <button label="Einstellungen" name="settings_btn"/>
+ <tab_container name="postcard_tabs">
+ <panel name="panel_postcard_message" label="Nachricht"/>
+ <panel name="panel_postcard_settings" label="Einstellungen"/>
+ </tab_container>
+ <button name="cancel_btn" label="Abbrechen"/>
+ <button name="send_btn" label="Absenden"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
index 8d1c52dea8..0f21edd1b6 100755
--- a/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_profile.xml
@@ -1,28 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_snapshot_profile">
<text name="title">
- In meinem Profil posten
+ Profil
</text>
<combo_box label="Auflösung" name="profile_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.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>
- <layout_stack name="profile_image_params_ls">
- <layout_panel name="profile_image_size_lp">
- <spinner label="Breite" name="profile_snapshot_width"/>
- <spinner label="Höhe" name="profile_snapshot_height"/>
- <check_box label="Seitenverhältnis beibehalten" name="profile_keep_aspect_check"/>
- </layout_panel>
- <layout_panel name="profile_image_metadata_lp">
- <text name="caption_label">
- Bildunterschrift:
- </text>
- <check_box initial_value="true" label="Ort einschließen" name="add_location_cb"/>
- </layout_panel>
- </layout_stack>
+ <spinner label="Breite x Höhe" name="profile_snapshot_width"/>
+ <check_box label="Seitenverhältnis beibehalten" name="profile_keep_aspect_check"/>
+ <text name="caption_label">
+ Bildunterschrift:
+ </text>
+ <check_box initial_value="true" label="Ort einschließen" name="add_location_cb"/>
<button label="Abbrechen" name="cancel_btn"/>
<button label="Posten" name="post_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/en/floater_facebook.xml b/indra/newview/skins/default/xui/en/floater_facebook.xml
index 4535b9084e..2ea34fb751 100644
--- a/indra/newview/skins/default/xui/en/floater_facebook.xml
+++ b/indra/newview/skins/default/xui/en/floater_facebook.xml
@@ -2,7 +2,6 @@
<floater
positioning="cascading"
can_close="true"
- can_resize="true"
help_topic="floater_facebook"
layout="topleft"
name="floater_facebook"
@@ -10,23 +9,15 @@
single_instance="true"
reuse_instance="true"
title="POST TO FACEBOOK"
- min_height="501"
+ min_height="462"
min_width="304"
- height="482"
- width="304">
- <panel
- height="482"
- width="304"
- visible="true"
- name="background"
- follows="all"
- top="0"
- left="0">
+ height="462"
+ width="272">
<tab_container
name="tabs"
tab_group="1"
- tab_min_width="70"
- tab_height="30"
+ tab_min_width="64"
+ tab_height="21"
tab_position="top"
top="7"
height="437"
@@ -57,23 +48,19 @@
follows="all"
label="FRIENDS"
name="panel_facebook_friends"/>
- <panel
+ <!--<panel
filename="panel_facebook_account.xml"
class="llfacebookaccountpanel"
follows="all"
label="ACCOUNT"
- name="panel_facebook_account"/>
+ name="panel_facebook_account"/>-->
</tab_container>
- <panel
- name="connection_status_panel"
- follows="left|bottom|right"
- height="24">
<text
name="connection_error_text"
type="string"
follows="left|bottom|right"
- top="5"
- left="9"
+ bottom="-5"
+ left="10"
width="250"
height="20"
wrap="true"
@@ -88,14 +75,14 @@
height="24"
width="24"
name="connection_loading_indicator"
- top="2"
- left="9"
+ top_delta="-2"
+ left="10"
visible="true"/>
<text
name="connection_loading_text"
type="string"
follows="left|bottom|right"
- top="5"
+ top_delta="2"
left_pad="5"
width="250"
height="20"
@@ -106,6 +93,4 @@
font="SansSerif">
Loading...
</text>
- </panel>
- </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_flickr.xml b/indra/newview/skins/default/xui/en/floater_flickr.xml
index 1a9ffd0489..24de3ddd8d 100644
--- a/indra/newview/skins/default/xui/en/floater_flickr.xml
+++ b/indra/newview/skins/default/xui/en/floater_flickr.xml
@@ -10,11 +10,11 @@
single_instance="true"
reuse_instance="true"
title="UPLOAD TO FLICKR"
- height="622"
- width="304">
+ height="590"
+ width="272">
<panel
- height="622"
- width="304"
+ height="590"
+ width="272"
visible="true"
name="background"
follows="all"
@@ -24,10 +24,11 @@
name="tabs"
tab_group="1"
tab_min_width="70"
- tab_height="30"
+ tab_height="21"
tab_position="top"
top="7"
- height="577"
+ height="555"
+ follows="all"
halign="center"
use_highlighting_on_hover="true">
<panel
@@ -51,8 +52,8 @@
name="connection_error_text"
type="string"
follows="left|bottom|right"
- top="5"
- left="9"
+ bottom="-5"
+ left="10"
width="250"
height="20"
wrap="true"
@@ -67,14 +68,14 @@
height="24"
width="24"
name="connection_loading_indicator"
- top="2"
- left="9"
+ top_delta="-2"
+ left="10"
visible="true"/>
<text
name="connection_loading_text"
type="string"
follows="left|bottom|right"
- top="5"
+ top_delta="2"
left_pad="5"
width="250"
height="20"
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
index c86ed595a7..17bc818cc1 100755
--- a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
@@ -2,7 +2,7 @@
<floater
legacy_header_height="18"
can_minimize="false"
- height="408"
+ height="440"
layout="topleft"
name="Inventory Finder"
help_topic="inventory_finder"
@@ -95,36 +95,36 @@
width="126" />
<icon
height="16"
- image_name="Inv_Mesh"
+ image_name="Inv_Notecard"
layout="topleft"
left="8"
mouse_opaque="true"
- name="icon_mesh"
- top="142"
+ name="icon_notecard"
+ top="122"
width="16" />
<check_box
height="16"
- label="Meshes"
+ label="Notecards"
layout="topleft"
left_pad="2"
- name="check_mesh"
+ name="check_notecard"
top_delta="0"
width="126" />
<icon
height="16"
- image_name="Inv_Notecard"
+ image_name="Inv_Mesh"
layout="topleft"
left="8"
mouse_opaque="true"
- name="icon_notecard"
- top="122"
+ name="icon_mesh"
+ top="142"
width="16" />
<check_box
height="16"
- label="Notecards"
+ label="Meshes"
layout="topleft"
left_pad="2"
- name="check_notecard"
+ name="check_mesh"
top_delta="0"
width="126" />
<icon
@@ -223,25 +223,33 @@
top="262"
width="100" />
<button
- follows="left|top"
height="20"
label="None"
label_selected="None"
- layout="topleft"
left_delta="0"
name="None"
- top_pad="4"
+ left_pad="10"
width="100" />
<check_box
height="16"
label="Always show folders"
layout="topleft"
- left_delta="0"
+ left="8"
name="check_show_empty"
- top_pad="4"
+ top_pad="6"
width="144" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="0"
+ layout="topleft"
+ left="10"
+ name="horiz_separator"
+ top_pad="8"
+ width="260"/>
<check_box
height="16"
+ top="324"
label="Since Logoff"
layout="topleft"
left_delta="0"
@@ -257,36 +265,74 @@
layout="topleft"
left_delta="0"
name="- OR -"
- top_delta="16"
+ top="342"
width="144">
- OR -
</text>
+ <radio_group
+ height="16"
+ layout="topleft"
+ name="date_search_direction"
+ top="360"
+ left="8"
+ width="270">
+ <radio_item
+ label="Newer than"
+ layout="topleft"
+ name="newer"
+ top_pad="6"
+ left="0" />
+ <radio_item
+ label="Older than"
+ layout="topleft"
+ name="older"
+ top_delta="0"
+ left="120" />
+ </radio_group>
<spinner
follows="left|top"
height="16"
increment="1"
initial_value="0"
- label="Hours Ago"
- label_width="64"
layout="topleft"
left_delta="0"
max_val="240000"
name="spin_hours_ago"
top_pad="4"
- width="144" />
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ top_delta="4"
+ width="80">
+ Hours
+ </text>
<spinner
follows="left|top"
height="16"
increment="1"
initial_value="0"
- label="Days Ago"
- label_width="64"
layout="topleft"
- left_delta="0"
max_val="10000"
name="spin_days_ago"
top_pad="4"
- width="144" />
+ left="8"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ top_delta="4"
+ width="80">
+ Days
+ </text>
<button
follows="top|right"
height="20"
@@ -295,6 +341,6 @@
layout="topleft"
name="Close"
right="-6"
- top="382"
+ top="406"
width="76" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index 771035b40d..f0a175902b 100755
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -3,15 +3,17 @@
positioning="cascading"
legacy_header_height="18"
can_minimize="true"
+ can_resize="false"
can_close="true"
- height="500"
+ height="455"
layout="topleft"
name="Snapshot"
help_topic="snapshot"
save_rect="true"
save_visibility="false"
title="SNAPSHOT"
- width="470">
+ width="624"
+ min_height="455">
<floater.string
name="unknown">
unknown
@@ -57,11 +59,11 @@
Saved to Computer!
</string>
<string
- name="facebook_failed_str">
+ name="facebook_failed_str">
Failed to upload image to your Facebook timeline.
</string>
<string
- name="profile_failed_str">
+ name="profile_failed_str">
Failed to upload image to your Profile Feed.
</string>
<string
@@ -78,35 +80,231 @@
</string>
<button
follows="left|top"
- height="23"
- image_overlay="TabIcon_Close_Off"
+ height="25"
+ image_overlay="Refresh_Off"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ image_overlay_alignment="left"
+ imgoverlay_label_space="5"
+ pad_bottom="0"
+ halign="left"
layout="topleft"
- left="236"
- name="advanced_options_btn"
- tool_tip="Advanced options"
- top="25"
- width="23" />
- <ui_ctrl
- height="160"
- width="250"
- layout="topleft"
- name="thumbnail_placeholder"
- top="50"
- follows="left|top"
- left="10">
+ left="10"
+ label="REFRESH"
+ name="new_snapshot_btn"
+ top_pad="26"
+ width="167" />
+ <button
+ follows="left|top"
+ control_name="AdvanceSnapshot"
+ invisibility_control="AdvanceSnapshot"
+ height="25"
+ is_toggle="true"
+ layout="topleft"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Off"
+ image_unselected="Toolbar_Middle_Off"
+ image_overlay="Conv_toolbar_expand"
+ name="retract_btn"
+ left_pad="1"
+ top_delta="0"
+ width="31" />
+ <button
+ follows="left|top"
+ control_name="AdvanceSnapshot"
+ visibility_control="AdvanceSnapshot"
+ height="25"
+ is_toggle="true"
+ layout="topleft"
+ image_overlay="Conv_toolbar_collapse"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Off"
+ image_unselected="Toolbar_Middle_Off"
+ name="extend_btn"
+ left_delta="0"
+ top_delta="0"
+ width="31" />
+ <panel
+ height="154"
+ layout="topleft"
+ follows="top|left"
+ left="0"
+ name="advanced_options_panel"
+ top_pad="-6"
+ width="210">
+ <view_border
+ bevel_style="in"
+ follows="left|top|right"
+ height="1"
+ left="10"
+ layout="topleft"
+ name="advanced_options_hr"
+ right="-1"
+ top_pad="5"
+ />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="13"
+ layout="topleft"
+ left="10"
+ name="layer_type_label"
+ top_pad="10"
+ width="100">
+ Capture:
+ </text>
+ <combo_box
+ follows="left|top|right"
+ height="23"
+ label="Image Layers"
+ layout="topleft"
+ left="30"
+ name="layer_types"
+ right="-2">
+ <combo_box.item
+ label="Colors"
+ name="Colors"
+ value="colors" />
+ <combo_box.item
+ label="Depth"
+ name="Depth"
+ value="depth" />
+ </combo_box>
+ <check_box
+ label="Interface"
+ layout="topleft"
+ left="30"
+ height="16"
+ top_pad="8"
+ width="180"
+ name="ui_check" />
+ <check_box
+ label="HUDs"
+ layout="topleft"
+ height="16"
+ left="30"
+ top_pad="1"
+ width="180"
+ name="hud_check" />
+ <check_box
+ label="Freeze frame (fullscreen)"
+ layout="topleft"
+ height="16"
+ left="10"
+ top_pad="1"
+ width="180"
+ name="freeze_frame_check" />
+ <check_box
+ label="Auto-refresh"
+ layout="topleft"
+ height="16"
+ left="10"
+ top_pad="1"
+ width="180"
+ name="auto_snapshot_check" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="13"
+ layout="topleft"
+ left="10"
+ name="filter_list_label"
+ top_pad="10"
+ width="50">
+ Filter:
+ </text>
+ <combo_box
+ control_name="PhotoFilters"
+ follows="left|right|top"
+ name="filters_combobox"
+ tool_tip="Image filters"
+ top_delta="-3"
+ left="50"
+ right="-1"
+ height="21"
+ width="135">
+ <combo_box.item
+ label="No Filter"
+ name="NoFilter"
+ value="NoFilter" />
+ </combo_box>
+ <view_border
+ bevel_style="in"
+ follows="left|top|right"
+ height="1"
+ left="10"
+ layout="topleft"
+ name="advanced_options_hr"
+ right="-1"
+ top_pad="7"
+ />
+ </panel>
+ <panel_container
+ follows="left|top"
+ height="230"
+ layout="topleft"
+ left="0"
+ name="panel_container"
+ default_panel_name="panel_snapshot_options"
+ top_pad="10"
+ width="215">
+ <panel
+ class="llpanelsnapshotoptions"
+ filename="panel_snapshot_options.xml"
+ follows="all"
+ layout="topleft"
+ left="0"
+ name="panel_snapshot_options"
+ top="0" />
<panel
- background_visible="true"
- bg_alpha_color="0.9 1 0.9 1"
+ class="llpanelsnapshotprofile"
+ follows="all"
+ layout="topleft"
+ name="panel_snapshot_profile"
+ filename="panel_snapshot_profile.xml" />
+ <panel
+ class="llpanelsnapshotpostcard"
+ follows="all"
+ layout="topleft"
+ name="panel_snapshot_postcard"
+ filename="panel_snapshot_postcard.xml" />
+ <panel
+ class="llpanelsnapshotinventory"
+ follows="all"
+ layout="topleft"
+ name="panel_snapshot_inventory"
+ filename="panel_snapshot_inventory.xml" />
+ <panel
+ class="llpanelsnapshotlocal"
+ follows="all"
+ layout="topleft"
+ name="panel_snapshot_local"
+ filename="panel_snapshot_local.xml" />
+ </panel_container>
+ <view_border
+ bevel_style="in"
+ follows="left|top"
+ height="1"
+ left="10"
+ layout="topleft"
+ name="status_hr"
+ width="199"
+ top_pad="-16"/>
+ <panel
+ background_visible="false"
follows="left|top"
font="SansSerifLarge"
halign="center"
height="20"
layout="topleft"
- left="0"
+ left="10"
length="1"
name="succeeded_panel"
- right="-1"
- top="0"
+ width="198"
+ top_pad="1"
type="string"
visible="false">
<text
@@ -119,7 +317,7 @@
length="1"
name="succeeded_lbl"
right="-1"
- text_color="0.2 0.5 0.2 1"
+ text_color="0.2 0.85 0.2 1"
top="4"
translate="false"
type="string">
@@ -127,18 +325,17 @@
</text>
</panel>
<panel
- background_visible="true"
- bg_alpha_color="1 0.9 0.9 1"
+ background_visible="false"
follows="left|top"
font="SansSerifLarge"
halign="center"
height="20"
layout="topleft"
- left_delta="0"
+ left="10"
length="1"
name="failed_panel"
- right="-1"
- top="0"
+ width="198"
+ top_delta="0"
type="string"
visible="false">
<text
@@ -151,7 +348,7 @@
length="1"
name="failed_lbl"
right="-1"
- text_color="0.5 0.2 0.2 1"
+ text_color="0.95 0.4 0.4 1"
top="4"
translate="false"
type="string">
@@ -160,51 +357,39 @@
</panel>
<loading_indicator
follows="left|top"
- height="48"
+ height="24"
layout="topleft"
name="working_indicator"
- left="101"
- top="46"
+ left="10"
+ top_delta="0"
visible="false"
- width="48" />
+ width="24" />
<text
- follows="left|top|right"
+ follows="left|top"
font="SansSerifBold"
height="14"
layout="topleft"
- left="5"
+ left_pad="3"
length="1"
- halign="center"
+ halign="left"
name="working_lbl"
- right="-5"
- top="98"
+ top_delta="5"
translate="false"
type="string"
visible="false"
- width="130">
+ width="162">
Working
</text>
- <button
- follows="left|top"
- height="22"
- image_overlay="Refresh_Off"
- layout="topleft"
- left="20"
- name="new_snapshot_btn"
- bottom="-20"
- visible="false"
- width="22" />
<text
follows="left|top"
font="SansSerifBold"
halign="left"
height="18"
layout="topleft"
- left_pad="10"
+ left="10"
length="1"
name="refresh_lbl"
- right="-5"
- text_color="red"
+ text_color="0.95 0.4 0.4 1"
top_delta="0"
translate="false"
type="string"
@@ -212,37 +397,44 @@
width="130">
Refresh to save.
</text>
- </ui_ctrl>
+ <ui_ctrl
+ layout="topleft"
+ name="thumbnail_placeholder"
+ top="23"
+ left="215"
+ width="400"
+ height="400"
+ follows="top|left"/>
<view_border
bevel_style="in"
height="21"
- width="250"
layout="topleft"
name="img_info_border"
- top_pad="3"
- follows="left|top"
- left_delta="0"
- />
+ top_pad="0"
+ right="-10"
+ follows="left|top|right"
+ left_delta="0"/>
<text
type="string"
font="SansSerifSmall"
length="1"
- follows="left|top"
+ follows="left|top|right"
height="14"
layout="topleft"
- left_delta="5"
+ left="220"
+ right="-20"
halign="left"
name="image_res_text"
top_delta="5"
- width="100">
- [WIDTH] x [HEIGHT] px
+ width="200">
+ [WIDTH]px (width) x [HEIGHT]px (height)
</text>
<text
- follows="left|top"
+ follows="right|top"
font="SansSerifSmall"
height="14"
layout="topleft"
- left="200"
+ left="-65"
length="1"
halign="right"
name="file_size_label"
@@ -251,161 +443,4 @@
width="50">
[SIZE] KB
</text>
- <panel_container
- follows="left|top"
- height="260"
- layout="topleft"
- left="0"
- name="panel_container"
- default_panel_name="panel_snapshot_options"
- top_pad="10"
- width="270">
- <panel
- class="llpanelsnapshotoptions"
- filename="panel_snapshot_options.xml"
- follows="all"
- layout="topleft"
- left="0"
- name="panel_snapshot_options"
- top="0" />
- <panel
- class="llpanelsnapshotprofile"
- follows="all"
- layout="topleft"
- name="panel_snapshot_profile"
- filename="panel_snapshot_profile.xml" />
- <panel
- class="llpanelsnapshotpostcard"
- follows="all"
- layout="topleft"
- name="panel_snapshot_postcard"
- filename="panel_snapshot_postcard.xml" />
- <panel
- class="llpanelsnapshotinventory"
- follows="all"
- layout="topleft"
- name="panel_snapshot_inventory"
- filename="panel_snapshot_inventory.xml" />
- <panel
- class="llpanelsnapshotlocal"
- follows="all"
- layout="topleft"
- name="panel_snapshot_local"
- filename="panel_snapshot_local.xml" />
- </panel_container>
- <panel
- height="295"
- layout="topleft"
- left="270"
- name="advanced_options_panel"
- top="20"
- width="200">
- <text
- type="string"
- font="SansSerifSmall"
- length="1"
- follows="left|top"
- height="14"
- layout="topleft"
- left="10"
- halign="left"
- name="advanced_options_label"
- right="-10"
- top="10">
- ADVANCED OPTIONS
- </text>
- <view_border
- bevel_style="in"
- follows="left|top|right"
- height="1"
- left="10"
- layout="topleft"
- name="advanced_options_hr"
- right="-10"
- top_pad="5"
- />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="13"
- layout="topleft"
- left="10"
- name="layer_type_label"
- top_pad="10"
- width="50">
- Capture:
- </text>
- <combo_box
- follows="left|top|right"
- height="23"
- label="Image Layers"
- layout="topleft"
- left="30"
- name="layer_types"
- right="-10">
- <combo_box.item
- label="Colors"
- name="Colors"
- value="colors" />
- <combo_box.item
- label="Depth"
- name="Depth"
- value="depth" />
- </combo_box>
- <check_box
- label="Interface"
- layout="topleft"
- left="30"
- top_pad="10"
- width="180"
- name="ui_check" />
- <check_box
- label="HUDs"
- layout="topleft"
- left="30"
- top_pad="10"
- width="180"
- name="hud_check" />
- <check_box
- label="Freeze frame (fullscreen)"
- layout="topleft"
- left="10"
- top_pad="8"
- width="180"
- name="freeze_frame_check" />
- <check_box
- label="Auto-refresh"
- layout="topleft"
- left="10"
- top_pad="8"
- width="180"
- name="auto_snapshot_check" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="13"
- layout="topleft"
- left="10"
- name="filter_list_label"
- top_pad="10"
- width="50">
- Filter:
- </text>
- <combo_box
- control_name="PhotoFilters"
- follows="left|right|top"
- name="filters_combobox"
- tool_tip="Image filters"
- top_pad="8"
- left="30"
- height="21"
- width="135">
- <combo_box.item
- label="No Filter"
- name="NoFilter"
- value="NoFilter" />
- </combo_box>
- </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_top_objects.xml b/indra/newview/skins/default/xui/en/floater_top_objects.xml
index 0b71177345..36ceddd305 100755
--- a/indra/newview/skins/default/xui/en/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml
@@ -38,6 +38,18 @@
name="none_descriptor">
None found.
</floater.string>
+ <floater.string
+ name="URLs">
+ URLs
+ </floater.string>
+ <floater.string
+ name="memory">
+ Memory (KB)
+ </floater.string>
+
+
+
+
<text
type="string"
length="1"
@@ -82,7 +94,7 @@
name="parcel"
width="120" />
<scroll_list.columns
- label="Time"
+ label="Date"
name="time"
width="130" />
<scroll_list.columns
diff --git a/indra/newview/skins/default/xui/en/floater_twitter.xml b/indra/newview/skins/default/xui/en/floater_twitter.xml
index aa5bfce2e9..3e1a91e58d 100644
--- a/indra/newview/skins/default/xui/en/floater_twitter.xml
+++ b/indra/newview/skins/default/xui/en/floater_twitter.xml
@@ -10,21 +10,13 @@
single_instance="true"
reuse_instance="true"
title="TWITTER"
- height="502"
- width="304">
- <panel
- height="502"
- width="304"
- visible="true"
- name="background"
- follows="all"
- top="0"
- left="0">
+ height="462"
+ width="272">
<tab_container
name="tabs"
tab_group="1"
tab_min_width="70"
- tab_height="30"
+ tab_height="21"
tab_position="top"
top="7"
height="457"
@@ -43,17 +35,13 @@
label="ACCOUNT"
name="panel_twitter_account"/>
</tab_container>
- <panel
- name="connection_status_panel"
- follows="left|bottom|right"
- height="24">
<text
name="connection_error_text"
type="string"
follows="left|bottom|right"
- top="5"
- left="9"
- width="250"
+ bottom="-5"
+ left="10"
+ width="252"
height="20"
wrap="true"
halign="left"
@@ -67,16 +55,16 @@
height="24"
width="24"
name="connection_loading_indicator"
- top="2"
- left="9"
+ top_delta="-2"
+ left="10"
visible="true"/>
<text
name="connection_loading_text"
type="string"
follows="left|bottom|right"
- top="5"
+ top_delta="2"
left_pad="5"
- width="250"
+ width="223"
height="20"
wrap="true"
halign="left"
@@ -85,6 +73,4 @@
font="SansSerif">
Loading...
</text>
- </panel>
- </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
index d2519a5aa4..06d0b849a3 100755
--- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
@@ -63,7 +63,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Show Filters"
+ label="Show Filters..."
layout="topleft"
name="show_filters">
<on_click
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 772d81c448..2c7dbc3c18 100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -169,6 +169,16 @@ No tutorial is currently available.
<notification
icon="alertmodal.tga"
+ name="GenericAlertOK"
+ type="alertmodal">
+[MESSAGE]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="BadInstallation"
type="alertmodal">
An error occurred while updating [APP_NAME]. Please [http://get.secondlife.com download the latest version] of the Viewer.
@@ -4631,6 +4641,17 @@ The region you're trying to visit contains [REGIONMATURITY] content, but your cu
<notification
icon="alertmodal.tga"
+ name="RegionTPSpecialUsageBlocked"
+ type="alertmodal">
+ <tag>fail</tag>
+ Unable to enter region. '[REGION_NAME]' is a Skill Gaming Region, and you must meet certain criteria in order to enter. For details, please review the [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ].
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="PreferredMaturityChanged"
type="alertmodal">
You won't receive any more notifications that you're about to visit a region with [RATING] content. You may change your content preferences in the future by using Me &gt; Preferences &gt; General from the menu bar.
diff --git a/indra/newview/skins/default/xui/en/panel_facebook_account.xml b/indra/newview/skins/default/xui/en/panel_facebook_account.xml
deleted file mode 100644
index 122cbfb717..0000000000
--- a/indra/newview/skins/default/xui/en/panel_facebook_account.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<panel
- height="400"
- width="304"
- layout="topleft"
- follows="all"
- name="panel_facebook_account">
- <string
- name="facebook_connected"
- value="You are connected to Facebook as:" />
- <string
- name="facebook_disconnected"
- value="Not connected to Facebook" />
- <text
- layout="topleft"
- length="1"
- follows="top|left"
- font="SansSerif"
- height="16"
- left="9"
- name="account_caption_label"
- top="21"
- type="string">
- Not connected to Facebook.
- </text>
- <text
- layout="topleft"
- top_pad="2"
- length="1"
- follows="top|left"
- font="SansSerif"
- height="16"
- left="9"
- name="account_name_label"
- parse_urls="true"
- type="string"/>
- <panel
- layout="topleft"
- follows="left|top"
- name="panel_buttons"
- height="345"
- left="9">
- <button
- layout="topleft"
- follows="left|top"
- top_pad="9"
- visible="true"
- height="23"
- label="Connect..."
- name="connect_btn"
- width="210">
- <commit_callback function="SocialSharing.Connect"/>
- </button>
-
- <button
- layout="topleft"
- follows="left|top"
- top_delta="0"
- height="23"
- label="Disconnect"
- name="disconnect_btn"
- width="210"
- visible="false">
- <commit_callback function="SocialSharing.Disconnect"/>
- </button>
- <text
- layout="topleft"
- length="1"
- follows="top|left"
- height="16"
- left="0"
- name="account_learn_more_label"
- top_pad="20"
- type="string">
- [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Learn about posting to Facebook]
- </text>
- </panel>
-</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_facebook_friends.xml b/indra/newview/skins/default/xui/en/panel_facebook_friends.xml
index 9d21a3a293..97994fb08b 100644
--- a/indra/newview/skins/default/xui/en/panel_facebook_friends.xml
+++ b/indra/newview/skins/default/xui/en/panel_facebook_friends.xml
@@ -1,6 +1,6 @@
<panel
height="400"
- width="304"
+ width="272"
layout="topleft"
follows="all"
name="panel_facebook_friends">
@@ -9,17 +9,17 @@
value="You currently do not have any Facebook friends who are also Second Life residents. Ask your Facebook friends to join Second Life today!" />
<string
name="facebook_friends_no_connected"
- value="You're currently not connected to Facebook. Please go to the Account tab to connect and enable this feature." />
+ value="You're currently not connected to Facebook. Please go to the Status tab to connect and enable this feature." />
<accordion
- background_visible="true"
+ background_visible="false"
bg_alpha_color="DkGray2"
bg_opaque_color="DkGray2"
follows="all"
- height="408"
+ height="383"
layout="topleft"
- left="3"
+ left="10"
name="friends_accordion"
- right="-2"
+ right="-10"
top_pad="2">
<accordion_tab
layout="topleft"
@@ -36,7 +36,7 @@
name="second_life_friends"
show_permissions_granted="true"
top="0"
- width="307" />
+ width="272" />
</accordion_tab>
<accordion_tab
layout="topleft"
@@ -53,19 +53,20 @@
name="suggested_friends"
show_permissions_granted="true"
top="0"
- width="307" />
+ width="272" />
</accordion_tab>
</accordion>
<text
layout="topleft"
word_wrap="true"
height="64"
- width="290"
+ width="250"
follows="top|left|right"
font="SansSerif"
- left="9"
+ left="10"
+ right="-10"
name="facebook_friends_status"
- top="21"
+ top="5"
type="string">
Not connected to Facebook.
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_facebook_photo.xml b/indra/newview/skins/default/xui/en/panel_facebook_photo.xml
index b5b6dee004..22e6598352 100644
--- a/indra/newview/skins/default/xui/en/panel_facebook_photo.xml
+++ b/indra/newview/skins/default/xui/en/panel_facebook_photo.xml
@@ -1,29 +1,19 @@
<panel
height="400"
- width="304"
+ width="272"
layout="topleft"
follows="all"
name="panel_facebook_photo">
- <layout_stack
- layout="topleft"
- border_size="0"
- height="392"
- follows="all"
- orientation="vertical"
- name="stack_photo"
- top="8">
- <layout_panel
- name="snapshot_panel"
- height="367">
<combo_box
control_name="FacebookPhotoResolution"
follows="left|top"
- top="6"
- left="9"
+ layout="topleft"
+ top="7"
+ left="10"
name="resolution_combobox"
tool_tip="Image resolution"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -47,13 +37,14 @@
</combo_box>
<combo_box
control_name="FacebookPhotoFilters"
- follows="right|top"
+ follows="left|top"
+ layout="topleft"
name="filters_combobox"
tool_tip="Image filters"
- top="6"
- left="165"
+ top="7"
+ left_pad="4"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="No Filter"
name="NoFilter"
@@ -61,48 +52,62 @@
</combo_box>
<panel
height="150"
- width="250"
+ width="252"
visible="true"
+ layout="topleft"
name="thumbnail_placeholder"
- top="33"
- follows="left|top|right"
- left="9">
+ top_pad="5"
+ follows="left|top|rith"
+ right="-10"
+ left="10">
</panel>
- <button
- follows="left|top"
- height="23"
- label="Refresh"
- left="9"
- top_pad="5"
- name="new_snapshot_btn"
- tool_tip="Click to refresh"
- visible="true"
- width="100" >
- <button.commit_callback
- function="SocialSharing.RefreshPhoto" />
- </button>
- <text
+ <text
follows="left|top"
+ layout="topleft"
font="SansSerif"
text_color="EmphasisColor"
height="14"
- top_pad="-19"
- left_pad="-30"
+ top_pad="2"
+ left="10"
length="1"
halign="center"
name="working_lbl"
translate="false"
type="string"
visible="true"
- width="150">
+ width="251">
Refreshing...
</text>
+ <view_border
+ bevel_style="in"
+ follows="left|top"
+ layout="topleft"
+ height="1"
+ left="10"
+ name="refresh_border"
+ width="250"
+ top_pad="0"/>
+ <button
+ follows="left|top"
+ layout="topleft"
+ height="23"
+ label="Refresh"
+ left="10"
+ top_pad="5"
+ name="new_snapshot_btn"
+ tool_tip="Click to refresh"
+ visible="true"
+ width="100" >
+ <button.commit_callback
+ function="SocialSharing.RefreshPhoto" />
+ </button>
<button
follows="right|top"
+ layout="topleft"
height="23"
label="Preview"
- left="200"
- top_pad="-19"
+ right="-10"
+ top_delta="0"
name="big_preview_btn"
tool_tip="Click to toggle preview"
is_toggle="true"
@@ -114,9 +119,10 @@
<text
length="1"
follows="top|left|right"
+ layout="topleft"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="caption_label"
top_pad="20"
type="string">
@@ -124,23 +130,22 @@
</text>
<text_editor
follows="left|top|right|bottom"
+ layout="topleft"
height="87"
width="250"
- left="9"
+ left="10"
+ right="-10"
length="1"
max_length="700"
name="photo_caption"
type="string"
word_wrap="true">
</text_editor>
- </layout_panel>
- <layout_panel
- name="photo_button_panel"
- height="25">
<button
- follows="left|bottom"
- top="0"
- left="9"
+ follows="left|top"
+ layout="topleft"
+ top_pad="22"
+ left="10"
height="23"
label="Post"
name="post_photo_btn"
@@ -149,16 +154,15 @@
function="SocialSharing.SendPhoto" />
</button>
<button
- follows="left|bottom"
+ follows="right|top"
+ layout="topleft"
height="23"
label="Cancel"
name="cancel_photo_btn"
- left_pad="15"
+ right="-10"
top_delta="0"
width="100">
<button.commit_callback
function="SocialSharing.Cancel" />
- </button>
- </layout_panel>
- </layout_stack>
+ </button>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_facebook_place.xml b/indra/newview/skins/default/xui/en/panel_facebook_place.xml
index 84c87df523..f87b008c4e 100644
--- a/indra/newview/skins/default/xui/en/panel_facebook_place.xml
+++ b/indra/newview/skins/default/xui/en/panel_facebook_place.xml
@@ -1,115 +1,96 @@
<panel
height="400"
- width="304"
+ width="272"
layout="topleft"
follows="all"
name="panel_facebook_place">
- <layout_stack
- layout="topleft"
- border_size="0"
- height="392"
- follows="all"
- orientation="vertical"
- name="stack_place"
- top="8">
- <layout_panel
- name="place_detail_panel"
- height="181">
<text
length="1"
follows="top|left|right"
+ layout="topleft"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="place_caption_label"
- top="13"
+ top="5"
type="string">
Say something about where you are:
</text>
<text_editor
follows="top|left|right"
- height="150"
+ layout="topleft"
+ height="70"
width="250"
- left="9"
+ left="10"
+ right="-10"
length="1"
max_length="700"
name="place_caption"
type="string"
word_wrap="true">
</text_editor>
- </layout_panel>
- <layout_panel
- name="place_map_panel"
- height="186">
+ <check_box
+ follows="left|top"
+ layout="topleft"
+ initial_value="false"
+ height="16"
+ top_pad="8"
+ width="8"
+ label="Include overhead view of location"
+ name="add_place_view_cb"
+ left="10"/>
<panel
follows="left|top"
- height="128"
- width="128"
+ layout="topleft"
+ height="243"
+ width="250"
background_visible="true"
bg_opaque_color="Black"
bg_alpha_color="Black"
- top="20"
- left="9"
+ top_pad="8"
+ left="10"
+ right="-12"
visible="true"
name="map_border">
</panel>
- <loading_indicator
- follows="left|top"
- height="24"
- width="24"
- name="map_loading_indicator"
- top="77"
- left="61"
- visible="true"/>
<icon
follows="left|top"
- height="128"
- width="128"
+ layout="topleft"
+ height="243"
+ width="250"
image_name="Map_Placeholder_Icon"
- layout="topleft"
- top="20"
- left="9"
+ top_delta="0"
+ right="-12"
+ left="10"
visible="true"
name="map_placeholder">
</icon>
<icon
follows="left|top"
- height="128"
- width="128"
+ layout="topleft"
+ height="243"
+ width="250"
image_name="Map_Placeholder_Icon"
- layout="topleft"
- top="20"
- left="9"
+ top_delta="0"
+ left="10"
+ right="-12"
visible="true"
name="map_default">
</icon>
- <check_box
+ <loading_indicator
follows="left|top"
- initial_value="false"
- top_delta="8"
- width="8"
- label=""
- name="add_place_view_cb"
- left_pad="5"/>
- <text
- follows="left|top"
- font="SansSerif"
- height="32"
- width="130"
- word_wrap="true"
- left_pad="12"
- top_delta="-8"
- type="string">
- Include overhead view of location
- </text>
- </layout_panel>
- <layout_panel
- name="place_button_panel"
- height="25">
+ layout="topleft"
+ height="24"
+ width="24"
+ name="map_loading_indicator"
+ top_delta="116"
+ left="126"
+ visible="false"/>
<button
follows="left|bottom"
- top="0"
- left="9"
+ layout="topleft"
+ top_pad="95"
+ left="10"
height="23"
label="Post"
name="post_place_btn"
@@ -118,16 +99,15 @@
function="SocialSharing.SendCheckin" />
</button>
<button
- follows="left|bottom"
+ follows="right|bottom"
+ layout="topleft"
height="23"
label="Cancel"
name="cancel_place_btn"
- left_pad="15"
+ right="-10"
top_delta="0"
width="100">
<button.commit_callback
function="SocialSharing.Cancel" />
</button>
- </layout_panel>
- </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_facebook_status.xml b/indra/newview/skins/default/xui/en/panel_facebook_status.xml
index 480abec558..fe0f3c9279 100644
--- a/indra/newview/skins/default/xui/en/panel_facebook_status.xml
+++ b/indra/newview/skins/default/xui/en/panel_facebook_status.xml
@@ -1,50 +1,113 @@
<panel
height="400"
- width="304"
+ width="272"
follows="all"
layout="topleft"
name="panel_facebook_status">
- <layout_stack
+ <string
+ name="facebook_connected"
+ value="You are connected to Facebook as:" />
+ <string
+ name="facebook_disconnected"
+ value="Not connected to Facebook" />
+ <text
+ layout="topleft"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ left="10"
+ name="account_caption_label"
+ top="5"
+ type="string">
+ Not connected to Facebook.
+ </text>
+ <text
+ layout="topleft"
+ top_pad="2"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ left="10"
+ name="account_name_label"
+ parse_urls="true"
+ type="string"/>
+ <panel
+ layout="topleft"
+ follows="left|top"
+ name="panel_buttons"
+ height="60"
+ left="0">
+ <button
+ layout="topleft"
+ follows="left|top"
+ top_pad="9"
+ left="10"
+ visible="true"
+ height="23"
+ label="Connect..."
+ name="connect_btn"
+ width="251">
+ <commit_callback function="SocialSharing.Connect"/>
+ </button>
+
+ <button
+ layout="topleft"
+ follows="left|top|right"
+ top_delta="0"
+ left="10"
+ right="-10"
+ height="23"
+ label="Disconnect"
+ name="disconnect_btn"
+ width="210"
+ visible="false">
+ <commit_callback function="SocialSharing.Disconnect"/>
+ </button>
+ <text
layout="topleft"
- border_size="0"
- height="392"
- follows="all"
- orientation="vertical"
- name="stack_status"
- top="8">
- <layout_panel
- name="status_detail_panel"
- height="367">
+ length="1"
+ follows="top|left|right"
+ left="10"
+ right="-10"
+ height="16"
+ name="account_learn_more_label"
+ top_pad="5"
+ type="string">
+ [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Learn about posting to Facebook]
+ </text>
+ </panel>
+
<text
length="1"
+ layout="topleft"
follows="top|left|right"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="status_caption_label"
- top="13"
+ top_pad="5"
type="string">
What's on your mind?
</text>
<text_editor
follows="left|top|right"
+ layout="topleft"
height="150"
- width="250"
- left="9"
+ width="252"
+ left="10"
length="1"
max_length="700"
name="status_message"
type="string"
word_wrap="true">
</text_editor>
- </layout_panel>
- <layout_panel
- name="status_button_panel"
- height="25">
<button
- follows="left|bottom"
- top="0"
- left="9"
+ follows="left|top"
+ layout="topleft"
+ top_pad="6"
+ left="10"
height="23"
label="Post"
name="post_status_btn"
@@ -53,16 +116,15 @@
function="SocialSharing.SendStatus" />
</button>
<button
- follows="left|bottom"
+ follows="right|top"
+ layout="topleft"
height="23"
label="Cancel"
name="cancel_status_btn"
- left_pad="15"
+ right="-10"
top_delta="0"
width="100">
<button.commit_callback
function="SocialSharing.Cancel" />
</button>
- </layout_panel>
- </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_flickr_account.xml b/indra/newview/skins/default/xui/en/panel_flickr_account.xml
index 506d2e2f74..5c2f335780 100644
--- a/indra/newview/skins/default/xui/en/panel_flickr_account.xml
+++ b/indra/newview/skins/default/xui/en/panel_flickr_account.xml
@@ -1,6 +1,6 @@
<panel
height="540"
- width="304"
+ width="272"
layout="topleft"
name="panel_flickr_account">
<string
@@ -15,9 +15,9 @@
follows="top|left"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="account_caption_label"
- top="21"
+ top="5"
type="string">
Not connected to Flickr.
</text>
@@ -28,7 +28,7 @@
follows="top|left"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="account_name_label"
parse_urls="true"
type="string"/>
@@ -36,12 +36,14 @@
layout="topleft"
name="panel_buttons"
height="345"
- left="9">
+ left="0">
<button
layout="topleft"
- follows="left|top"
+ follows="left|top|right"
top_pad="9"
visible="true"
+ left="10"
+ right="-10"
height="23"
label="Connect..."
name="connect_btn"
@@ -51,8 +53,10 @@
<button
layout="topleft"
- follows="left|top"
+ follows="left|top|right"
top_delta="0"
+ left="10"
+ right="-10"
height="23"
label="Disconnect"
name="disconnect_btn"
@@ -65,9 +69,9 @@
length="1"
follows="top|left"
height="16"
- left="0"
+ left="10"
name="account_learn_more_label"
- top_pad="20"
+ top_pad="5"
type="string">
[http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Learn about posting to Flickr]
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_flickr_photo.xml b/indra/newview/skins/default/xui/en/panel_flickr_photo.xml
index 8d8ef45c0d..e31695645d 100644
--- a/indra/newview/skins/default/xui/en/panel_flickr_photo.xml
+++ b/indra/newview/skins/default/xui/en/panel_flickr_photo.xml
@@ -1,28 +1,19 @@
<panel
height="540"
- width="304"
+ width="272"
+ follows="all"
layout="topleft"
name="panel_flickr_photo">
- <layout_stack
- layout="topleft"
- border_size="0"
- height="532"
- follows="all"
- orientation="vertical"
- name="stack_photo"
- top="8">
- <layout_panel
- name="snapshot_panel"
- height="507">
<combo_box
control_name="FlickrPhotoResolution"
follows="left|top"
- top="6"
- left="9"
+ layout="topleft"
+ top="7"
+ left="10"
name="resolution_combobox"
tool_tip="Image resolution"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -42,13 +33,14 @@
</combo_box>
<combo_box
control_name="FlickrPhotoFilters"
- follows="right|top"
+ follows="left|top"
+ layout="topleft"
name="filters_combobox"
tool_tip="Image filters"
- top="6"
- left="165"
+ top_delta="0"
+ left_pad="4"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="No Filter"
name="NoFilter"
@@ -59,45 +51,59 @@
width="250"
visible="true"
name="thumbnail_placeholder"
- top="33"
- follows="left|top"
- left="9">
+ top_pad="5"
+ follows="left|top|right"
+ layout="topleft"
+ right="-10"
+ left="10">
</panel>
- <button
- follows="left|top"
- height="23"
- label="Refresh"
- left="9"
- top_pad="5"
- name="new_snapshot_btn"
- tool_tip="Click to refresh"
- visible="true"
- width="100" >
- <button.commit_callback
- function="SocialSharing.RefreshPhoto" />
- </button>
- <text
+ <text
follows="left|top"
+ layout="topleft"
font="SansSerif"
text_color="EmphasisColor"
height="14"
- top_pad="-19"
- left_pad="-30"
+ top_pad="2"
+ left="10"
length="1"
halign="center"
name="working_lbl"
translate="false"
type="string"
visible="true"
- width="150">
+ width="251">
Refreshing...
</text>
+ <view_border
+ bevel_style="in"
+ follows="left|top"
+ layout="topleft"
+ height="1"
+ left="10"
+ name="refresh_border"
+ width="250"
+ top_pad="0"/>
+ <button
+ follows="left|top"
+ layout="topleft"
+ height="23"
+ label="Refresh"
+ left="10"
+ top_pad="5"
+ name="new_snapshot_btn"
+ tool_tip="Click to refresh"
+ visible="true"
+ width="100" >
+ <button.commit_callback
+ function="SocialSharing.RefreshPhoto" />
+ </button>
<button
follows="right|top"
+ layout="topleft"
height="23"
label="Preview"
- left="200"
- top_pad="-19"
+ right="-10"
+ top_delta="0"
name="big_preview_btn"
tool_tip="Click to toggle preview"
is_toggle="true"
@@ -109,19 +115,21 @@
<text
length="1"
follows="top|left|right"
+ layout="topleft"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="title_label"
- top_pad="15"
+ top_pad="10"
type="string">
Title:
</text>
<line_editor
follows="left|top"
+ layout="topleft"
height="20"
width="250"
- left="9"
+ left="10"
length="1"
max_length="256"
name="photo_title"
@@ -130,19 +138,23 @@
<text
length="1"
follows="top|left|right"
+ layout="topleft"
font="SansSerif"
height="16"
- left="9"
+ left="10"
+ right="-10"
name="description_label"
top_pad="10"
+ width="25"
type="string">
Description:
</text>
<text_editor
follows="left|top"
+ layout="topleft"
height="50"
- width="250"
- left="9"
+ width="249"
+ left="10"
length="1"
max_length="700"
name="photo_description"
@@ -151,6 +163,7 @@
</text_editor>
<check_box
follows="left|top"
+ layout="topleft"
initial_value="true"
label="Include SL location at end of description"
name="add_location_cb"
@@ -159,23 +172,25 @@
top_pad="8"/>
<text
length="1"
- follows="top|left|right"
+ follows="top|left"
+ layout="topleft"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="tags_label"
- top_pad="10"
+ top_pad="6"
type="string">
Tags:
</text>
<text
length="1"
follows="top|left"
+ layout="topleft"
font="SansSerifSmall"
text_color="White_50"
height="30"
name="tags_help_label"
- left="50"
+ left="51"
top_pad="-16"
type="string">
Separate tags with spaces
@@ -183,9 +198,10 @@ Use "" for multi-word tags
</text>
<text_editor
follows="left|top"
+ layout="topleft"
height="50"
- width="250"
- left="9"
+ width="249"
+ left="10"
length="1"
max_length="700"
name="photo_tags"
@@ -195,8 +211,9 @@ Use "" for multi-word tags
<combo_box
control_name="FlickrPhotoRating"
follows="left|top"
- top_pad="16"
- left="9"
+ layout="topleft"
+ top_pad="7"
+ left="10"
name="rating_combobox"
tool_tip="Flickr content rating"
height="21"
@@ -214,14 +231,11 @@ Use "" for multi-word tags
name="RestrictedRating"
value="3" />
</combo_box>
- </layout_panel>
- <layout_panel
- name="photo_button_panel"
- height="25">
<button
follows="left|top"
- top="0"
- left="9"
+ layout="topleft"
+ top_pad="7"
+ left="10"
height="23"
label="Upload"
name="post_photo_btn"
@@ -230,16 +244,15 @@ Use "" for multi-word tags
function="SocialSharing.SendPhoto" />
</button>
<button
- follows="left|top"
+ follows="right|top"
+ layout="topleft"
height="23"
label="Cancel"
name="cancel_photo_btn"
- left_pad="15"
+ right="-10"
top_delta="0"
width="100">
<button.commit_callback
function="SocialSharing.Cancel" />
- </button>
- </layout_panel>
- </layout_stack>
+ </button>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_postcard_message.xml b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
index ab2a42ea01..331a08b4bb 100755
--- a/indra/newview/skins/default/xui/en/panel_postcard_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_postcard_message.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- height="380"
+ height="319"
layout="topleft"
name="panel_postcard_message"
width="490">
@@ -12,7 +12,7 @@
font="SansSerif"
height="16"
layout="topleft"
- left="12"
+ left="5"
name="to_label"
top="10"
width="60">
@@ -25,7 +25,7 @@
layout="topleft"
left_pad="10"
name="to_form"
- right="-10"
+ right="-3"
top_delta="-4" />
<text
type="string"
@@ -35,7 +35,7 @@
font="SansSerif"
height="16"
layout="topleft"
- left="12"
+ left="5"
name="name_label"
width="60">
From:
@@ -47,7 +47,7 @@
left_pad="10"
max_length_bytes="100"
name="name_form"
- right="-10"
+ right="-3"
top_delta="-4" />
<text
type="string"
@@ -57,7 +57,7 @@
font="SansSerif"
height="16"
layout="topleft"
- left="12"
+ left="5"
name="subject_label"
width="60">
Subject:
@@ -65,61 +65,24 @@
<line_editor
follows="left|top|right"
height="20"
- label="Type your subject here."
layout="topleft"
left_pad="10"
max_length_bytes="100"
name="subject_form"
- right="-10"
+ right="-3"
top_delta="-4" />
- <text
- type="string"
- length="1"
- bottom_delta="23"
- follows="top|left|right"
- font="SansSerif"
- layout="topleft"
- left="12"
- name="msg_label"
- right="-10">
- Message:
- </text>
<text_editor
type="string"
length="1"
follows="left|top|right"
- height="60"
+ height="48"
layout="topleft"
- left_delta="0"
+ left="5"
max_length="700"
name="msg_form"
- right="-10"
- top_pad="10"
+ right="-4"
+ top_pad="5"
word_wrap="true">
Type your message here.
</text_editor>
- <button
- follows="right|bottom"
- height="23"
- label="Cancel"
- layout="topleft"
- name="cancel_btn"
- right="-32"
- top="350"
- width="100">
- <button.commit_callback
- function="Postcard.Cancel" />
- </button>
- <button
- follows="right|bottom"
- height="23"
- label="Send"
- layout="topleft"
- left_delta="-106"
- name="send_btn"
- top_delta="0"
- width="100">
- <button.commit_callback
- function="Postcard.Send" />
- </button>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_postcard_settings.xml b/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
index 3f67a48b14..525149d7ee 100755
--- a/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/en/panel_postcard_settings.xml
@@ -9,10 +9,10 @@
height="23"
label="Resolution"
layout="topleft"
- left="10"
+ left="5"
name="postcard_size_combo"
- right="-10"
- top_pad="10">
+ right="-3"
+ top_pad="5">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -34,103 +34,55 @@
name="Custom"
value="[i-1,i-1]" />
</combo_box>
- <layout_stack
- animate="false"
- follows="all"
- height="275"
- layout="bottomleft"
- name="postcard_image_params_ls"
- left_delta="0"
- orientation="vertical"
- top_pad="10"
- right="-10">
- <layout_panel
- follows="top|left|right"
- height="60"
- layout="topleft"
- left="0"
- name="postcard_image_size_lp"
- auto_resize="false"
- top="0"
- right="-1"
- visible="true">
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Width"
- label_width="40"
- layout="topleft"
- left="10"
- max_val="6016"
- min_val="32"
- name="postcard_snapshot_width"
- top_pad="10"
- width="95" />
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Height"
- label_width="40"
- layout="topleft"
- left_pad="5"
- max_val="6016"
- min_val="32"
- name="postcard_snapshot_height"
- top_delta="0"
- width="95" />
- <check_box
- height="10"
- bottom_delta="20"
- follows="left|top"
- label="Constrain proportions"
- layout="topleft"
- left="10"
- name="postcard_keep_aspect_check" />
- </layout_panel>
- <layout_panel
- follows="top|left|right"
- height="23"
- layout="topleft"
- left="0"
- name="postcard_image_format_quality_lp"
- auto_resize="true"
- top="0"
- right="-1"
- visible="true">
- <slider
- decimal_digits="0"
- follows="left|top"
- height="15"
- increment="1"
- initial_value="75"
- label="Image quality"
- label_width="80"
- layout="topleft"
- left="0"
- max_val="100"
- name="image_quality_slider"
- top_pad="7"
- width="190" />
- <text
- type="string"
- follows="left|top"
- font="SansSerifSmall"
- length="1"
- height="14"
- layout="topleft"
- left_pad="-5"
- halign="left"
- name="image_quality_level"
- top_delta="0"
- width="60">
- ([QLVL])
- </text>
- </layout_panel>
- </layout_stack>
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label="Width x Height"
+ label_width="90"
+ layout="topleft"
+ left="5"
+ max_val="6016"
+ min_val="32"
+ name="postcard_snapshot_width"
+ top_pad="5"
+ width="144" />
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label=""
+ label_width="0"
+ layout="topleft"
+ left_pad="0"
+ max_val="6016"
+ min_val="32"
+ name="postcard_snapshot_height"
+ top_delta="0"
+ width="52" />
+ <check_box
+ top_pad="12"
+ follows="left|top"
+ label="Constrain proportions"
+ layout="topleft"
+ left="5"
+ name="postcard_keep_aspect_check" />
+ <slider
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="1"
+ initial_value="75"
+ label="Quality:"
+ label_width="45"
+ layout="topleft"
+ left="5"
+ max_val="100"
+ name="image_quality_slider"
+ top_pad="6"
+ width="190" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
index 71d808fa4b..ea579c6dae 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
@@ -12,12 +12,12 @@
left="12"
mouse_opaque="true"
name="title_icon"
- top="5"
+ top="6"
width="18" />
<text
follows="top|left|right"
font="SansSerifBold"
- height="20"
+ height="14"
layout="topleft"
left_pad="12"
length="1"
@@ -25,46 +25,28 @@
right="-10"
text_color="white"
type="string"
- top_delta="5">
- Save to My Inventory
+ top_delta="3">
+ Inventory
</text>
<view_border
bevel_style="in"
follows="left|top|right"
height="1"
- left="10"
+ left="9"
layout="topleft"
name="hr"
- right="-10"
+ right="-5"
top_pad="5"
/>
- <text
- bottom="35"
- follows="top|left|right"
- font="SansSerif"
- height="56"
- layout="topleft"
- left="12"
- length="1"
- name="hint_lbl"
- top_pad="10"
- type="string"
- word_wrap="true">
- Saving an image to your inventory costs L$[UPLOAD_COST]. To save your image as a texture select one of the square formats.
- </text>
<combo_box
follows="top|left|right"
- height="23"
+ height="20"
label="Resolution"
layout="topleft"
left_delta="0"
name="texture_size_combo"
- right="-10"
- top_pad="10">
- <combo_box.item
- label="Current Window"
- name="CurrentWindow"
- value="[i0,i0]" />
+ right="-5"
+ top_pad="5">
<combo_box.item
label="Small (128x128)"
name="Small(128x128)"
@@ -88,61 +70,74 @@
follows="left|top"
height="20"
increment="32"
- label="Width"
- label_width="40"
+ label="Width x Height"
+ label_width="90"
layout="topleft"
left="10"
max_val="6016"
min_val="32"
name="inventory_snapshot_width"
- top_pad="10"
- width="95" />
+ top_pad="7"
+ width="144" />
<spinner
allow_text_entry="false"
decimal_digits="0"
follows="left|top"
height="20"
increment="32"
- label="Height"
- label_width="40"
+ label=""
+ label_width="0"
layout="topleft"
- left_pad="5"
+ left_pad="0"
max_val="6016"
min_val="32"
name="inventory_snapshot_height"
top_delta="0"
- width="95" />
+ width="54" />
<check_box
- bottom_delta="20"
- height="10"
+ top_pad="12"
follows="left|top"
label="Constrain proportions"
layout="topleft"
left="10"
name="inventory_keep_aspect_check"
visible="false" />
+ <text
+ follows="top|left"
+ font="SansSerif"
+ height="56"
+ layout="topleft"
+ left="10"
+ length="1"
+ name="hint_lbl"
+ top_pad="6"
+ width="200"
+ type="string"
+ word_wrap="true">
+ Saving an image to your inventory costs L$[UPLOAD_COST]. To save your image as a texture select one of the square formats.
+ </text>
<button
follows="right|bottom"
height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
- right="-32"
- top="350"
- width="100">
+ right="-5"
+ top="337"
+ width="97">
<button.commit_callback
function="Inventory.Cancel" />
</button>
<button
- follows="right|bottom"
+ follows="left|bottom"
height="23"
label="Save"
layout="topleft"
- left_delta="-106"
+ left="10"
name="save_btn"
top_delta="0"
- width="100">
+ width="97">
<button.commit_callback
function="Inventory.Save" />
</button>
-</panel>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
index 781ab17403..188c9f8707 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_local.xml
@@ -12,12 +12,12 @@
left="12"
mouse_opaque="true"
name="title_icon"
- top="5"
+ top="7"
width="18" />
<text
follows="top|left|right"
font="SansSerifBold"
- height="20"
+ height="14"
layout="topleft"
left_pad="12"
length="1"
@@ -25,28 +25,27 @@
right="-10"
text_color="white"
type="string"
- top_delta="4">
- Save to My Computer
+ top_delta="2">
+ Disk
</text>
<view_border
bevel_style="in"
follows="left|top|right"
height="1"
- left="10"
+ left="9"
layout="topleft"
name="hr"
- right="-10"
- top_pad="5"
- />
+ right="-5"
+ top_pad="5"/>
<combo_box
follows="left|top|right"
- height="23"
+ height="20"
label="Resolution"
layout="topleft"
left_delta="0"
name="local_size_combo"
- right="-10"
- top_pad="10">
+ right="-5"
+ top_pad="5">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -80,149 +79,114 @@
name="Custom"
value="[i-1,i-1]" />
</combo_box>
- <layout_stack
- animate="false"
- follows="all"
- height="275"
- layout="bottomleft"
- name="local_image_params_ls"
- left_delta="0"
- orientation="vertical"
- top_pad="10"
- right="-10">
- <layout_panel
- follows="top|left|right"
- height="60"
- layout="topleft"
- left="0"
- name="local_image_size_lp"
- auto_resize="false"
- top="0"
- right="-1"
- visible="true">
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Width"
- label_width="40"
- layout="topleft"
- left="10"
- max_val="6016"
- min_val="32"
- name="local_snapshot_width"
- top_pad="10"
- width="95" />
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Height"
- label_width="40"
- layout="topleft"
- left_pad="5"
- max_val="6016"
- min_val="32"
- name="local_snapshot_height"
- top_delta="0"
- width="95" />
- <check_box
- bottom_delta="20"
- height="10"
- follows="left|top"
- label="Constrain proportions"
- layout="topleft"
- left="10"
- name="local_keep_aspect_check" />
- </layout_panel>
- <layout_panel
- follows="top|left|right"
- height="23"
- layout="topleft"
- left="0"
- name="local_image_format_quality_lp"
- auto_resize="true"
- top="0"
- right="-1"
- visible="true">
- <combo_box
- follows="left|top"
- height="23"
- label="Format"
- layout="topleft"
- left_delta="0"
- name="local_format_combo"
- top_pad="0"
- width="120">
- <combo_box.item
- label="PNG (Lossless)"
- name="PNG"
- value="PNG" />
- <combo_box.item
- label="JPEG"
- name="JPEG"
- value="JPEG" />
- <combo_box.item
- label="BMP (Lossless)"
- name="BMP"
- value="BMP" />
- </combo_box>
- <slider
- decimal_digits="0"
- follows="left|top"
- height="15"
- increment="1"
- initial_value="75"
- label="Image quality"
- label_width="80"
- layout="topleft"
- left="10"
- max_val="100"
- name="image_quality_slider"
- top_pad="7"
- width="200" />
- <text
- type="string"
- follows="left|top"
- font="SansSerifSmall"
- length="1"
- height="14"
- layout="topleft"
- left_pad="-5"
- halign="left"
- name="image_quality_level"
- top_delta="0"
- width="60">
- ([QLVL])
- </text>
- </layout_panel>
- </layout_stack>
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label="Width x Height"
+ label_width="90"
+ layout="topleft"
+ left="10"
+ max_val="6016"
+ min_val="32"
+ name="local_snapshot_width"
+ top_pad="7"
+ width="144" />
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label=""
+ label_width="0"
+ layout="topleft"
+ left_pad="0"
+ max_val="6016"
+ min_val="32"
+ name="local_snapshot_height"
+ top_delta="0"
+ width="54" />
+ <check_box
+ top_pad="12"
+ follows="left|top"
+ label="Constrain proportions"
+ layout="topleft"
+ left="10"
+ name="local_keep_aspect_check" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="13"
+ layout="topleft"
+ left="10"
+ name="local_format_label"
+ top_pad="7"
+ width="50">
+ Format:
+ </text>
+ <combo_box
+ follows="left|top|right"
+ height="20"
+ label="Format"
+ layout="topleft"
+ left="65"
+ right="-5"
+ name="local_format_combo"
+ top_delta="-3"
+ width="120">
+ <combo_box.item
+ label="PNG (Lossless)"
+ name="PNG"
+ value="PNG" />
+ <combo_box.item
+ label="JPEG"
+ name="JPEG"
+ value="JPEG" />
+ <combo_box.item
+ label="BMP (Lossless)"
+ name="BMP"
+ value="BMP" />
+ </combo_box>
+ <slider
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="1"
+ initial_value="75"
+ label="Quality:"
+ label_width="45"
+ layout="topleft"
+ left="10"
+ max_val="100"
+ name="image_quality_slider"
+ top_pad="6"
+ width="203" />
<button
follows="right|bottom"
height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
- right="-32"
- top="350"
- width="100">
+ right="-5"
+ top="337"
+ width="97">
<button.commit_callback
function="Local.Cancel" />
</button>
<flyout_button
- follows="right|bottom"
+ follows="left|bottom"
height="23"
label="Save"
layout="topleft"
- left_delta="-106"
+ left="10"
name="save_btn"
tool_tip="Save image to a file"
top_delta="0"
- width="100">
+ width="97">
<flyout_button.item
label="Save"
name="save_item"
@@ -232,4 +196,4 @@
name="saveas_item"
value="save as" />
</flyout_button>
-</panel>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
index eff60f8228..265217ef60 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml
@@ -4,117 +4,124 @@
height="240"
layout="topleft"
name="panel_snapshot_options"
- width="490">
+ width="208">
+ <button
+ follows="left|top"
+ font="SansSerif"
+ halign="left"
+ height="22"
+ image_overlay="Snapshot_Download"
+ image_overlay_alignment="left"
+ image_top_pad="-0"
+ imgoverlay_label_space="10"
+ label="Save to Disk"
+ layout="topleft"
+ left="9"
+ name="save_to_computer_btn"
+ top_pad="9">
+ <button.commit_callback
+ function="Snapshot.SaveToComputer" />
+ </button>
<button
- follows="left|top|right"
+ follows="left|top"
font="SansSerif"
halign="left"
- height="38"
- image_overlay="Snapshot_Profile"
+ height="22"
+ image_overlay="Snapshot_Inventory"
image_overlay_alignment="left"
- image_top_pad="-2"
+ image_top_pad="-1"
imgoverlay_label_space="10"
- label="Post to My Profile Feed"
+ label="Save to Inventory (L$[AMOUNT])"
layout="topleft"
left_delta="0"
+ name="save_to_inventory_btn"
+ top_pad="5">
+ <button.commit_callback
+ function="Snapshot.SaveToInventory" />
+ </button>
+ <button
+ follows="left|top"
+ font="SansSerif"
+ halign="left"
+ height="22"
+ image_overlay="Snapshot_Profile"
+ image_overlay_alignment="left"
+ image_top_pad="-1"
+ imgoverlay_label_space="10"
+ label="Upload to Profile"
+ layout="topleft"
name="save_to_profile_btn"
- pad_left="10"
- right="-10"
- top_pad="10">
+ left_delta="0"
+ top_pad="5">
<button.commit_callback
function="Snapshot.SaveToProfile" />
</button>
<button
- follows="left|top|right"
+ follows="left|top"
font="SansSerif"
halign="left"
- height="38"
- image_overlay="Snapshot_Email"
+ height="22"
+ image_overlay="Snapshot_Facebook"
image_overlay_alignment="left"
- image_top_pad="-2"
+ image_top_pad="0"
imgoverlay_label_space="10"
- label="Email"
+ label="Upload to Facebook"
layout="topleft"
left_delta="0"
- name="save_to_email_btn"
- pad_left="10"
- right="-10"
- top_pad="10">
+ name="send_to_facebook_btn"
+ top_pad="5">
<button.commit_callback
- function="Snapshot.SaveToEmail" />
+ function="Snapshot.SendToFacebook"/>
</button>
<button
- follows="left|top|right"
+ follows="left|top"
font="SansSerif"
halign="left"
- height="38"
- image_overlay="Snapshot_Inventory"
+ height="22"
+ image_overlay="Command_Twitter_Icon"
image_overlay_alignment="left"
- image_top_pad="-2"
+ image_top_pad="0"
imgoverlay_label_space="10"
- label="Save to My Inventory (L$[AMOUNT])"
+ label="Upload to Twitter"
layout="topleft"
left_delta="0"
- name="save_to_inventory_btn"
- pad_left="10"
- right="-10"
- top_pad="10">
+ name="send_to_twitter_btn"
+ top_pad="5">
<button.commit_callback
- function="Snapshot.SaveToInventory" />
+ function="Snapshot.SendToTwitter"/>
</button>
<button
- follows="left|top|right"
+ follows="left|top"
font="SansSerif"
halign="left"
- height="38"
- image_overlay="Snapshot_Download"
+ height="22"
+ image_overlay="Command_Flickr_Icon"
image_overlay_alignment="left"
- image_top_pad="-2"
+ image_top_pad="0"
imgoverlay_label_space="10"
- label="Save to My Computer"
+ label="Upload to Flickr"
layout="topleft"
left_delta="0"
- name="save_to_computer_btn"
- pad_left="10"
- right="-10"
- top_pad="10">
+ name="send_to_flickr_btn"
+ top_pad="5">
<button.commit_callback
- function="Snapshot.SaveToComputer" />
+ function="Snapshot.SendToFlickr"/>
+ </button>
+ <button
+ follows="left|top"
+ font="SansSerif"
+ halign="left"
+ height="22"
+ image_overlay="Snapshot_Email"
+ image_overlay_alignment="left"
+ image_top_pad="0"
+ imgoverlay_label_space="10"
+ label="Send via E-mail"
+ layout="topleft"
+ left_delta="0"
+ name="save_to_email_btn"
+ top_pad="5">
+ <button.commit_callback
+ function="Snapshot.SaveToEmail" />
</button>
- <text
- font="SansSerif"
- layout="topleft"
- length="1"
- follows="top|left"
- height="16"
- left="10"
- name="send_to_facebook_textbox"
- top_pad="10"
- type="string">
- Send to: [secondlife:/// Facebook]
- </text>
- <text
- font="SansSerif"
- layout="topleft"
- length="1"
- follows="top|left"
- height="16"
- left="140"
- name="send_to_twitter_textbox"
- top_pad="-16"
- type="string">
- [secondlife:/// Twitter]
- </text>
- <text
- font="SansSerif"
- layout="topleft"
- length="1"
- follows="top|left"
- height="16"
- left="190"
- name="send_to_flickr_textbox"
- top_pad="-16"
- type="string">
- [secondlife:/// Flickr]
- </text>
-</panel>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
index ebba292a93..975b08be05 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_postcard.xml
@@ -24,12 +24,12 @@
left="12"
mouse_opaque="true"
name="title_icon"
- top="5"
+ top="7"
width="18" />
<text
follows="top|left|right"
font="SansSerifBold"
- height="20"
+ height="14"
layout="topleft"
left_pad="12"
length="1"
@@ -37,63 +37,67 @@
right="-10"
text_color="white"
type="string"
- top_delta="3">
- Email
+ top_delta="2">
+ E-mail
</text>
- <button
- follows="right|top"
- height="23"
- is_toggle="true"
- label="Message"
- layout="topleft"
- name="message_btn"
- right="-82"
- top_delta="-7"
- width="70">
- <button.commit_callback
- function="Postcard.Message" />
- </button>
- <button
- follows="right|top"
- height="23"
- is_toggle="true"
- label="Settings"
- layout="topleft"
- name="settings_btn"
- top_delta="0"
- right="-10"
- width="70">
- <button.commit_callback
- function="Postcard.Settings" />
- </button>
<view_border
bevel_style="in"
follows="left|top|right"
height="1"
- left="10"
+ left="9"
layout="topleft"
name="hr"
- right="-10"
+ right="-5"
top_pad="5"
/>
- <panel_container
+ <tab_container
+ name="postcard_tabs"
+ tab_group="1"
+ tab_min_width="97"
+ tab_height="21"
+ tab_position="top"
+ top_pad="7"
+ left="5"
+ right="-2"
+ height="319"
follows="all"
- height="340"
- layout="topleft"
- left="0"
- name="postcard_panel_container"
- default_panel_name="panel_postcard_message"
- top_pad="10"
- width="490">
+ halign="center"
+ use_highlighting_on_hover="true">
<panel
follows="all"
layout="topleft"
+ label="Message"
name="panel_postcard_message"
filename="panel_postcard_message.xml" />
<panel
follows="all"
layout="topleft"
+ label="Settings"
name="panel_postcard_settings"
filename="panel_postcard_settings.xml" />
- </panel_container>
-</panel>
+ </tab_container>
+ <button
+ follows="right|bottom"
+ height="23"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ right="-6"
+ bottom="-20"
+ width="97">
+ <button.commit_callback
+ function="Postcard.Cancel" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="23"
+ label="Send"
+ layout="topleft"
+ left="10"
+ name="send_btn"
+ top_delta="0"
+ width="97">
+ <button.commit_callback
+ function="Postcard.Send" />
+ </button>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
index 0dd357aa1a..d86cb92981 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_profile.xml
@@ -12,12 +12,12 @@
left="12"
mouse_opaque="true"
name="title_icon"
- top="5"
+ top="7"
width="18" />
<text
follows="top|left|right"
font="SansSerifBold"
- height="20"
+ height="14"
layout="topleft"
left_pad="12"
length="1"
@@ -26,27 +26,28 @@
text_color="white"
type="string"
top_delta="4">
- Post to My Profile Feed
+ Profile
</text>
<view_border
bevel_style="in"
follows="left|top|right"
height="1"
- left="10"
+ left="9"
layout="topleft"
name="hr"
- right="-10"
+ right="-5"
top_pad="5"
/>
<combo_box
- follows="left|top"
+ follows="left|top|right"
height="23"
label="Resolution"
layout="topleft"
- left_delta="0"
+ left="10"
+ right="-5"
name="profile_size_combo"
- top_pad="10"
- width="250">
+ top_pad="5"
+ width="180">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -68,132 +69,99 @@
name="Custom"
value="[i-1,i-1]" />
</combo_box>
- <layout_stack
- animate="false"
- follows="all"
- height="270"
- layout="bottomleft"
- name="profile_image_params_ls"
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label="Width x Height"
+ label_width="90"
+ layout="topleft"
+ left="10"
+ max_val="6016"
+ min_val="32"
+ name="profile_snapshot_width"
+ top_pad="7"
+ width="144" />
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label=""
+ label_width="0"
+ layout="topleft"
+ left_pad="0"
+ max_val="6016"
+ min_val="32"
+ name="profile_snapshot_height"
+ top_delta="0"
+ width="54" />
+ <check_box
+ top_pad="12"
+ label="Constrain proportions"
+ layout="topleft"
+ left="10"
+ name="profile_keep_aspect_check" />
+ <text
+ length="1"
+ follows="top|left|right"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="caption_label"
+ right="-10"
+ top_pad="4"
+ type="string">
+ Caption:
+ </text>
+ <text_editor
+ follows="top|left|right"
+ height="35"
+ layout="topleft"
+ left="10"
+ right="-5"
+ length="1"
+ max_length="700"
+ name="caption"
+ width="200"
+ top_pad="2"
+ type="string"
+ word_wrap="true">
+ </text_editor>
+ <check_box
+ follows="left|top"
+ initial_value="true"
+ label="Include location"
+ layout="topleft"
left_delta="0"
- orientation="vertical"
- top_pad="10"
- right="-10">
- <layout_panel
- follows="top|left|right"
- height="55"
- layout="topleft"
- left="0"
- name="profile_image_size_lp"
- auto_resize="false"
- top="0"
- right="-1"
- visible="true">
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Width"
- label_width="40"
- layout="topleft"
- left="10"
- max_val="6016"
- min_val="32"
- name="profile_snapshot_width"
- top_pad="10"
- width="95" />
- <spinner
- allow_text_entry="false"
- decimal_digits="0"
- follows="left|top"
- height="20"
- increment="32"
- label="Height"
- label_width="40"
- layout="topleft"
- left_pad="5"
- max_val="6016"
- min_val="32"
- name="profile_snapshot_height"
- top_delta="0"
- width="95" />
- <check_box
- height="10"
- bottom_delta="20"
- label="Constrain proportions"
- layout="topleft"
- left="10"
- name="profile_keep_aspect_check" />
- </layout_panel>
- <layout_panel
- follows="top|left|right"
- height="200"
- layout="topleft"
- left="0"
- name="profile_image_metadata_lp"
- auto_resize="true"
- top="0"
- right="-1"
- visible="true">
- <text
- length="1"
- follows="top|left|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="0"
- name="caption_label"
- right="-10"
- top_pad="0"
- type="string">
- Caption:
- </text>
- <text_editor
- follows="all"
- height="155"
- layout="topleft"
- left_delta="0"
- length="1"
- max_length="700"
- name="caption"
- right="-10"
- top_pad="5"
- type="string"
- word_wrap="true">
- </text_editor>
- <check_box
- follows="left|bottom"
- initial_value="true"
- label="Include location"
- layout="topleft"
- left_delta="0"
- name="add_location_cb"
- top_pad="15" />
- </layout_panel>
- </layout_stack>
+ height="18"
+ name="add_location_cb"
+ top_pad="3" />
<button
follows="right|bottom"
height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
- right="-32"
- top="350"
- width="100">
+ right="-5"
+ top="337"
+ width="97">
<button.commit_callback
function="PostToProfile.Cancel" />
</button>
<button
- follows="right|bottom"
+ follows="left|bottom"
height="23"
label="Post"
layout="topleft"
- left_delta="-106"
+ left="10"
name="post_btn"
top_delta="0"
- width="100">
+ width="97">
<button.commit_callback
function="PostToProfile.Send" />
</button>
-</panel>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_tools_texture.xml b/indra/newview/skins/default/xui/en/panel_tools_texture.xml
index 426c0c4915..cb6b2fafd8 100644
--- a/indra/newview/skins/default/xui/en/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/en/panel_tools_texture.xml
@@ -36,8 +36,9 @@
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="45"
+ height="22"
label=""
+ label_height="0"
layout="topleft"
left="10"
name="colorswatch"
diff --git a/indra/newview/skins/default/xui/en/panel_twitter_account.xml b/indra/newview/skins/default/xui/en/panel_twitter_account.xml
index ee4f6396e1..b9049a0bba 100644
--- a/indra/newview/skins/default/xui/en/panel_twitter_account.xml
+++ b/indra/newview/skins/default/xui/en/panel_twitter_account.xml
@@ -1,6 +1,6 @@
<panel
height="400"
- width="304"
+ width="272"
layout="topleft"
name="panel_twitter_account">
<string
@@ -15,9 +15,9 @@
follows="top|left"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="account_caption_label"
- top="21"
+ top="5"
type="string">
Not connected to Twitter.
</text>
@@ -28,19 +28,23 @@
follows="top|left"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="account_name_label"
parse_urls="true"
type="string"/>
<panel
layout="topleft"
+ follows="top|left"
name="panel_buttons"
height="345"
- left="9">
+ top_pad="3"
+ left="0">
<button
layout="topleft"
- follows="left|top"
+ follows="left|top|right"
top_pad="9"
+ left="10"
+ right="-10"
visible="true"
height="23"
label="Connect..."
@@ -51,8 +55,10 @@
<button
layout="topleft"
- follows="left|top"
+ follows="left|top|right"
top_delta="0"
+ left="10"
+ right="-10"
height="23"
label="Disconnect"
name="disconnect_btn"
@@ -65,9 +71,9 @@
length="1"
follows="top|left"
height="16"
- left="0"
+ left="10"
name="account_learn_more_label"
- top_pad="20"
+ top_pad="5"
type="string">
[http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Learn about posting to Twitter]
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_twitter_photo.xml b/indra/newview/skins/default/xui/en/panel_twitter_photo.xml
index c2be56da21..9a460ceead 100644
--- a/indra/newview/skins/default/xui/en/panel_twitter_photo.xml
+++ b/indra/newview/skins/default/xui/en/panel_twitter_photo.xml
@@ -3,31 +3,22 @@
width="304"
layout="topleft"
name="panel_twitter_photo">
- <layout_stack
- layout="topleft"
- border_size="0"
- height="412"
- follows="all"
- orientation="vertical"
- name="stack_photo"
- top="8">
- <layout_panel
- name="text_panel"
- height="160">
<text
length="1"
+ layout="topleft"
follows="top|left|right"
font="SansSerif"
height="16"
- left="9"
+ left="10"
name="status_label"
- top="3"
+ top="5"
type="string">
What's happening?
</text>
<text
length="1"
follows="top|left"
+ layout="topleft"
font="SansSerif"
text_color="EmphasisColor"
halign="right"
@@ -35,15 +26,16 @@
width="30"
left="227"
name="status_counter_label"
- top="3"
+ top="5"
type="string">
140
</text>
<text_editor
follows="left|top"
+ layout="topleft"
height="87"
width="250"
- left="9"
+ left="10"
length="1"
max_length="140"
name="photo_status"
@@ -52,33 +44,32 @@
</text_editor>
<check_box
follows="left|top"
+ layout="topleft"
initial_value="true"
label="Include SL location"
name="add_location_cb"
- left="9"
+ left="10"
height="16"
- top_pad="10"/>
+ top_pad="8"/>
<check_box
follows="left|top"
+ layout="topleft"
initial_value="true"
label="Include a photo"
name="add_photo_cb"
- left="9"
+ left="10"
height="16"
- top_pad="10"/>
- </layout_panel>
- <layout_panel
- name="snapshot_panel"
- height="227">
+ top_pad="1"/>
<combo_box
control_name="TwitterPhotoResolution"
follows="left|top"
- top="6"
- left="9"
+ layout="topleft"
+ top_pad="5"
+ left="10"
name="resolution_combobox"
tool_tip="Image resolution"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="Current Window"
name="CurrentWindow"
@@ -99,61 +90,76 @@
<combo_box
control_name="TwitterPhotoFilters"
follows="right|top"
+ layout="topleft"
name="filters_combobox"
tool_tip="Image filters"
- top="6"
- left="165"
+ top_delta="0"
+ right="-10"
height="21"
- width="135">
+ width="124">
<combo_box.item
label="No Filter"
name="NoFilter"
value="NoFilter" />
</combo_box>
<panel
+ layout="topleft"
height="150"
width="250"
visible="true"
name="thumbnail_placeholder"
- top="33"
- follows="left|top"
- left="9">
+ top_pad="5"
+ right="-10"
+ follows="left|top|right"
+ left="10">
</panel>
- <button
- follows="left|top"
- height="23"
- label="Refresh"
- left="9"
- top_pad="5"
- name="new_snapshot_btn"
- tool_tip="Click to refresh"
- visible="true"
- width="100" >
- <button.commit_callback
- function="SocialSharing.RefreshPhoto" />
- </button>
- <text
+ <text
follows="left|top"
+ layout="topleft"
font="SansSerif"
text_color="EmphasisColor"
height="14"
- top_pad="-19"
- left_pad="-30"
+ top_pad="2"
+ left="10"
length="1"
halign="center"
name="working_lbl"
translate="false"
type="string"
visible="true"
- width="150">
+ width="251">
Refreshing...
</text>
+ <view_border
+ bevel_style="in"
+ follows="left|top"
+ layout="topleft"
+ height="1"
+ left="10"
+ name="refresh_border"
+ width="250"
+ top_pad="0"/>
+ <button
+ follows="left|top"
+ layout="topleft"
+ height="23"
+ label="Refresh"
+ left="10"
+ top_pad="5"
+ name="new_snapshot_btn"
+ tool_tip="Click to refresh"
+ visible="true"
+ width="100" >
+ <button.commit_callback
+ function="SocialSharing.RefreshPhoto" />
+ </button>
<button
follows="right|top"
+ layout="topleft"
height="23"
label="Preview"
- left="200"
- top_pad="-19"
+ right="-10"
+ top_delta="0"
name="big_preview_btn"
tool_tip="Click to toggle preview"
is_toggle="true"
@@ -162,14 +168,11 @@
<button.commit_callback
function="SocialSharing.BigPreview" />
</button>
- </layout_panel>
- <layout_panel
- name="photo_button_panel"
- height="25">
<button
follows="left|top"
- top="0"
- left="9"
+ layout="topleft"
+ top_pad="3"
+ left="10"
height="23"
label="Tweet"
name="post_photo_btn"
@@ -178,16 +181,15 @@
function="SocialSharing.SendPhoto" />
</button>
<button
- follows="left|top"
+ follows="right|top"
+ layout="topleft"
height="23"
label="Cancel"
name="cancel_photo_btn"
- left_pad="15"
+ right="-10"
top_delta="0"
width="100">
<button.commit_callback
function="SocialSharing.Cancel" />
</button>
- </layout_panel>
- </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/teleport_strings.xml b/indra/newview/skins/default/xui/en/teleport_strings.xml
index fdf41991cd..5a9a16d344 100755
--- a/indra/newview/skins/default/xui/en/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/en/teleport_strings.xml
@@ -48,7 +48,10 @@ Go to &apos;Welcome Island Public&apos; to repeat the tutorial.
<message name="MustGetAgeRegion">
You must be age 18 or over to enter this region.
</message>
- </message_set>
+ <message name="RegionTPSpecialUsageBlocked">
+ Unable to enter region. '[REGION_NAME]' is a Skill Gaming Region, and you must meet certain criteria in order to enter. For details, please review the [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ].
+ </message>
+ </message_set>
<message_set name="progress">
<message name="sending_dest">
Sending to destination.
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f079f31c81..7544fe1c41 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -798,15 +798,42 @@ class Darwin_i386_Manifest(ViewerManifest):
for libfile in dylibs:
symlinkf(os.path.join(os.pardir, os.pardir, os.pardir, libfile),
os.path.join(resource_path, libfile))
-
- # plugins
+ # SLPlugin.app/Contents/Resources gets those Qt4 libraries it needs.
+ if self.prefix(src="", dst="SLPlugin.app/Contents/Resources"):
+ for libfile in ('libQtCore.4.dylib',
+ 'libQtCore.4.7.1.dylib',
+ 'libQtGui.4.dylib',
+ 'libQtGui.4.7.1.dylib',
+ 'libQtNetwork.4.dylib',
+ 'libQtNetwork.4.7.1.dylib',
+ 'libQtOpenGL.4.dylib',
+ 'libQtOpenGL.4.7.1.dylib',
+ 'libQtSvg.4.dylib',
+ 'libQtSvg.4.7.1.dylib',
+ 'libQtWebKit.4.dylib',
+ 'libQtWebKit.4.7.1.dylib',
+ 'libQtXml.4.dylib',
+ 'libQtXml.4.7.1.dylib'):
+ self.path2basename("../packages/lib/release", libfile)
+ self.end_prefix("SLPlugin.app/Contents/Resources")
+
+ # Qt4 codecs go to llplugin. Not certain why but this is the first
+ # location probed according to dtruss so we'll go with that.
+ if self.prefix(src="../packages/plugins/codecs/", dst="llplugin/codecs"):
+ self.path("libq*.dylib")
+ self.end_prefix("llplugin/codecs")
+
+ # Similarly for imageformats.
+ if self.prefix(src="../packages/plugins/imageformats/", dst="llplugin/imageformats"):
+ self.path("libq*.dylib")
+ self.end_prefix("llplugin/imageformats")
+
+ # SLPlugin plugins proper
if self.prefix(src="", dst="llplugin"):
self.path2basename("../media_plugins/quicktime/" + self.args['configuration'],
"media_plugin_quicktime.dylib")
self.path2basename("../media_plugins/webkit/" + self.args['configuration'],
"media_plugin_webkit.dylib")
- self.path2basename("../packages/lib/release", "libllqtwebkit.dylib")
-
self.end_prefix("llplugin")
self.end_prefix("Resources")
@@ -1011,6 +1038,7 @@ class LinuxManifest(ViewerManifest):
self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
self.end_prefix("bin/llplugin")
+ # llcommon
if not self.path("../llcommon/libllcommon.so", "lib/libllcommon.so"):
print "Skipping llcommon.so (assuming llcommon was linked statically)"
@@ -1076,20 +1104,9 @@ class Linux_i686_Manifest(LinuxManifest):
self.path("libaprutil-1.so")
self.path("libaprutil-1.so.0")
self.path("libaprutil-1.so.0.4.1")
- self.path("libboost_context-mt.so.*")
- self.path("libboost_filesystem-mt.so.*")
- self.path("libboost_program_options-mt.so.*")
- self.path("libboost_regex-mt.so.*")
- self.path("libboost_signals-mt.so.*")
- self.path("libboost_system-mt.so.*")
- self.path("libboost_thread-mt.so.*")
- self.path("libcollada14dom.so")
self.path("libdb*.so")
- self.path("libcrypto.so.*")
self.path("libexpat.so.*")
- self.path("libssl.so.1.0.0")
self.path("libGLOD.so")
- self.path("libminizip.so")
self.path("libuuid.so*")
self.path("libSDL-1.2.so.*")
self.path("libdirectfb-1.*.so.*")
@@ -1121,6 +1138,10 @@ class Linux_i686_Manifest(LinuxManifest):
# previous call did, without having to explicitly state the
# version number.
self.path("libfontconfig.so.*.*")
+
+ # Include libfreetype.so. but have it work as libfontconfig does.
+ self.path("libfreetype.so.*.*")
+
try:
self.path("libtcmalloc.so*") #formerly called google perf tools
pass
@@ -1129,26 +1150,55 @@ class Linux_i686_Manifest(LinuxManifest):
pass
try:
- self.path("libfmodex-*.so")
- self.path("libfmodex.so")
- pass
+ self.path("libfmodex-*.so")
+ self.path("libfmodex.so")
+ pass
except:
- print "Skipping libfmodex.so - not found"
- pass
+ print "Skipping libfmodex.so - not found"
+ pass
self.end_prefix("lib")
# Vivox runtimes
if self.prefix(src="../packages/lib/release", dst="bin"):
- self.path("SLVoice")
- self.end_prefix()
+ self.path("SLVoice")
+ self.end_prefix()
+ if self.prefix(src="../packages/lib/release", dst="lib"):
+ self.path("libortp.so")
+ self.path("libsndfile.so.1")
+ #self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
+ self.path("libvivoxsdk.so")
+ self.path("libvivoxplatform.so")
+ self.end_prefix("lib")
+
+ # plugin runtime
if self.prefix(src="../packages/lib/release", dst="lib"):
- self.path("libortp.so")
- self.path("libsndfile.so.1")
- #self.path("libvivoxoal.so.1") # no - we'll re-use the viewer's own OpenAL lib
- self.path("libvivoxsdk.so")
- self.path("libvivoxplatform.so")
- self.end_prefix("lib")
+ self.path("libQtCore.so*")
+ self.path("libQtGui.so*")
+ self.path("libQtNetwork.so*")
+ self.path("libQtOpenGL.so*")
+ self.path("libQtSvg.so*")
+ self.path("libQtWebKit.so*")
+ self.path("libQtXml.so*")
+ self.end_prefix("lib")
+
+ # For WebKit/Qt plugin runtimes (image format plugins)
+ if self.prefix(src="../packages/plugins/imageformats", dst="bin/llplugin/imageformats"):
+ self.path("libqgif.so")
+ self.path("libqico.so")
+ self.path("libqjpeg.so")
+ self.path("libqmng.so")
+ self.path("libqsvg.so")
+ self.path("libqtiff.so")
+ self.end_prefix("bin/llplugin/imageformats")
+
+ # For WebKit/Qt plugin runtimes (codec/character encoding plugins)
+ if self.prefix(src="../packages/plugins/codecs", dst="bin/llplugin/codecs"):
+ self.path("libqcncodecs.so")
+ self.path("libqjpcodecs.so")
+ self.path("libqkrcodecs.so")
+ self.path("libqtwcodecs.so")
+ self.end_prefix("bin/llplugin/codecs")
self.strip_binaries()
diff --git a/indra/test_apps/llfbconnecttest/CMakeLists.txt b/indra/test_apps/llfbconnecttest/CMakeLists.txt
index f56329a010..512bf202ae 100644
--- a/indra/test_apps/llfbconnecttest/CMakeLists.txt
+++ b/indra/test_apps/llfbconnecttest/CMakeLists.txt
@@ -122,32 +122,24 @@ add_custom_command(TARGET llfbconnecttest POST_BUILD
)
-if (DARWIN OR WINDOWS)
- get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_WEBKIT_PLUGIN}
- )
-
- # copy over bookmarks file if llfbconnecttest gets built
- get_target_property(BUILT_LLFBCONNECTTEST llfbconnecttest LOCATION)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
- DEPENDS ${BUILT_LLFBCONNECTTEST}
- )
- # also copy it to the same place as SLPlugin, which is what the mac wants...
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_LLFBCONNECTTEST}
- )
-endif (DARWIN OR WINDOWS)
+get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_WEBKIT_PLUGIN}
+)
-if (DARWIN)
- add_custom_command(TARGET llfbconnecttest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
-endif (DARWIN)
+# copy over bookmarks file if llfbconnecttest gets built
+get_target_property(BUILT_LLFBCONNECTTEST llfbconnecttest LOCATION)
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
+ DEPENDS ${BUILT_LLFBCONNECTTEST}
+)
+
+# also copy it to the same place as SLPlugin, which is what the mac wants...
+add_custom_command(TARGET llfbconnecttest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_LLFBCONNECTTEST}
+)
if(WINDOWS)
#********************
@@ -301,4 +293,80 @@ if(WINDOWS)
endif(WINDOWS)
+if (DARWIN)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+ set(fbconnecttest_release_files
+ libexception_handler.dylib
+ libaprutil-1.0.dylib
+ libapr-1.0.dylib
+ libexpat.1.5.2.dylib
+ libQtCore.4.7.1.dylib
+ libQtCore.4.dylib
+ libQtGui.4.7.1.dylib
+ libQtGui.4.dylib
+ libQtNetwork.4.7.1.dylib
+ libQtNetwork.4.dylib
+ libQtOpenGL.4.7.1.dylib
+ libQtOpenGL.4.dylib
+ libQtWebKit.4.7.1.dylib
+ libQtWebKit.4.dylib
+ libQtSvg.4.7.1.dylib
+ libQtSvg.4.dylib
+ libQtXml.4.7.1.dylib
+ libQtXml.4.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/imageformats")
+ set(fbconnecttest_release_files
+ libqgif.dylib
+ libqico.dylib
+ libqjpeg.dylib
+ libqmng.dylib
+ libqsvg.dylib
+ libqtiff.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/imageformats"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins)
+ set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/codecs")
+ set(fbconnecttest_release_files
+ libqcncodecs.dylib
+ libqjpcodecs.dylib
+ libqkrcodecs.dylib
+ libqtwcodecs.dylib
+ )
+ copy_if_different(
+ ${fbconnecttest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/codecs"
+ out_targets
+ ${fbconnecttest_release_files}
+ )
+ set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets})
+
+ add_custom_target(copy_fbconnecttest_libs ALL
+ DEPENDS
+ ${fbconnect_test_targets}
+ )
+
+ add_dependencies(llfbconnecttest copy_fbconnecttest_libs)
+endif (DARWIN)
+
+if (LINUX)
+
+endif (LINUX)
+
ll_deploy_sharedlibs_command(llfbconnecttest)
diff --git a/indra/test_apps/llfbconnecttest/README.Linden b/indra/test_apps/llfbconnecttest/README.Linden
new file mode 100644
index 0000000000..7488ce680a
--- /dev/null
+++ b/indra/test_apps/llfbconnecttest/README.Linden
@@ -0,0 +1,20 @@
+
+1. Description
+
+ Exercises SLPlugin. Specific functions and goals aren't clear
+ from the source.
+
+2. Running
+
+ 2.1 Mac
+
+ Make certain '.' is included in PATH. E.g.:
+
+ PATH=.:"$PATH" open build-darwin-i386/test_apps/llfbconnecttest/RelWithDebInfo/llfbconnecttest.app
+
+ Otherwise the program won't find SLPlugin and will timeout and
+ fail after 30 seconds and give you little information as to why.
+
+ Running 'dtruss' on plugin test applications will give you a great
+ deal of insight into why they aren't activating.
+
diff --git a/indra/test_apps/llplugintest/CMakeLists.txt b/indra/test_apps/llplugintest/CMakeLists.txt
index 8179be66f5..9d44563e26 100755
--- a/indra/test_apps/llplugintest/CMakeLists.txt
+++ b/indra/test_apps/llplugintest/CMakeLists.txt
@@ -346,44 +346,44 @@ add_custom_command(TARGET llmediaplugintest POST_BUILD
DEPENDS ${BUILT_LLCOMMON}
)
+get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_WEBKIT_PLUGIN}
+)
if (DARWIN OR WINDOWS)
- get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_WEBKIT_PLUGIN}
- )
-
get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION)
add_custom_command(TARGET llmediaplugintest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_QUICKTIME_PLUGIN} ${PLUGINS_DESTINATION_DIR}
DEPENDS ${BUILT_QUICKTIME_PLUGIN}
)
-
- get_target_property(BUILT_EXAMPLE_PLUGIN media_plugin_example LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_EXAMPLE_PLUGIN} ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_EXAMPLE_PLUGIN}
- )
-
- # copy over bookmarks file if llmediaplugintest gets built
- get_target_property(BUILT_LLMEDIAPLUGINTEST llmediaplugintest LOCATION)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
- DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
- )
- # also copy it to the same place as SLPlugin, which is what the mac wants...
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
- )
endif (DARWIN OR WINDOWS)
+get_target_property(BUILT_EXAMPLE_PLUGIN media_plugin_example LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_EXAMPLE_PLUGIN} ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_EXAMPLE_PLUGIN}
+)
+
+# copy over bookmarks file if llmediaplugintest gets built
+get_target_property(BUILT_LLMEDIAPLUGINTEST llmediaplugintest LOCATION)
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
+ DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
+)
+
+# also copy it to the same place as SLPlugin, which is what the mac wants...
+add_custom_command(TARGET llmediaplugintest POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
+ DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
+)
+
if (DARWIN)
- add_custom_command(TARGET llmediaplugintest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
- DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+# add_custom_command(TARGET llmediaplugintest POST_BUILD
+# COMMAND ${CMAKE_COMMAND} -E copy ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
+# DEPENDS ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+# )
endif (DARWIN)
if(WINDOWS)
@@ -538,4 +538,76 @@ if(WINDOWS)
endif(WINDOWS)
+if (DARWIN)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+ set(plugintest_release_files
+ libexception_handler.dylib
+ libaprutil-1.0.dylib
+ libapr-1.0.dylib
+ libexpat.1.5.2.dylib
+ libQtCore.4.7.1.dylib
+ libQtCore.4.dylib
+ libQtGui.4.7.1.dylib
+ libQtGui.4.dylib
+ libQtNetwork.4.7.1.dylib
+ libQtNetwork.4.dylib
+ libQtOpenGL.4.7.1.dylib
+ libQtOpenGL.4.dylib
+ libQtWebKit.4.7.1.dylib
+ libQtWebKit.4.dylib
+ libQtSvg.4.7.1.dylib
+ libQtSvg.4.dylib
+ libQtXml.4.7.1.dylib
+ libQtXml.4.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/imageformats")
+ set(plugintest_release_files
+ libqgif.dylib
+ libqico.dylib
+ libqjpeg.dylib
+ libqmng.dylib
+ libqsvg.dylib
+ libqtiff.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/imageformats"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins)
+ set(plugintest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/codecs")
+ set(plugintest_release_files
+ libqcncodecs.dylib
+ libqjpcodecs.dylib
+ libqkrcodecs.dylib
+ libqtwcodecs.dylib
+ )
+ copy_if_different(
+ ${plugintest_release_src_dir}
+ "${PLUGINS_DESTINATION_DIR}/codecs"
+ out_targets
+ ${plugintest_release_files}
+ )
+ set(plugin_test_targets ${plugin_test_targets} ${out_targets})
+
+ add_custom_target(copy_plugintest_libs ALL
+ DEPENDS
+ ${plugin_test_targets}
+ )
+
+ add_dependencies(llmediaplugintest copy_plugintest_libs)
+endif (DARWIN)
+
ll_deploy_sharedlibs_command(llmediaplugintest)
diff --git a/indra/test_apps/llplugintest/README.Linden b/indra/test_apps/llplugintest/README.Linden
new file mode 100644
index 0000000000..4a9f223c21
--- /dev/null
+++ b/indra/test_apps/llplugintest/README.Linden
@@ -0,0 +1,21 @@
+
+1. Description
+
+ Exercises SLPlugin. Demonstrates mediakit plugin reuse and
+ switchover as MIME type changes (web, quicktime, flash).
+
+
+2. Running
+
+ 2.1 Mac
+
+ Make certain '.' is included in PATH. E.g.:
+
+ PATH=.:"$PATH" open build-darwin-i386/test_apps/llmediaplugintest/RelWithDebInfo/llmediaplugintest.app
+
+ Otherwise the program won't find SLPlugin and will timeout and
+ fail after 30 seconds and give you little information as to why.
+
+ Running 'dtruss' on plugin test applications will give you a great
+ deal of insight into why they aren't activating.
+
diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt
index 6f366677c9..ce80d55829 100755
--- a/indra/viewer_components/login/CMakeLists.txt
+++ b/indra/viewer_components/login/CMakeLists.txt
@@ -46,6 +46,8 @@ target_link_libraries(lllogin
${LLMATH_LIBRARIES}
${LLXML_LIBRARIES}
${BOOST_CONTEXT_LIBRARY}
+ ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_SYSTEM_LIBRARY}
)
if(LL_TESTS)
@@ -55,7 +57,7 @@ if(LL_TESTS)
set_source_files_properties(
lllogin.cpp
PROPERTIES
- LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY}"
+ LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY};${BOOST_COROUTINE_LIBRARY};${BOOST_SYSTEM_LIBRARY}"
)
LL_ADD_PROJECT_UNIT_TESTS(lllogin "${lllogin_TEST_SOURCE_FILES}")