From 0c0391cc7114bd2e9e4462c40e88814326f61bc2 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Tue, 22 Jul 2008 19:01:52 +0000 Subject: [PATCH] QAR-758 1.20 Viewer RC 12, 13, 14, 15 -> Release merge Branch_1-20-14-Viewer-merge -> release Includes Branch_1-20-Viewer-2 through 92456 --- doc/contributions.txt | 1 + indra/llcommon/llversionviewer.h | 2 +- indra/llimage/llimage.cpp | 17 +- indra/llimage/llimage.h | 2 +- indra/llimage/llimagebmp.cpp | 5 +- indra/llmessage/llxfermanager.cpp | 2 +- indra/llrender/llvertexbuffer.cpp | 10 +- indra/llui/llscrolllistctrl.h | 4 + indra/llui/llui.cpp | 4 +- indra/llui/lluictrlfactory.cpp | 57 +- indra/llui/lluictrlfactory.h | 3 +- indra/llvfs/lldir.cpp | 106 ++- indra/llvfs/lldir.h | 23 +- indra/llvfs/lldir_linux.cpp | 2 +- indra/llvfs/lldir_linux.h | 2 +- indra/llvfs/lldir_mac.cpp | 2 +- indra/llvfs/lldir_mac.h | 2 +- indra/llvfs/lldir_win32.cpp | 2 +- indra/llvfs/lldir_win32.h | 2 +- indra/llxml/llcontrol.cpp | 86 ++- indra/llxml/llcontrol.h | 30 +- indra/newview/CMakeLists.txt | 354 +++++----- indra/newview/app_settings/cmd_line.xml | 2 + indra/newview/app_settings/settings.xml | 26 +- indra/newview/gpu_table.txt | 1 + .../installers/windows/installer_template.nsi | 20 + indra/newview/llappviewer.cpp | 64 +- indra/newview/llappviewer.h | 2 +- indra/newview/llfloaterhud.cpp | 11 +- indra/newview/llfloaterhud.h | 2 - indra/newview/llfloaterpostcard.cpp | 2 + indra/newview/llfloaterpreference.cpp | 14 + indra/newview/llfloaterpreference.h | 2 + indra/newview/llfloatersnapshot.cpp | 101 ++- indra/newview/llimpanel.cpp | 22 +- indra/newview/llimview.cpp | 37 +- indra/newview/llinventorymodel.cpp | 9 +- indra/newview/llpanellogin.cpp | 17 +- indra/newview/llpanellogin.h | 1 + indra/newview/llstartup.cpp | 3 +- indra/newview/lltexturecache.cpp | 5 +- indra/newview/llviewercontrol.cpp | 122 ++++ indra/newview/llviewercontrol.h | 110 +++ indra/newview/llviewermedia.cpp | 69 +- indra/newview/llviewermenufile.cpp | 5 +- indra/newview/llviewerwindow.cpp | 21 +- indra/newview/llwindebug.cpp | 2 +- indra/newview/skins/default/colors.xml | 3 + .../skins/default/html/btn_purplepill_bg.png | Bin 0 -> 3564 bytes .../default/html/de/loading-error/index.html | 25 + .../html/en-us/loading-error/index.html | 32 + .../default/html/en-us/loading/loading.html | 9 + .../en-us/loading/sl_logo_rotate_black.gif | Bin 0 -> 7426 bytes .../default/html/es/loading-error/index.html | 25 + .../default/html/fr/loading-error/index.html | 25 + .../default/html/ja/loading-error/index.html | 25 + .../default/html/ko/loading-error/index.html | 25 + .../default/html/pt/loading-error/index.html | 25 + .../skins/default/html/unabletoconnect.png | Bin 0 -> 15849 bytes .../default/html/zh/loading-error/index.html | 25 + .../skins/default/textures/alpha_gradient.tga | Bin 0 -> 300 bytes .../default/textures/alpha_gradient_2d.j2c | Bin 0 -> 4325 bytes .../skins/default/textures/arrow_down.tga | Bin 0 -> 1068 bytes .../skins/default/textures/arrow_up.tga | Bin 0 -> 1068 bytes .../skins/default/textures/badge_note.j2c | Bin 0 -> 2040 bytes .../skins/default/textures/badge_ok.j2c | Bin 0 -> 2043 bytes .../skins/default/textures/badge_warn.j2c | Bin 0 -> 2043 bytes .../default/textures/button_anim_pause.tga | Bin 0 -> 4140 bytes .../textures/button_anim_pause_selected.tga | Bin 0 -> 4140 bytes .../default/textures/button_anim_play.tga | Bin 0 -> 4140 bytes .../textures/button_anim_play_selected.tga | Bin 0 -> 4140 bytes .../textures/checkerboard_transparency_bg.png | Bin 0 -> 1110 bytes .../newview/skins/default/textures/circle.tga | Bin 0 -> 1068 bytes .../skins/default/textures/cloud-particle.j2c | Bin 0 -> 4049 bytes .../default/textures/color_swatch_alpha.tga | Bin 0 -> 16428 bytes .../skins/default/textures/crosshairs.tga | Bin 0 -> 300 bytes .../default/textures/direction_arrow.tga | Bin 0 -> 1068 bytes .../skins/default/textures/down_arrow.png | Bin 0 -> 2936 bytes .../default/textures/eye_button_active.tga | Bin 0 -> 3116 bytes .../default/textures/eye_button_inactive.tga | Bin 0 -> 3116 bytes .../skins/default/textures/ff_edit_mine.tga | Bin 0 -> 1068 bytes .../default/textures/ff_edit_mine_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/ff_edit_theirs.tga | Bin 0 -> 1068 bytes .../textures/ff_edit_theirs_button.tga | Bin 0 -> 4140 bytes .../textures/ff_online_status_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/ff_visible_map.tga | Bin 0 -> 812 bytes .../textures/ff_visible_map_button.tga | Bin 0 -> 4140 bytes .../default/textures/ff_visible_online.tga | Bin 0 -> 1068 bytes .../textures/ff_visible_online_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/folder_arrow.tga | Bin 0 -> 4140 bytes .../skins/default/textures/foot_shadow.j2c | Bin 0 -> 1647 bytes .../skins/default/textures/icn_label_web.tga | Bin 0 -> 4140 bytes .../skins/default/textures/icn_media.tga | Bin 0 -> 4140 bytes .../default/textures/icn_media_movie.tga | Bin 0 -> 4140 bytes .../skins/default/textures/icn_media_web.tga | Bin 0 -> 4140 bytes .../default/textures/icn_voice-groupfocus.tga | Bin 0 -> 1068 bytes .../default/textures/icn_voice-localchat.tga | Bin 0 -> 1068 bytes .../default/textures/icn_voice-pvtfocus.tga | Bin 0 -> 1068 bytes .../default/textures/icon_avatar_offline.tga | Bin 0 -> 1068 bytes .../default/textures/icon_avatar_online.tga | Bin 0 -> 1068 bytes .../skins/default/textures/icon_day_cycle.tga | Bin 0 -> 25682 bytes .../skins/default/textures/icon_diurnal.tga | Bin 0 -> 6162 bytes .../skins/default/textures/icon_lock.tga | Bin 0 -> 1030 bytes .../skins/default/textures/icon_top_pick.tga | Bin 0 -> 858 bytes .../default/textures/inv_folder_animation.tga | Bin 0 -> 1068 bytes .../default/textures/lag_status_critical.tga | Bin 0 -> 4140 bytes .../default/textures/lag_status_good.tga | Bin 0 -> 658 bytes .../default/textures/lag_status_warning.tga | Bin 0 -> 658 bytes .../newview/skins/default/textures/legend.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_avatar_16.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_avatar_8.tga | Bin 0 -> 300 bytes .../default/textures/map_avatar_above_8.tga | Bin 0 -> 300 bytes .../default/textures/map_avatar_below_8.tga | Bin 0 -> 300 bytes .../skins/default/textures/map_event.tga | Bin 0 -> 1068 bytes .../default/textures/map_event_mature.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_home.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_infohub.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_telehub.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_track_16.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_track_8.tga | Bin 0 -> 300 bytes .../skins/default/textures/missing_asset.tga | Bin 0 -> 2511 bytes .../skins/default/textures/mute_icon.tga | Bin 0 -> 1042 bytes .../default/textures/notify_caution_icon.tga | Bin 0 -> 4140 bytes .../skins/default/textures/pixiesmall.j2c | Bin 0 -> 2845 bytes .../skins/default/textures/propertyline.tga | Bin 0 -> 2092 bytes .../skins/default/textures/rounded_square.j2c | Bin 0 -> 1074 bytes .../skins/default/textures/script_error.j2c | Bin 0 -> 8132 bytes .../skins/default/textures/silhouette.j2c | Bin 0 -> 1460 bytes .../skins/default/textures/smicon_warn.tga | Bin 0 -> 1068 bytes .../skins/default/textures/spacer24.tga | Bin 0 -> 2348 bytes .../skins/default/textures/spacer35.tga | Bin 0 -> 3404 bytes .../default/textures/square_btn_32x128.tga | Bin 0 -> 6292 bytes .../textures/square_btn_selected_32x128.tga | Bin 0 -> 6983 bytes .../skins/default/textures/startup_logo.j2c | Bin 0 -> 69118 bytes .../skins/default/textures/status_busy.tga | Bin 0 -> 4140 bytes .../skins/default/textures/tabarea.tga | Bin 0 -> 1340 bytes .../default/textures/tearoff_pressed.tga | Bin 0 -> 513 bytes .../skins/default/textures/tearoffbox.tga | Bin 0 -> 408 bytes .../skins/default/textures/textures.xml | 374 +++++++++++ .../skins/default/textures/up_arrow.png | Bin 0 -> 2930 bytes .../skins/default/textures/uv_test1.j2c | Bin 0 -> 1206 bytes .../skins/default/textures/uv_test2.tga | Bin 0 -> 1308 bytes .../newview/skins/default/textures/white.tga | Bin 0 -> 178 bytes .../skins/default/xui/de/floater_about.xml | 34 + .../default/xui/de/floater_about_land.xml | 504 ++++++++++++++ .../xui/de/floater_animation_preview.xml | 173 +++++ .../skins/default/xui/de/floater_auction.xml | 9 + .../default/xui/de/floater_avatar_picker.xml | 17 + .../xui/de/floater_avatar_textures.xml | 36 + .../default/xui/de/floater_build_options.xml | 8 + .../skins/default/xui/de/floater_bumps.xml | 21 + .../default/xui/de/floater_buy_contents.xml | 21 + .../default/xui/de/floater_buy_currency.xml | 68 ++ .../skins/default/xui/de/floater_buy_land.xml | 229 +++++++ .../default/xui/de/floater_buy_object.xml | 26 + .../skins/default/xui/de/floater_camera.xml | 12 + .../default/xui/de/floater_choose_group.xml | 8 + .../default/xui/de/floater_color_picker.xml | 32 + .../skins/default/xui/de/floater_critical.xml | 14 + .../default/xui/de/floater_customize.xml | 534 +++++++++++++++ .../xui/de/floater_day_cycle_options.xml | 96 +++ .../xui/de/floater_device_settings.xml | 2 + .../default/xui/de/floater_env_settings.xml | 24 + .../skins/default/xui/de/floater_gesture.xml | 17 + .../default/xui/de/floater_god_tools.xml | 146 ++++ .../xui/de/floater_hardware_settings.xml | 40 ++ .../skins/default/xui/de/floater_hud.xml | 2 + .../skins/default/xui/de/floater_im.xml | 54 ++ .../default/xui/de/floater_image_preview.xml | 52 ++ .../skins/default/xui/de/floater_inspect.xml | 14 + .../default/xui/de/floater_inventory.xml | 47 ++ .../de/floater_inventory_item_properties.xml | 85 +++ .../xui/de/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/de/floater_joystick.xml | 76 +++ .../skins/default/xui/de/floater_lagmeter.xml | 152 +++++ .../default/xui/de/floater_land_holdings.xml | 41 ++ .../default/xui/de/floater_live_lsleditor.xml | 11 + .../default/xui/de/floater_lsl_guide.xml | 7 + .../default/xui/de/floater_media_browser.xml | 19 + .../skins/default/xui/de/floater_moveview.xml | 14 + .../default/xui/de/floater_mute_object.xml | 12 + .../default/xui/de/floater_my_friends.xml | 7 + .../default/xui/de/floater_openobject.xml | 10 + .../skins/default/xui/de/floater_pay.xml | 21 + .../default/xui/de/floater_pay_object.xml | 30 + .../default/xui/de/floater_post_process.xml | 53 ++ .../skins/default/xui/de/floater_postcard.xml | 42 ++ .../default/xui/de/floater_preferences.xml | 8 + .../xui/de/floater_preview_animation.xml | 10 + .../xui/de/floater_preview_classified.xml | 2 + .../default/xui/de/floater_preview_event.xml | 2 + .../xui/de/floater_preview_gesture.xml | 70 ++ .../xui/de/floater_preview_notecard.xml | 16 + .../default/xui/de/floater_preview_sound.xml | 12 + .../xui/de/floater_preview_texture.xml | 9 + .../default/xui/de/floater_region_info.xml | 2 + .../default/xui/de/floater_report_abuse.xml | 96 +++ .../default/xui/de/floater_script_debug.xml | 6 + .../default/xui/de/floater_script_preview.xml | 6 + .../default/xui/de/floater_script_queue.xml | 4 + .../default/xui/de/floater_script_search.xml | 13 + .../default/xui/de/floater_select_key.xml | 7 + .../default/xui/de/floater_sell_land.xml | 78 +++ .../default/xui/de/floater_settings_debug.xml | 17 + .../skins/default/xui/de/floater_snapshot.xml | 116 ++++ .../default/xui/de/floater_sound_preview.xml | 28 + .../skins/default/xui/de/floater_telehub.xml | 28 + .../default/xui/de/floater_texture_ctrl.xml | 24 + .../skins/default/xui/de/floater_tools.xml | 616 +++++++++++++++++ .../default/xui/de/floater_top_objects.xml | 67 ++ .../skins/default/xui/de/floater_tos.xml | 26 + .../default/xui/de/floater_url_entry.xml | 13 + .../skins/default/xui/de/floater_water.xml | 88 +++ .../xui/de/floater_wearable_save_as.xml | 11 + .../xui/de/floater_windlight_options.xml | 190 ++++++ .../default/xui/de/floater_world_map.xml | 92 +++ .../skins/default/xui/de/menu_inventory.xml | 65 ++ .../skins/default/xui/de/menu_login.xml | 13 + .../skins/default/xui/de/menu_slurl.xml | 6 + .../skins/default/xui/de/menu_viewer.xml | 252 +++++++ .../skins/default/xui/de/mime_types.xml | 225 +++++++ .../default/xui/de/panel_audio_device.xml | 25 + .../skins/default/xui/de/panel_friends.xml | 41 ++ .../default/xui/de/panel_group_general.xml | 95 +++ .../default/xui/de/panel_group_invite.xml | 29 + .../default/xui/de/panel_group_land_money.xml | 91 +++ .../default/xui/de/panel_group_notices.xml | 76 +++ .../default/xui/de/panel_group_roles.xml | 164 +++++ .../skins/default/xui/de/panel_groups.xml | 15 + .../skins/default/xui/de/panel_login.xml | 47 ++ .../default/xui/de/panel_preferences_chat.xml | 61 ++ .../xui/de/panel_preferences_general.xml | 122 ++++ .../xui/de/panel_preferences_graphics1.xml | 203 ++++++ .../default/xui/de/panel_region_covenant.xml | 50 ++ .../default/xui/de/panel_region_debug.xml | 35 + .../default/xui/de/panel_region_estate.xml | 73 ++ .../default/xui/de/panel_region_general.xml | 51 ++ .../default/xui/de/panel_region_terrain.xml | 30 + .../default/xui/de/panel_region_texture.xml | 57 ++ .../default/xui/de/panel_scrolling_param.xml | 12 + .../skins/default/xui/de/panel_status_bar.xml | 45 ++ .../skins/default/xui/de/role_actions.xml | 187 ++++++ .../newview/skins/default/xui/de/strings.xml | 390 +++++++++++ .../skins/default/xui/de/teleport_strings.xml | 90 +++ .../skins/default/xui/de/xui_version.xml | 4 + .../skins/default/xui/es/floater_about.xml | 4 + .../default/xui/es/floater_about_land.xml | 344 ++++++++++ .../xui/es/floater_animation_preview.xml | 159 +++++ .../skins/default/xui/es/floater_auction.xml | 18 + .../default/xui/es/floater_avatar_picker.xml | 15 + .../xui/es/floater_avatar_textures.xml | 30 + .../default/xui/es/floater_build_options.xml | 7 + .../skins/default/xui/es/floater_bumps.xml | 21 + .../default/xui/es/floater_buy_contents.xml | 12 + .../default/xui/es/floater_buy_currency.xml | 62 ++ .../skins/default/xui/es/floater_buy_land.xml | 226 +++++++ .../default/xui/es/floater_buy_object.xml | 11 + .../default/xui/es/floater_choose_group.xml | 8 + .../default/xui/es/floater_color_picker.xml | 31 + .../skins/default/xui/es/floater_critical.xml | 11 + .../default/xui/es/floater_customize.xml | 478 +++++++++++++ .../skins/default/xui/es/floater_gesture.xml | 18 + .../default/xui/es/floater_god_tools.xml | 147 ++++ .../skins/default/xui/es/floater_im.xml | 9 + .../default/xui/es/floater_image_preview.xml | 48 ++ .../default/xui/es/floater_inventory.xml | 48 ++ .../es/floater_inventory_item_properties.xml | 73 ++ .../xui/es/floater_inventory_view_finder.xml | 24 + .../default/xui/es/floater_land_holdings.xml | 38 ++ .../default/xui/es/floater_live_lsleditor.xml | 5 + .../skins/default/xui/es/floater_moveview.xml | 15 + .../default/xui/es/floater_openobject.xml | 10 + .../skins/default/xui/es/floater_pay.xml | 21 + .../default/xui/es/floater_pay_object.xml | 30 + .../skins/default/xui/es/floater_postcard.xml | 28 + .../default/xui/es/floater_preferences.xml | 7 + .../xui/es/floater_preview_animation.xml | 10 + .../xui/es/floater_preview_gesture.xml | 48 ++ .../xui/es/floater_preview_notecard.xml | 10 + .../default/xui/es/floater_preview_sound.xml | 12 + .../xui/es/floater_preview_texture.xml | 9 + .../default/xui/es/floater_report_abuse.xml | 78 +++ .../default/xui/es/floater_script_debug.xml | 6 + .../default/xui/es/floater_script_preview.xml | 6 + .../default/xui/es/floater_script_queue.xml | 4 + .../default/xui/es/floater_script_search.xml | 13 + .../default/xui/es/floater_sell_land.xml | 68 ++ .../default/xui/es/floater_settings_debug.xml | 16 + .../skins/default/xui/es/floater_snapshot.xml | 112 ++++ .../default/xui/es/floater_sound_preview.xml | 28 + .../skins/default/xui/es/floater_telehub.xml | 28 + .../default/xui/es/floater_texture_ctrl.xml | 17 + .../skins/default/xui/es/floater_tools.xml | 549 +++++++++++++++ .../default/xui/es/floater_top_objects.xml | 50 ++ .../skins/default/xui/es/floater_tos.xml | 26 + .../xui/es/floater_wearable_save_as.xml | 11 + .../default/xui/es/floater_world_map.xml | 89 +++ .../skins/default/xui/es/menu_inventory.xml | 66 ++ .../skins/default/xui/es/menu_viewer.xml | 215 ++++++ .../default/xui/es/panel_group_general.xml | 77 +++ .../default/xui/es/panel_group_invite.xml | 20 + .../default/xui/es/panel_group_land_money.xml | 86 +++ .../default/xui/es/panel_group_notices.xml | 74 +++ .../default/xui/es/panel_group_roles.xml | 161 +++++ .../skins/default/xui/es/panel_login.xml | 37 ++ .../default/xui/es/panel_preferences_chat.xml | 56 ++ .../xui/es/panel_preferences_general.xml | 90 +++ .../xui/es/panel_preferences_graphics1.xml | 43 ++ .../default/xui/es/panel_region_covenant.xml | 52 ++ .../default/xui/es/panel_region_debug.xml | 36 + .../default/xui/es/panel_region_estate.xml | 60 ++ .../default/xui/es/panel_region_general.xml | 42 ++ .../default/xui/es/panel_region_terrain.xml | 30 + .../default/xui/es/panel_region_texture.xml | 57 ++ .../default/xui/es/panel_scrolling_param.xml | 12 + .../skins/default/xui/es/panel_status_bar.xml | 32 + .../skins/default/xui/es/role_actions.xml | 186 ++++++ .../skins/default/xui/es/xui_version.xml | 4 + .../skins/default/xui/fr/floater_about.xml | 4 + .../default/xui/fr/floater_about_land.xml | 334 ++++++++++ .../xui/fr/floater_animation_preview.xml | 160 +++++ .../skins/default/xui/fr/floater_auction.xml | 17 + .../default/xui/fr/floater_avatar_picker.xml | 15 + .../xui/fr/floater_avatar_textures.xml | 30 + .../default/xui/fr/floater_build_options.xml | 7 + .../skins/default/xui/fr/floater_bumps.xml | 21 + .../default/xui/fr/floater_buy_contents.xml | 12 + .../default/xui/fr/floater_buy_currency.xml | 62 ++ .../skins/default/xui/fr/floater_buy_land.xml | 232 +++++++ .../default/xui/fr/floater_buy_object.xml | 11 + .../default/xui/fr/floater_choose_group.xml | 8 + .../default/xui/fr/floater_color_picker.xml | 31 + .../skins/default/xui/fr/floater_critical.xml | 11 + .../default/xui/fr/floater_customize.xml | 494 ++++++++++++++ .../skins/default/xui/fr/floater_gesture.xml | 17 + .../default/xui/fr/floater_god_tools.xml | 146 ++++ .../skins/default/xui/fr/floater_im.xml | 9 + .../default/xui/fr/floater_image_preview.xml | 48 ++ .../default/xui/fr/floater_inventory.xml | 52 ++ .../fr/floater_inventory_item_properties.xml | 74 +++ .../xui/fr/floater_inventory_view_finder.xml | 24 + .../default/xui/fr/floater_land_holdings.xml | 38 ++ .../default/xui/fr/floater_live_lsleditor.xml | 5 + .../skins/default/xui/fr/floater_moveview.xml | 15 + .../default/xui/fr/floater_openobject.xml | 11 + .../skins/default/xui/fr/floater_pay.xml | 21 + .../default/xui/fr/floater_pay_object.xml | 30 + .../skins/default/xui/fr/floater_postcard.xml | 28 + .../default/xui/fr/floater_preferences.xml | 7 + .../xui/fr/floater_preview_animation.xml | 10 + .../xui/fr/floater_preview_gesture.xml | 48 ++ .../xui/fr/floater_preview_notecard.xml | 10 + .../default/xui/fr/floater_preview_sound.xml | 10 + .../xui/fr/floater_preview_texture.xml | 9 + .../default/xui/fr/floater_report_abuse.xml | 78 +++ .../default/xui/fr/floater_script_debug.xml | 6 + .../default/xui/fr/floater_script_preview.xml | 6 + .../default/xui/fr/floater_script_queue.xml | 4 + .../default/xui/fr/floater_script_search.xml | 13 + .../default/xui/fr/floater_sell_land.xml | 68 ++ .../default/xui/fr/floater_settings_debug.xml | 15 + .../skins/default/xui/fr/floater_snapshot.xml | 111 ++++ .../default/xui/fr/floater_sound_preview.xml | 28 + .../skins/default/xui/fr/floater_telehub.xml | 28 + .../default/xui/fr/floater_texture_ctrl.xml | 17 + .../skins/default/xui/fr/floater_tools.xml | 551 +++++++++++++++ .../default/xui/fr/floater_top_objects.xml | 50 ++ .../skins/default/xui/fr/floater_tos.xml | 26 + .../xui/fr/floater_wearable_save_as.xml | 11 + .../default/xui/fr/floater_world_map.xml | 92 +++ .../skins/default/xui/fr/menu_inventory.xml | 66 ++ .../skins/default/xui/fr/menu_viewer.xml | 230 +++++++ .../default/xui/fr/panel_group_general.xml | 78 +++ .../default/xui/fr/panel_group_invite.xml | 20 + .../default/xui/fr/panel_group_land_money.xml | 85 +++ .../default/xui/fr/panel_group_notices.xml | 76 +++ .../default/xui/fr/panel_group_roles.xml | 159 +++++ .../skins/default/xui/fr/panel_login.xml | 39 ++ .../default/xui/fr/panel_preferences_chat.xml | 58 ++ .../xui/fr/panel_preferences_general.xml | 85 +++ .../xui/fr/panel_preferences_graphics1.xml | 43 ++ .../default/xui/fr/panel_region_covenant.xml | 52 ++ .../default/xui/fr/panel_region_debug.xml | 36 + .../default/xui/fr/panel_region_estate.xml | 62 ++ .../default/xui/fr/panel_region_general.xml | 43 ++ .../default/xui/fr/panel_region_terrain.xml | 30 + .../default/xui/fr/panel_region_texture.xml | 72 ++ .../default/xui/fr/panel_scrolling_param.xml | 12 + .../skins/default/xui/fr/panel_status_bar.xml | 32 + .../skins/default/xui/fr/role_actions.xml | 189 ++++++ .../skins/default/xui/fr/xui_version.xml | 4 + .../skins/default/xui/ja/floater_about.xml | 34 + .../default/xui/ja/floater_about_land.xml | 513 ++++++++++++++ .../xui/ja/floater_animation_preview.xml | 175 +++++ .../skins/default/xui/ja/floater_auction.xml | 10 + .../default/xui/ja/floater_avatar_picker.xml | 21 + .../xui/ja/floater_avatar_textures.xml | 36 + .../default/xui/ja/floater_build_options.xml | 8 + .../skins/default/xui/ja/floater_bumps.xml | 21 + .../default/xui/ja/floater_buy_contents.xml | 21 + .../default/xui/ja/floater_buy_currency.xml | 68 ++ .../skins/default/xui/ja/floater_buy_land.xml | 230 +++++++ .../default/xui/ja/floater_buy_object.xml | 26 + .../skins/default/xui/ja/floater_camera.xml | 12 + .../default/xui/ja/floater_choose_group.xml | 8 + .../default/xui/ja/floater_color_picker.xml | 31 + .../skins/default/xui/ja/floater_critical.xml | 14 + .../default/xui/ja/floater_customize.xml | 469 +++++++++++++ .../xui/ja/floater_day_cycle_options.xml | 97 +++ .../xui/ja/floater_device_settings.xml | 2 + .../default/xui/ja/floater_env_settings.xml | 24 + .../skins/default/xui/ja/floater_gesture.xml | 17 + .../default/xui/ja/floater_god_tools.xml | 156 +++++ .../xui/ja/floater_hardware_settings.xml | 42 ++ .../skins/default/xui/ja/floater_hud.xml | 2 + .../skins/default/xui/ja/floater_im.xml | 54 ++ .../default/xui/ja/floater_image_preview.xml | 52 ++ .../skins/default/xui/ja/floater_inspect.xml | 14 + .../default/xui/ja/floater_inventory.xml | 51 ++ .../ja/floater_inventory_item_properties.xml | 85 +++ .../xui/ja/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/ja/floater_joystick.xml | 121 ++++ .../skins/default/xui/ja/floater_lagmeter.xml | 152 +++++ .../default/xui/ja/floater_land_holdings.xml | 42 ++ .../default/xui/ja/floater_live_lsleditor.xml | 11 + .../default/xui/ja/floater_lsl_guide.xml | 7 + .../default/xui/ja/floater_media_browser.xml | 19 + .../skins/default/xui/ja/floater_moveview.xml | 15 + .../default/xui/ja/floater_mute_object.xml | 12 + .../default/xui/ja/floater_my_friends.xml | 7 + .../default/xui/ja/floater_openobject.xml | 10 + .../skins/default/xui/ja/floater_pay.xml | 21 + .../default/xui/ja/floater_pay_object.xml | 30 + .../default/xui/ja/floater_post_process.xml | 54 ++ .../skins/default/xui/ja/floater_postcard.xml | 42 ++ .../default/xui/ja/floater_preferences.xml | 8 + .../xui/ja/floater_preview_animation.xml | 10 + .../xui/ja/floater_preview_classified.xml | 2 + .../default/xui/ja/floater_preview_event.xml | 2 + .../xui/ja/floater_preview_gesture.xml | 70 ++ .../xui/ja/floater_preview_notecard.xml | 16 + .../default/xui/ja/floater_preview_sound.xml | 11 + .../xui/ja/floater_preview_texture.xml | 9 + .../default/xui/ja/floater_region_info.xml | 2 + .../default/xui/ja/floater_report_abuse.xml | 95 +++ .../default/xui/ja/floater_script_debug.xml | 6 + .../default/xui/ja/floater_script_preview.xml | 6 + .../default/xui/ja/floater_script_queue.xml | 4 + .../default/xui/ja/floater_script_search.xml | 13 + .../default/xui/ja/floater_select_key.xml | 7 + .../default/xui/ja/floater_sell_land.xml | 68 ++ .../default/xui/ja/floater_settings_debug.xml | 17 + .../skins/default/xui/ja/floater_snapshot.xml | 116 ++++ .../default/xui/ja/floater_sound_preview.xml | 29 + .../skins/default/xui/ja/floater_telehub.xml | 28 + .../default/xui/ja/floater_texture_ctrl.xml | 24 + .../skins/default/xui/ja/floater_tools.xml | 627 ++++++++++++++++++ .../default/xui/ja/floater_top_objects.xml | 50 ++ .../skins/default/xui/ja/floater_tos.xml | 26 + .../default/xui/ja/floater_url_entry.xml | 13 + .../skins/default/xui/ja/floater_water.xml | 89 +++ .../xui/ja/floater_wearable_save_as.xml | 11 + .../xui/ja/floater_windlight_options.xml | 190 ++++++ .../default/xui/ja/floater_world_map.xml | 94 +++ .../skins/default/xui/ja/menu_inventory.xml | 66 ++ .../skins/default/xui/ja/menu_login.xml | 13 + .../skins/default/xui/ja/menu_slurl.xml | 6 + .../skins/default/xui/ja/menu_viewer.xml | 261 ++++++++ .../skins/default/xui/ja/mime_types.xml | 225 +++++++ .../default/xui/ja/panel_audio_device.xml | 26 + .../skins/default/xui/ja/panel_friends.xml | 53 ++ .../default/xui/ja/panel_group_general.xml | 107 +++ .../default/xui/ja/panel_group_invite.xml | 30 + .../default/xui/ja/panel_group_land_money.xml | 92 +++ .../default/xui/ja/panel_group_notices.xml | 75 +++ .../default/xui/ja/panel_group_roles.xml | 164 +++++ .../skins/default/xui/ja/panel_groups.xml | 16 + .../skins/default/xui/ja/panel_login.xml | 47 ++ .../default/xui/ja/panel_preferences_chat.xml | 61 ++ .../xui/ja/panel_preferences_general.xml | 129 ++++ .../xui/ja/panel_preferences_graphics1.xml | 203 ++++++ .../default/xui/ja/panel_region_covenant.xml | 50 ++ .../default/xui/ja/panel_region_debug.xml | 36 + .../default/xui/ja/panel_region_estate.xml | 74 +++ .../default/xui/ja/panel_region_general.xml | 51 ++ .../default/xui/ja/panel_region_terrain.xml | 30 + .../default/xui/ja/panel_region_texture.xml | 57 ++ .../default/xui/ja/panel_scrolling_param.xml | 12 + .../skins/default/xui/ja/panel_status_bar.xml | 45 ++ .../skins/default/xui/ja/role_actions.xml | 184 +++++ .../newview/skins/default/xui/ja/strings.xml | 390 +++++++++++ .../skins/default/xui/ja/teleport_strings.xml | 87 +++ .../skins/default/xui/ja/xui_version.xml | 4 + .../skins/default/xui/pt/floater_about.xml | 4 + .../default/xui/pt/floater_about_land.xml | 329 +++++++++ .../xui/pt/floater_animation_preview.xml | 157 +++++ .../skins/default/xui/pt/floater_auction.xml | 17 + .../default/xui/pt/floater_avatar_picker.xml | 15 + .../xui/pt/floater_avatar_textures.xml | 30 + .../default/xui/pt/floater_build_options.xml | 7 + .../skins/default/xui/pt/floater_bumps.xml | 21 + .../default/xui/pt/floater_buy_contents.xml | 12 + .../default/xui/pt/floater_buy_currency.xml | 10 + .../skins/default/xui/pt/floater_buy_land.xml | 226 +++++++ .../default/xui/pt/floater_buy_object.xml | 11 + .../default/xui/pt/floater_choose_group.xml | 8 + .../default/xui/pt/floater_color_picker.xml | 31 + .../skins/default/xui/pt/floater_critical.xml | 14 + .../default/xui/pt/floater_customize.xml | 437 ++++++++++++ .../skins/default/xui/pt/floater_gesture.xml | 17 + .../default/xui/pt/floater_god_tools.xml | 146 ++++ .../skins/default/xui/pt/floater_im.xml | 30 + .../default/xui/pt/floater_image_preview.xml | 49 ++ .../skins/default/xui/pt/floater_inspect.xml | 14 + .../default/xui/pt/floater_inventory.xml | 49 ++ .../pt/floater_inventory_item_properties.xml | 73 ++ .../xui/pt/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/pt/floater_joystick.xml | 3 + .../default/xui/pt/floater_land_holdings.xml | 38 ++ .../default/xui/pt/floater_live_lsleditor.xml | 5 + .../default/xui/pt/floater_lsl_guide.xml | 7 + .../skins/default/xui/pt/floater_moveview.xml | 13 + .../default/xui/pt/floater_openobject.xml | 10 + .../skins/default/xui/pt/floater_pay.xml | 21 + .../default/xui/pt/floater_pay_object.xml | 30 + .../skins/default/xui/pt/floater_postcard.xml | 28 + .../default/xui/pt/floater_preferences.xml | 8 + .../xui/pt/floater_preview_animation.xml | 10 + .../xui/pt/floater_preview_gesture.xml | 47 ++ .../xui/pt/floater_preview_notecard.xml | 10 + .../default/xui/pt/floater_preview_sound.xml | 12 + .../xui/pt/floater_preview_texture.xml | 9 + .../default/xui/pt/floater_report_abuse.xml | 74 +++ .../default/xui/pt/floater_script_debug.xml | 6 + .../default/xui/pt/floater_script_preview.xml | 6 + .../default/xui/pt/floater_script_queue.xml | 4 + .../default/xui/pt/floater_script_search.xml | 13 + .../default/xui/pt/floater_sell_land.xml | 68 ++ .../default/xui/pt/floater_settings_debug.xml | 17 + .../skins/default/xui/pt/floater_snapshot.xml | 111 ++++ .../default/xui/pt/floater_sound_preview.xml | 28 + .../skins/default/xui/pt/floater_telehub.xml | 25 + .../default/xui/pt/floater_texture_ctrl.xml | 17 + .../skins/default/xui/pt/floater_tools.xml | 551 +++++++++++++++ .../default/xui/pt/floater_top_objects.xml | 50 ++ .../skins/default/xui/pt/floater_tos.xml | 22 + .../xui/pt/floater_wearable_save_as.xml | 11 + .../default/xui/pt/floater_world_map.xml | 93 +++ .../skins/default/xui/pt/menu_inventory.xml | 67 ++ .../skins/default/xui/pt/menu_viewer.xml | 197 ++++++ .../default/xui/pt/panel_group_general.xml | 72 ++ .../default/xui/pt/panel_group_invite.xml | 18 + .../default/xui/pt/panel_group_land_money.xml | 81 +++ .../default/xui/pt/panel_group_notices.xml | 65 ++ .../default/xui/pt/panel_group_roles.xml | 154 +++++ .../skins/default/xui/pt/panel_login.xml | 37 ++ .../default/xui/pt/panel_preferences_chat.xml | 56 ++ .../xui/pt/panel_preferences_general.xml | 67 ++ .../xui/pt/panel_preferences_graphics1.xml | 40 ++ .../default/xui/pt/panel_region_covenant.xml | 51 ++ .../default/xui/pt/panel_region_debug.xml | 34 + .../default/xui/pt/panel_region_estate.xml | 63 ++ .../default/xui/pt/panel_region_general.xml | 43 ++ .../default/xui/pt/panel_region_terrain.xml | 30 + .../default/xui/pt/panel_region_texture.xml | 57 ++ .../default/xui/pt/panel_scrolling_param.xml | 12 + .../skins/default/xui/pt/panel_status_bar.xml | 32 + .../skins/default/xui/pt/role_actions.xml | 186 ++++++ .../skins/default/xui/pt/teleport_strings.xml | 88 +++ .../skins/default/xui/pt/xui_version.xml | 4 + indra/newview/skins/paths.xml | 4 +- indra/newview/viewer_manifest.py | 37 +- 572 files changed, 29496 insertions(+), 430 deletions(-) create mode 100644 indra/newview/skins/default/colors.xml create mode 100644 indra/newview/skins/default/html/btn_purplepill_bg.png create mode 100644 indra/newview/skins/default/html/de/loading-error/index.html create mode 100644 indra/newview/skins/default/html/en-us/loading-error/index.html create mode 100644 indra/newview/skins/default/html/en-us/loading/loading.html create mode 100644 indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif create mode 100644 indra/newview/skins/default/html/es/loading-error/index.html create mode 100644 indra/newview/skins/default/html/fr/loading-error/index.html create mode 100644 indra/newview/skins/default/html/ja/loading-error/index.html create mode 100644 indra/newview/skins/default/html/ko/loading-error/index.html create mode 100644 indra/newview/skins/default/html/pt/loading-error/index.html create mode 100644 indra/newview/skins/default/html/unabletoconnect.png create mode 100644 indra/newview/skins/default/html/zh/loading-error/index.html create mode 100644 indra/newview/skins/default/textures/alpha_gradient.tga create mode 100644 indra/newview/skins/default/textures/alpha_gradient_2d.j2c create mode 100644 indra/newview/skins/default/textures/arrow_down.tga create mode 100644 indra/newview/skins/default/textures/arrow_up.tga create mode 100644 indra/newview/skins/default/textures/badge_note.j2c create mode 100644 indra/newview/skins/default/textures/badge_ok.j2c create mode 100644 indra/newview/skins/default/textures/badge_warn.j2c create mode 100644 indra/newview/skins/default/textures/button_anim_pause.tga create mode 100644 indra/newview/skins/default/textures/button_anim_pause_selected.tga create mode 100644 indra/newview/skins/default/textures/button_anim_play.tga create mode 100644 indra/newview/skins/default/textures/button_anim_play_selected.tga create mode 100644 indra/newview/skins/default/textures/checkerboard_transparency_bg.png create mode 100644 indra/newview/skins/default/textures/circle.tga create mode 100644 indra/newview/skins/default/textures/cloud-particle.j2c create mode 100644 indra/newview/skins/default/textures/color_swatch_alpha.tga create mode 100644 indra/newview/skins/default/textures/crosshairs.tga create mode 100644 indra/newview/skins/default/textures/direction_arrow.tga create mode 100644 indra/newview/skins/default/textures/down_arrow.png create mode 100644 indra/newview/skins/default/textures/eye_button_active.tga create mode 100644 indra/newview/skins/default/textures/eye_button_inactive.tga create mode 100644 indra/newview/skins/default/textures/ff_edit_mine.tga create mode 100644 indra/newview/skins/default/textures/ff_edit_mine_button.tga create mode 100644 indra/newview/skins/default/textures/ff_edit_theirs.tga create mode 100644 indra/newview/skins/default/textures/ff_edit_theirs_button.tga create mode 100644 indra/newview/skins/default/textures/ff_online_status_button.tga create mode 100644 indra/newview/skins/default/textures/ff_visible_map.tga create mode 100644 indra/newview/skins/default/textures/ff_visible_map_button.tga create mode 100644 indra/newview/skins/default/textures/ff_visible_online.tga create mode 100644 indra/newview/skins/default/textures/ff_visible_online_button.tga create mode 100644 indra/newview/skins/default/textures/folder_arrow.tga create mode 100644 indra/newview/skins/default/textures/foot_shadow.j2c create mode 100644 indra/newview/skins/default/textures/icn_label_web.tga create mode 100644 indra/newview/skins/default/textures/icn_media.tga create mode 100644 indra/newview/skins/default/textures/icn_media_movie.tga create mode 100644 indra/newview/skins/default/textures/icn_media_web.tga create mode 100644 indra/newview/skins/default/textures/icn_voice-groupfocus.tga create mode 100644 indra/newview/skins/default/textures/icn_voice-localchat.tga create mode 100644 indra/newview/skins/default/textures/icn_voice-pvtfocus.tga create mode 100644 indra/newview/skins/default/textures/icon_avatar_offline.tga create mode 100644 indra/newview/skins/default/textures/icon_avatar_online.tga create mode 100644 indra/newview/skins/default/textures/icon_day_cycle.tga create mode 100644 indra/newview/skins/default/textures/icon_diurnal.tga create mode 100644 indra/newview/skins/default/textures/icon_lock.tga create mode 100644 indra/newview/skins/default/textures/icon_top_pick.tga create mode 100644 indra/newview/skins/default/textures/inv_folder_animation.tga create mode 100644 indra/newview/skins/default/textures/lag_status_critical.tga create mode 100644 indra/newview/skins/default/textures/lag_status_good.tga create mode 100644 indra/newview/skins/default/textures/lag_status_warning.tga create mode 100644 indra/newview/skins/default/textures/legend.tga create mode 100644 indra/newview/skins/default/textures/map_avatar_16.tga create mode 100644 indra/newview/skins/default/textures/map_avatar_8.tga create mode 100644 indra/newview/skins/default/textures/map_avatar_above_8.tga create mode 100644 indra/newview/skins/default/textures/map_avatar_below_8.tga create mode 100644 indra/newview/skins/default/textures/map_event.tga create mode 100644 indra/newview/skins/default/textures/map_event_mature.tga create mode 100644 indra/newview/skins/default/textures/map_home.tga create mode 100644 indra/newview/skins/default/textures/map_infohub.tga create mode 100644 indra/newview/skins/default/textures/map_telehub.tga create mode 100644 indra/newview/skins/default/textures/map_track_16.tga create mode 100644 indra/newview/skins/default/textures/map_track_8.tga create mode 100644 indra/newview/skins/default/textures/missing_asset.tga create mode 100644 indra/newview/skins/default/textures/mute_icon.tga create mode 100644 indra/newview/skins/default/textures/notify_caution_icon.tga create mode 100644 indra/newview/skins/default/textures/pixiesmall.j2c create mode 100644 indra/newview/skins/default/textures/propertyline.tga create mode 100644 indra/newview/skins/default/textures/rounded_square.j2c create mode 100644 indra/newview/skins/default/textures/script_error.j2c create mode 100644 indra/newview/skins/default/textures/silhouette.j2c create mode 100644 indra/newview/skins/default/textures/smicon_warn.tga create mode 100644 indra/newview/skins/default/textures/spacer24.tga create mode 100644 indra/newview/skins/default/textures/spacer35.tga create mode 100644 indra/newview/skins/default/textures/square_btn_32x128.tga create mode 100644 indra/newview/skins/default/textures/square_btn_selected_32x128.tga create mode 100644 indra/newview/skins/default/textures/startup_logo.j2c create mode 100644 indra/newview/skins/default/textures/status_busy.tga create mode 100644 indra/newview/skins/default/textures/tabarea.tga create mode 100644 indra/newview/skins/default/textures/tearoff_pressed.tga create mode 100644 indra/newview/skins/default/textures/tearoffbox.tga create mode 100644 indra/newview/skins/default/textures/textures.xml create mode 100644 indra/newview/skins/default/textures/up_arrow.png create mode 100644 indra/newview/skins/default/textures/uv_test1.j2c create mode 100644 indra/newview/skins/default/textures/uv_test2.tga create mode 100644 indra/newview/skins/default/textures/white.tga create mode 100644 indra/newview/skins/default/xui/de/floater_about.xml create mode 100644 indra/newview/skins/default/xui/de/floater_about_land.xml create mode 100644 indra/newview/skins/default/xui/de/floater_animation_preview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_auction.xml create mode 100644 indra/newview/skins/default/xui/de/floater_avatar_picker.xml create mode 100644 indra/newview/skins/default/xui/de/floater_avatar_textures.xml create mode 100644 indra/newview/skins/default/xui/de/floater_build_options.xml create mode 100644 indra/newview/skins/default/xui/de/floater_bumps.xml create mode 100644 indra/newview/skins/default/xui/de/floater_buy_contents.xml create mode 100644 indra/newview/skins/default/xui/de/floater_buy_currency.xml create mode 100644 indra/newview/skins/default/xui/de/floater_buy_land.xml create mode 100644 indra/newview/skins/default/xui/de/floater_buy_object.xml create mode 100644 indra/newview/skins/default/xui/de/floater_camera.xml create mode 100644 indra/newview/skins/default/xui/de/floater_choose_group.xml create mode 100644 indra/newview/skins/default/xui/de/floater_color_picker.xml create mode 100644 indra/newview/skins/default/xui/de/floater_critical.xml create mode 100644 indra/newview/skins/default/xui/de/floater_customize.xml create mode 100644 indra/newview/skins/default/xui/de/floater_day_cycle_options.xml create mode 100644 indra/newview/skins/default/xui/de/floater_device_settings.xml create mode 100644 indra/newview/skins/default/xui/de/floater_env_settings.xml create mode 100644 indra/newview/skins/default/xui/de/floater_gesture.xml create mode 100644 indra/newview/skins/default/xui/de/floater_god_tools.xml create mode 100644 indra/newview/skins/default/xui/de/floater_hardware_settings.xml create mode 100644 indra/newview/skins/default/xui/de/floater_hud.xml create mode 100644 indra/newview/skins/default/xui/de/floater_im.xml create mode 100644 indra/newview/skins/default/xui/de/floater_image_preview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_inspect.xml create mode 100644 indra/newview/skins/default/xui/de/floater_inventory.xml create mode 100644 indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml create mode 100644 indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml create mode 100644 indra/newview/skins/default/xui/de/floater_joystick.xml create mode 100644 indra/newview/skins/default/xui/de/floater_lagmeter.xml create mode 100644 indra/newview/skins/default/xui/de/floater_land_holdings.xml create mode 100644 indra/newview/skins/default/xui/de/floater_live_lsleditor.xml create mode 100644 indra/newview/skins/default/xui/de/floater_lsl_guide.xml create mode 100644 indra/newview/skins/default/xui/de/floater_media_browser.xml create mode 100644 indra/newview/skins/default/xui/de/floater_moveview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_mute_object.xml create mode 100644 indra/newview/skins/default/xui/de/floater_my_friends.xml create mode 100644 indra/newview/skins/default/xui/de/floater_openobject.xml create mode 100644 indra/newview/skins/default/xui/de/floater_pay.xml create mode 100644 indra/newview/skins/default/xui/de/floater_pay_object.xml create mode 100644 indra/newview/skins/default/xui/de/floater_post_process.xml create mode 100644 indra/newview/skins/default/xui/de/floater_postcard.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preferences.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_animation.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_classified.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_event.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_gesture.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_notecard.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_sound.xml create mode 100644 indra/newview/skins/default/xui/de/floater_preview_texture.xml create mode 100644 indra/newview/skins/default/xui/de/floater_region_info.xml create mode 100644 indra/newview/skins/default/xui/de/floater_report_abuse.xml create mode 100644 indra/newview/skins/default/xui/de/floater_script_debug.xml create mode 100644 indra/newview/skins/default/xui/de/floater_script_preview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_script_queue.xml create mode 100644 indra/newview/skins/default/xui/de/floater_script_search.xml create mode 100644 indra/newview/skins/default/xui/de/floater_select_key.xml create mode 100644 indra/newview/skins/default/xui/de/floater_sell_land.xml create mode 100644 indra/newview/skins/default/xui/de/floater_settings_debug.xml create mode 100644 indra/newview/skins/default/xui/de/floater_snapshot.xml create mode 100644 indra/newview/skins/default/xui/de/floater_sound_preview.xml create mode 100644 indra/newview/skins/default/xui/de/floater_telehub.xml create mode 100644 indra/newview/skins/default/xui/de/floater_texture_ctrl.xml create mode 100644 indra/newview/skins/default/xui/de/floater_tools.xml create mode 100644 indra/newview/skins/default/xui/de/floater_top_objects.xml create mode 100644 indra/newview/skins/default/xui/de/floater_tos.xml create mode 100644 indra/newview/skins/default/xui/de/floater_url_entry.xml create mode 100644 indra/newview/skins/default/xui/de/floater_water.xml create mode 100644 indra/newview/skins/default/xui/de/floater_wearable_save_as.xml create mode 100644 indra/newview/skins/default/xui/de/floater_windlight_options.xml create mode 100644 indra/newview/skins/default/xui/de/floater_world_map.xml create mode 100644 indra/newview/skins/default/xui/de/menu_inventory.xml create mode 100644 indra/newview/skins/default/xui/de/menu_login.xml create mode 100644 indra/newview/skins/default/xui/de/menu_slurl.xml create mode 100644 indra/newview/skins/default/xui/de/menu_viewer.xml create mode 100644 indra/newview/skins/default/xui/de/mime_types.xml create mode 100644 indra/newview/skins/default/xui/de/panel_audio_device.xml create mode 100644 indra/newview/skins/default/xui/de/panel_friends.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_general.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_invite.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_land_money.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_notices.xml create mode 100644 indra/newview/skins/default/xui/de/panel_group_roles.xml create mode 100644 indra/newview/skins/default/xui/de/panel_groups.xml create mode 100644 indra/newview/skins/default/xui/de/panel_login.xml create mode 100644 indra/newview/skins/default/xui/de/panel_preferences_chat.xml create mode 100644 indra/newview/skins/default/xui/de/panel_preferences_general.xml create mode 100644 indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_covenant.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_debug.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_estate.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_general.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_terrain.xml create mode 100644 indra/newview/skins/default/xui/de/panel_region_texture.xml create mode 100644 indra/newview/skins/default/xui/de/panel_scrolling_param.xml create mode 100644 indra/newview/skins/default/xui/de/panel_status_bar.xml create mode 100644 indra/newview/skins/default/xui/de/role_actions.xml create mode 100644 indra/newview/skins/default/xui/de/strings.xml create mode 100644 indra/newview/skins/default/xui/de/teleport_strings.xml create mode 100644 indra/newview/skins/default/xui/de/xui_version.xml create mode 100644 indra/newview/skins/default/xui/es/floater_about.xml create mode 100644 indra/newview/skins/default/xui/es/floater_about_land.xml create mode 100644 indra/newview/skins/default/xui/es/floater_animation_preview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_auction.xml create mode 100644 indra/newview/skins/default/xui/es/floater_avatar_picker.xml create mode 100644 indra/newview/skins/default/xui/es/floater_avatar_textures.xml create mode 100644 indra/newview/skins/default/xui/es/floater_build_options.xml create mode 100644 indra/newview/skins/default/xui/es/floater_bumps.xml create mode 100644 indra/newview/skins/default/xui/es/floater_buy_contents.xml create mode 100644 indra/newview/skins/default/xui/es/floater_buy_currency.xml create mode 100644 indra/newview/skins/default/xui/es/floater_buy_land.xml create mode 100644 indra/newview/skins/default/xui/es/floater_buy_object.xml create mode 100644 indra/newview/skins/default/xui/es/floater_choose_group.xml create mode 100644 indra/newview/skins/default/xui/es/floater_color_picker.xml create mode 100644 indra/newview/skins/default/xui/es/floater_critical.xml create mode 100644 indra/newview/skins/default/xui/es/floater_customize.xml create mode 100644 indra/newview/skins/default/xui/es/floater_gesture.xml create mode 100644 indra/newview/skins/default/xui/es/floater_god_tools.xml create mode 100644 indra/newview/skins/default/xui/es/floater_im.xml create mode 100644 indra/newview/skins/default/xui/es/floater_image_preview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_inventory.xml create mode 100644 indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml create mode 100644 indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml create mode 100644 indra/newview/skins/default/xui/es/floater_land_holdings.xml create mode 100644 indra/newview/skins/default/xui/es/floater_live_lsleditor.xml create mode 100644 indra/newview/skins/default/xui/es/floater_moveview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_openobject.xml create mode 100644 indra/newview/skins/default/xui/es/floater_pay.xml create mode 100644 indra/newview/skins/default/xui/es/floater_pay_object.xml create mode 100644 indra/newview/skins/default/xui/es/floater_postcard.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preferences.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preview_animation.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preview_gesture.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preview_notecard.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preview_sound.xml create mode 100644 indra/newview/skins/default/xui/es/floater_preview_texture.xml create mode 100644 indra/newview/skins/default/xui/es/floater_report_abuse.xml create mode 100644 indra/newview/skins/default/xui/es/floater_script_debug.xml create mode 100644 indra/newview/skins/default/xui/es/floater_script_preview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_script_queue.xml create mode 100644 indra/newview/skins/default/xui/es/floater_script_search.xml create mode 100644 indra/newview/skins/default/xui/es/floater_sell_land.xml create mode 100644 indra/newview/skins/default/xui/es/floater_settings_debug.xml create mode 100644 indra/newview/skins/default/xui/es/floater_snapshot.xml create mode 100644 indra/newview/skins/default/xui/es/floater_sound_preview.xml create mode 100644 indra/newview/skins/default/xui/es/floater_telehub.xml create mode 100644 indra/newview/skins/default/xui/es/floater_texture_ctrl.xml create mode 100644 indra/newview/skins/default/xui/es/floater_tools.xml create mode 100644 indra/newview/skins/default/xui/es/floater_top_objects.xml create mode 100644 indra/newview/skins/default/xui/es/floater_tos.xml create mode 100644 indra/newview/skins/default/xui/es/floater_wearable_save_as.xml create mode 100644 indra/newview/skins/default/xui/es/floater_world_map.xml create mode 100644 indra/newview/skins/default/xui/es/menu_inventory.xml create mode 100644 indra/newview/skins/default/xui/es/menu_viewer.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_general.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_invite.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_land_money.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_notices.xml create mode 100644 indra/newview/skins/default/xui/es/panel_group_roles.xml create mode 100644 indra/newview/skins/default/xui/es/panel_login.xml create mode 100644 indra/newview/skins/default/xui/es/panel_preferences_chat.xml create mode 100644 indra/newview/skins/default/xui/es/panel_preferences_general.xml create mode 100644 indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_covenant.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_debug.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_estate.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_general.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_terrain.xml create mode 100644 indra/newview/skins/default/xui/es/panel_region_texture.xml create mode 100644 indra/newview/skins/default/xui/es/panel_scrolling_param.xml create mode 100644 indra/newview/skins/default/xui/es/panel_status_bar.xml create mode 100644 indra/newview/skins/default/xui/es/role_actions.xml create mode 100644 indra/newview/skins/default/xui/es/xui_version.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_about.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_about_land.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_animation_preview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_auction.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_avatar_picker.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_avatar_textures.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_build_options.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_bumps.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_buy_contents.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_buy_currency.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_buy_land.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_buy_object.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_choose_group.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_color_picker.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_critical.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_customize.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_gesture.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_god_tools.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_im.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_image_preview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_inventory.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_land_holdings.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_moveview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_openobject.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_pay.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_pay_object.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_postcard.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preferences.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preview_animation.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preview_gesture.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preview_notecard.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preview_sound.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_preview_texture.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_report_abuse.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_script_debug.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_script_preview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_script_queue.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_script_search.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_sell_land.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_settings_debug.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_snapshot.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_sound_preview.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_telehub.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_tools.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_top_objects.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_tos.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml create mode 100644 indra/newview/skins/default/xui/fr/floater_world_map.xml create mode 100644 indra/newview/skins/default/xui/fr/menu_inventory.xml create mode 100644 indra/newview/skins/default/xui/fr/menu_viewer.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_general.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_invite.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_land_money.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_notices.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_group_roles.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_login.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_preferences_chat.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_preferences_general.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_covenant.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_debug.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_estate.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_general.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_terrain.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_region_texture.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_scrolling_param.xml create mode 100644 indra/newview/skins/default/xui/fr/panel_status_bar.xml create mode 100644 indra/newview/skins/default/xui/fr/role_actions.xml create mode 100644 indra/newview/skins/default/xui/fr/xui_version.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_about.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_about_land.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_animation_preview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_auction.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_avatar_picker.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_avatar_textures.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_build_options.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_bumps.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_buy_contents.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_buy_currency.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_buy_land.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_buy_object.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_camera.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_choose_group.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_color_picker.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_critical.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_customize.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_device_settings.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_env_settings.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_gesture.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_god_tools.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_hardware_settings.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_hud.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_im.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_image_preview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_inspect.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_inventory.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_joystick.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_lagmeter.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_land_holdings.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_lsl_guide.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_media_browser.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_moveview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_mute_object.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_my_friends.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_openobject.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_pay.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_pay_object.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_post_process.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_postcard.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preferences.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_animation.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_classified.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_event.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_gesture.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_notecard.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_sound.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_preview_texture.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_region_info.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_report_abuse.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_script_debug.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_script_preview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_script_queue.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_script_search.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_select_key.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_sell_land.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_settings_debug.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_snapshot.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_sound_preview.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_telehub.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_tools.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_top_objects.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_tos.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_url_entry.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_water.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_windlight_options.xml create mode 100644 indra/newview/skins/default/xui/ja/floater_world_map.xml create mode 100644 indra/newview/skins/default/xui/ja/menu_inventory.xml create mode 100644 indra/newview/skins/default/xui/ja/menu_login.xml create mode 100644 indra/newview/skins/default/xui/ja/menu_slurl.xml create mode 100644 indra/newview/skins/default/xui/ja/menu_viewer.xml create mode 100644 indra/newview/skins/default/xui/ja/mime_types.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_audio_device.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_friends.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_general.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_invite.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_land_money.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_notices.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_group_roles.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_groups.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_login.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_preferences_chat.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_preferences_general.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_covenant.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_debug.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_estate.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_general.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_terrain.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_region_texture.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_scrolling_param.xml create mode 100644 indra/newview/skins/default/xui/ja/panel_status_bar.xml create mode 100644 indra/newview/skins/default/xui/ja/role_actions.xml create mode 100644 indra/newview/skins/default/xui/ja/strings.xml create mode 100644 indra/newview/skins/default/xui/ja/teleport_strings.xml create mode 100644 indra/newview/skins/default/xui/ja/xui_version.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_about.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_about_land.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_animation_preview.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_auction.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_avatar_picker.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_avatar_textures.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_build_options.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_bumps.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_buy_contents.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_buy_currency.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_buy_land.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_buy_object.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_choose_group.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_color_picker.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_critical.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_customize.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_gesture.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_god_tools.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_im.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_image_preview.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_inspect.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_inventory.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_joystick.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_land_holdings.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_lsl_guide.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_moveview.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_openobject.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_pay.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_pay_object.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_postcard.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preferences.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preview_animation.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preview_gesture.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preview_notecard.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preview_sound.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_preview_texture.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_report_abuse.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_script_debug.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_script_preview.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_script_queue.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_script_search.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_sell_land.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_settings_debug.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_snapshot.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_sound_preview.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_telehub.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_tools.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_top_objects.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_tos.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml create mode 100644 indra/newview/skins/default/xui/pt/floater_world_map.xml create mode 100644 indra/newview/skins/default/xui/pt/menu_inventory.xml create mode 100644 indra/newview/skins/default/xui/pt/menu_viewer.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_group_general.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_group_invite.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_group_land_money.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_group_notices.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_group_roles.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_login.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_preferences_chat.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_preferences_general.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_covenant.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_debug.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_estate.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_general.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_terrain.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_region_texture.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_scrolling_param.xml create mode 100644 indra/newview/skins/default/xui/pt/panel_status_bar.xml create mode 100644 indra/newview/skins/default/xui/pt/role_actions.xml create mode 100644 indra/newview/skins/default/xui/pt/teleport_strings.xml create mode 100644 indra/newview/skins/default/xui/pt/xui_version.xml diff --git a/doc/contributions.txt b/doc/contributions.txt index 4fb1de87eb..b8f2a413dd 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -200,6 +200,7 @@ Matthew Dowd VWR-1761 McCabe Maxsted VWR-1318 + VWR-7893 Michelle2 Zenovka VWR-2652 VWR-2834 diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index bed6c1dda5..f58154602b 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -34,7 +34,7 @@ const S32 LL_VERSION_MAJOR = 1; const S32 LL_VERSION_MINOR = 20; -const S32 LL_VERSION_PATCH = 11; +const S32 LL_VERSION_PATCH = 15; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Release"; diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index d7ae9611fc..ef1467ce50 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -145,7 +145,6 @@ U8* LLImageBase::allocateData(S32 size) mData = new U8[size]; if (!mData) { - //llerrs << "allocate image data: " << size << llendl; llwarns << "allocate image data: " << size << llendl; size = 0 ; mWidth = mHeight = 0 ; @@ -243,8 +242,10 @@ LLImageRaw::LLImageRaw(U8 *data, U16 width, U16 height, S8 components) : LLImageBase() { mMemType = LLMemType::MTYPE_IMAGERAW; - allocateDataSize(width, height, components); - memcpy(getData(), data, width*height*components); + if(allocateDataSize(width, height, components)) + { + memcpy(getData(), data, width*height*components); + } ++sRawImageCount; } @@ -795,7 +796,7 @@ void LLImageRaw::copyScaled( LLImageRaw* src ) } -void LLImageRaw::scale( S32 new_width, S32 new_height, BOOL scale_image_data ) +BOOL LLImageRaw::scale( S32 new_width, S32 new_height, BOOL scale_image_data ) { LLMemType mt1((LLMemType::EMemType)mMemType); llassert((1 == getComponents()) || (3 == getComponents()) || (4 == getComponents()) ); @@ -805,7 +806,7 @@ void LLImageRaw::scale( S32 new_width, S32 new_height, BOOL scale_image_data ) if( (old_width == new_width) && (old_height == new_height) ) { - return; // Nothing to do. + return TRUE; // Nothing to do. } // Reallocate the data buffer. @@ -840,8 +841,10 @@ void LLImageRaw::scale( S32 new_width, S32 new_height, BOOL scale_image_data ) U8* temp_buffer = new U8[ temp_data_size ]; if (!temp_buffer) { - llerrs << "Out of memory in LLImageRaw::scale: old (w, h, c) = (" << old_width << ", " << old_height << ", " << (S32)getComponents() << + llwarns << "Out of memory in LLImageRaw::scale: old (w, h, c) = (" << old_width << ", " << old_height << ", " << (S32)getComponents() << ") ; new (w, h, c) = (" << new_width << ", " << new_height << ", " << (S32)getComponents() << ")" << llendl; + + return FALSE ; } memcpy(temp_buffer, getData(), temp_data_size); /* Flawfinder: ignore */ @@ -869,6 +872,8 @@ void LLImageRaw::scale( S32 new_width, S32 new_height, BOOL scale_image_data ) // Clean up delete[] temp_buffer; } + + return TRUE ; } void LLImageRaw::copyLineScaled( U8* in, U8* out, S32 in_pixel_len, S32 out_pixel_len, S32 in_pixel_step, S32 out_pixel_step ) diff --git a/indra/llimage/llimage.h b/indra/llimage/llimage.h index c4fd661976..8db6a6c5bd 100644 --- a/indra/llimage/llimage.h +++ b/indra/llimage/llimage.h @@ -176,7 +176,7 @@ public: void expandToPowerOfTwo(S32 max_dim = MAX_IMAGE_SIZE, BOOL scale_image = TRUE); void contractToPowerOfTwo(S32 max_dim = MAX_IMAGE_SIZE, BOOL scale_image = TRUE); void biasedScaleToPowerOfTwo(S32 max_dim = MAX_IMAGE_SIZE); - void scale( S32 new_width, S32 new_height, BOOL scale_image = TRUE ); + BOOL scale( S32 new_width, S32 new_height, BOOL scale_image = TRUE ); // Fill the buffer with a constant color void fill( const LLColor4U& color ); diff --git a/indra/llimage/llimagebmp.cpp b/indra/llimage/llimagebmp.cpp index b6b1d695d1..477119b82d 100644 --- a/indra/llimage/llimagebmp.cpp +++ b/indra/llimage/llimagebmp.cpp @@ -552,7 +552,10 @@ BOOL LLImageBMP::encode(const LLImageRaw* raw_image, F32 encode_time) int file_bytes = line_bytes*getHeight() + header_bytes; // Allocate the new buffer for the data. - allocateData(file_bytes); + if(!allocateData(file_bytes)) //memory allocation failed + { + return FALSE ; + } magic[0] = 'B'; magic[1] = 'M'; magic[2] = (U8) file_bytes; diff --git a/indra/llmessage/llxfermanager.cpp b/indra/llmessage/llxfermanager.cpp index a94f982b8d..7f05404636 100644 --- a/indra/llmessage/llxfermanager.cpp +++ b/indra/llmessage/llxfermanager.cpp @@ -736,7 +736,7 @@ void LLXferManager::processFileRequest (LLMessageSystem *mesgsys, void ** /*user U8 local_path_u8; mesgsys->getU8("XferID", "FilePath", local_path_u8); - if( local_path_u8 < (U8)LL_PATH_COUNT ) + if( local_path_u8 < (U8)LL_PATH_LAST ) { local_path = (ELLPath)local_path_u8; } diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index d79a0d6034..2e827ed442 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -765,9 +765,17 @@ U8* LLVertexBuffer::mapBuffer(S32 access) { llerrs << "Mapped two VBOs at the same time!" << llendl; } - sMapped = TRUE;*/ + sMapped = TRUE;*/ if (!mMappedData) { + //-------------------- + //print out more debug info before crash + llinfos << "vertex buffer size: (num verts : num indices) = " << getNumVerts() << " : " << getNumIndices() << llendl ; + GLint size ; + glGetBufferParameterivARB(GL_ARRAY_BUFFER_ARB, GL_BUFFER_SIZE_ARB, &size) ; + llinfos << "GL_ARRAY_BUFFER_ARB size is " << size << llendl ; + //-------------------- + GLint buff; glGetIntegerv(GL_ARRAY_BUFFER_BINDING_ARB, &buff); if (buff != mGLBuffer) diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index 05ef69c9a4..9dfaf129f8 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -257,6 +257,10 @@ public: { mFontAlignment = (LLFontGL::HAlign)llclamp(sd.get("halign").asInteger(), (S32)LLFontGL::LEFT, (S32)LLFontGL::HCENTER); } + else + { + mFontAlignment = LLFontGL::LEFT; + } mIndex = -1; mParentCtrl = NULL; diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index ac263250ff..2b6895aa09 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -1666,13 +1666,13 @@ std::string LLUI::locateSkin(const std::string& filename) localization = sConfigGroup->getString("SystemLanguage"); } std::string local_skin = "xui" + slash + localization + slash + filename; - found_file = gDirUtilp->getExpandedFilename(LL_PATH_SKINS, local_skin); + found_file = gDirUtilp->findSkinnedFilename(local_skin); } } if (!gDirUtilp->fileExists(found_file)) { std::string local_skin = "xui" + slash + "en-us" + slash + filename; - found_file = gDirUtilp->getExpandedFilename(LL_PATH_SKINS, local_skin); + found_file = gDirUtilp->findSkinnedFilename(local_skin); } if (!gDirUtilp->fileExists(found_file)) { diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 15601850ae..eaaa9990a0 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -76,7 +76,7 @@ const S32 VPAD = 4; const S32 FLOATER_H_MARGIN = 15; const S32 MIN_WIDGET_HEIGHT = 10; -std::vector LLUICtrlFactory::mXUIPaths; +std::vector LLUICtrlFactory::sXUIPaths; // UI Ctrl class for padding class LLUICtrlLocate : public LLUICtrl @@ -121,12 +121,11 @@ void LLUICtrlFactory::setupPaths() LLXMLNodePtr root; BOOL success = LLXMLNode::parseFile(filename, root, NULL); - mXUIPaths.clear(); + sXUIPaths.clear(); if (success) { LLXMLNodePtr path; - std::string app_dir = gDirUtilp->getAppRODataDir(); for (path = root->getFirstChild(); path.notNull(); path = path->getNextSibling()) { @@ -140,21 +139,20 @@ void LLUICtrlFactory::setupPaths() language = LLUI::sConfigGroup->getString("SystemLanguage"); } } - path_val_ui.setArg("[Language]", language); - std::string fullpath = app_dir + path_val_ui.getString(); + path_val_ui.setArg("[LANGUAGE]", language); - if (std::find(mXUIPaths.begin(), mXUIPaths.end(), fullpath) == mXUIPaths.end()) + if (std::find(sXUIPaths.begin(), sXUIPaths.end(), path_val_ui.getString()) == sXUIPaths.end()) { - mXUIPaths.push_back(app_dir + path_val_ui.getString()); + sXUIPaths.push_back(path_val_ui.getString()); } } } else // parsing failed { std::string slash = gDirUtilp->getDirDelimiter(); - std::string dir = gDirUtilp->getAppRODataDir() + slash + "skins" + slash + "xui" + slash + "en-us" + slash; - llwarns << "XUI::config file unable to open." << llendl; - mXUIPaths.push_back(dir); + std::string dir = "xui" + slash + "en-us"; + llwarns << "XUI::config file unable to open: " << filename << llendl; + sXUIPaths.push_back(dir); } } @@ -163,14 +161,22 @@ void LLUICtrlFactory::setupPaths() //----------------------------------------------------------------------------- // getLayeredXMLNode() //----------------------------------------------------------------------------- -bool LLUICtrlFactory::getLayeredXMLNode(const std::string &filename, LLXMLNodePtr& root) +bool LLUICtrlFactory::getLayeredXMLNode(const std::string &xui_filename, LLXMLNodePtr& root) { - if (!LLXMLNode::parseFile(mXUIPaths.front() + filename, root, NULL)) - { - if (!LLXMLNode::parseFile(filename, root, NULL)) + std::string full_filename = gDirUtilp->findSkinnedFilename(sXUIPaths.front(), xui_filename); + if (full_filename.empty()) + { + llwarns << "Couldn't find UI description file: " << sXUIPaths.front() + gDirUtilp->getDirDelimiter() + xui_filename << llendl; + return false; + } + + if (!LLXMLNode::parseFile(full_filename, root, NULL)) + { + // try filename as passed in since sometimes we load an xml file from a user-supplied path + if (!LLXMLNode::parseFile(xui_filename, root, NULL)) { - llwarns << "Problem reading UI description file: " << mXUIPaths.front() + filename << llendl; - return FALSE; + llwarns << "Problem reading UI description file: " << xui_filename << llendl; + return false; } } @@ -178,13 +184,24 @@ bool LLUICtrlFactory::getLayeredXMLNode(const std::string &filename, LLXMLNodePt std::vector::const_iterator itor; - for (itor = mXUIPaths.begin(), ++itor; itor != mXUIPaths.end(); ++itor) + for (itor = sXUIPaths.begin(), ++itor; itor != sXUIPaths.end(); ++itor) { std::string nodeName; std::string updateName; - LLXMLNode::parseFile((*itor) + filename, updateRoot, NULL); - + std::string layer_filename = gDirUtilp->findSkinnedFilename((*itor), xui_filename); + if(layer_filename.empty()) + { + // no localized version of this file, that's ok, keep looking + continue; + } + + if (!LLXMLNode::parseFile(layer_filename, updateRoot, NULL)) + { + llwarns << "Problem reading localized UI description file: " << (*itor) + gDirUtilp->getDirDelimiter() + xui_filename << llendl; + return false; + } + updateRoot->getAttributeString("name", updateName); root->getAttributeString("name", nodeName); @@ -194,7 +211,7 @@ bool LLUICtrlFactory::getLayeredXMLNode(const std::string &filename, LLXMLNodePt } } - return TRUE; + return true; } diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index 8638986c9f..3e22e196b0 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -87,8 +87,7 @@ private: std::deque mFactoryStack; - - static std::vector mXUIPaths; + static std::vector sXUIPaths; LLPanel* mDummyPanel; }; diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp index 766c1c85b4..f4865202d5 100644 --- a/indra/llvfs/lldir.cpp +++ b/indra/llvfs/lldir.cpp @@ -59,18 +59,8 @@ LLDir_Linux gDirUtil; LLDir *gDirUtilp = (LLDir *)&gDirUtil; -LLDir::LLDir() -: mAppName(""), - mExecutablePathAndName(""), - mExecutableFilename(""), - mExecutableDir(""), - mAppRODataDir(""), - mOSUserDir(""), - mOSUserAppDir(""), - mLindenUserDir(""), - mCAFile(""), - mTempDir(""), - mDirDelimiter("") +LLDir::LLDir() +: mDirDelimiter("/") // fallback to forward slash if not overridden { } @@ -125,7 +115,7 @@ S32 LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask) const std::string LLDir::findFile(const std::string &filename, const std::string searchPath1, const std::string searchPath2, - const std::string searchPath3) + const std::string searchPath3) const { std::vector search_paths; search_paths.push_back(searchPath1); @@ -246,12 +236,37 @@ const std::string &LLDir::getSkinDir() const return mSkinDir; } +const std::string &LLDir::getUserSkinDir() const +{ + return mUserSkinDir; +} + +const std::string& LLDir::getDefaultSkinDir() const +{ + return mDefaultSkinDir; +} + +const std::string LLDir::getSkinBaseDir() const +{ + std::string dir = getAppRODataDir(); + dir += mDirDelimiter; + dir += "skins"; + + return dir; +} + + std::string LLDir::getExpandedFilename(ELLPath location, const std::string& filename) const { return getExpandedFilename(location, "", filename); } -std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subdir, const std::string& in_filename) const +std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subdir, const std::string& filename) const +{ + return getExpandedFilename(location, "", subdir, filename); +} + +std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subdir1, const std::string& subdir2, const std::string& in_filename) const { std::string prefix; switch (location) @@ -324,13 +339,11 @@ std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subd prefix += "skins"; break; - case LL_PATH_HTML: - prefix = getAppRODataDir(); - prefix += mDirDelimiter; - prefix += "skins"; - prefix += mDirDelimiter; - prefix += "html"; - break; + //case LL_PATH_HTML: + // prefix = getSkinDir(); + // prefix += mDirDelimiter; + // prefix += "html"; + // break; case LL_PATH_MOZILLA_PROFILE: prefix = getOSUserAppDir(); @@ -343,15 +356,16 @@ std::string LLDir::getExpandedFilename(ELLPath location, const std::string& subd } std::string filename = in_filename; - if (!subdir.empty()) + if (!subdir2.empty()) { - filename = subdir + mDirDelimiter + in_filename; + filename = subdir2 + mDirDelimiter + filename; } - else + + if (!subdir1.empty()) { - filename = in_filename; + filename = subdir1 + mDirDelimiter + filename; } - + std::string expanded_filename; if (!filename.empty()) { @@ -415,6 +429,30 @@ std::string LLDir::getExtension(const std::string& filepath) const return exten; } +std::string LLDir::findSkinnedFilename(const std::string &filename) const +{ + return findSkinnedFilename("", "", filename); +} + +std::string LLDir::findSkinnedFilename(const std::string &subdir, const std::string &filename) const +{ + return findSkinnedFilename("", subdir, filename); +} + +std::string LLDir::findSkinnedFilename(const std::string &subdir1, const std::string &subdir2, const std::string &filename) const +{ + // generate subdirectory path fragment, e.g. "/foo/bar", "/foo", "" + std::string subdirs = ((subdir1.empty() ? "" : mDirDelimiter) + subdir1) + + ((subdir2.empty() ? "" : mDirDelimiter) + subdir2); + + std::string found_file = findFile(filename, + getUserSkinDir() + subdirs, // first look in user skin override + getSkinDir() + subdirs, // then in current skin + getDefaultSkinDir() + subdirs); // and last in default skin + + return found_file; +} + std::string LLDir::getTempFilename() const { LLUUID random_uuid; @@ -498,6 +536,22 @@ void LLDir::setSkinFolder(const std::string &skin_folder) mSkinDir += "skins"; mSkinDir += mDirDelimiter; mSkinDir += skin_folder; + + // user modifications to current skin + // e.g. c:\documents and settings\users\username\application data\second life\skins\dazzle + mUserSkinDir = getOSUserAppDir(); + mUserSkinDir += mDirDelimiter; + mUserSkinDir += "skins"; + mUserSkinDir += mDirDelimiter; + mUserSkinDir += skin_folder; + + // base skin which is used as fallback for all skinned files + // e.g. c:\program files\secondlife\skins\default + mDefaultSkinDir = getAppRODataDir(); + mDefaultSkinDir += mDirDelimiter; + mDefaultSkinDir += "skins"; + mDefaultSkinDir += mDirDelimiter; + mDefaultSkinDir += "default"; } bool LLDir::setCacheDir(const std::string &path) diff --git a/indra/llvfs/lldir.h b/indra/llvfs/lldir.h index 6e7166c81d..93b15276a3 100644 --- a/indra/llvfs/lldir.h +++ b/indra/llvfs/lldir.h @@ -32,6 +32,7 @@ #ifndef LL_LLDIR_H #define LL_LLDIR_H +// these numbers *may* get serialized, so we need to be explicit typedef enum ELLPath { LL_PATH_NONE = 0, @@ -49,8 +50,8 @@ typedef enum ELLPath LL_PATH_CHAT_LOGS = 12, LL_PATH_PER_ACCOUNT_CHAT_LOGS = 13, LL_PATH_MOZILLA_PROFILE = 14, - LL_PATH_HTML = 15, - LL_PATH_COUNT = 16 +// LL_PATH_HTML = 15, + LL_PATH_LAST = 16 } ELLPath; @@ -69,9 +70,9 @@ class LLDir virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname, BOOL wrap) = 0; virtual void getRandomFileInDir(const std::string &dirname, const std::string &mask, std::string &fname) = 0; virtual std::string getCurPath() = 0; - virtual BOOL fileExists(const std::string &filename) = 0; + virtual BOOL fileExists(const std::string &filename) const = 0; - const std::string findFile(const std::string &filename, const std::string searchPath1 = "", const std::string searchPath2 = "", const std::string searchPath3 = ""); + const std::string findFile(const std::string &filename, const std::string searchPath1 = "", const std::string searchPath2 = "", const std::string searchPath3 = "") const; const std::string &getExecutablePathAndName() const; // Full pathname of the executable const std::string &getAppName() const; // install directory under progams/ ie "SecondLife" const std::string &getExecutableDir() const; // Directory where the executable is located @@ -88,16 +89,26 @@ class LLDir const std::string &getCAFile() const; // File containing TLS certificate authorities const std::string &getDirDelimiter() const; // directory separator for platform (ie. '\' or '/' or ':') const std::string &getSkinDir() const; // User-specified skin folder. + const std::string &getUserSkinDir() const; // User-specified skin folder with user modifications. e.g. c:\documents and settings\username\application data\second life\skins\curskin + const std::string &getDefaultSkinDir() const; // folder for default skin. e.g. c:\program files\second life\skins\default + const std::string getSkinBaseDir() const; // folder that contains all installed skins (not user modifications). e.g. c:\program files\second life\skins // Expanded filename std::string getExpandedFilename(ELLPath location, const std::string &filename) const; std::string getExpandedFilename(ELLPath location, const std::string &subdir, const std::string &filename) const; + std::string getExpandedFilename(ELLPath location, const std::string &subdir1, const std::string &subdir2, const std::string &filename) const; // Base and Directory name extraction std::string getBaseFileName(const std::string& filepath, bool strip_exten = false) const; std::string getDirName(const std::string& filepath) const; std::string getExtension(const std::string& filepath) const; // Excludes '.', e.g getExtension("foo.wav") == "wav" + // these methods search the various skin paths for the specified file in the following order: + // getUserSkinDir(), getSkinDir(), getDefaultSkinDir() + std::string findSkinnedFilename(const std::string &filename) const; + std::string findSkinnedFilename(const std::string &subdir, const std::string &filename) const; + std::string findSkinnedFilename(const std::string &subdir1, const std::string &subdir2, const std::string &filename) const; + // random filename in common temporary directory std::string getTempFilename() const; @@ -125,7 +136,9 @@ protected: std::string mTempDir; std::string mCacheDir; std::string mDirDelimiter; - std::string mSkinDir; // Location for u ser-specified skin info. + std::string mSkinDir; // Location for current skin info. + std::string mDefaultSkinDir; // Location for default skin info. + std::string mUserSkinDir; // Location for user-modified skin info. }; void dir_exists_or_crash(const std::string &dir_name); diff --git a/indra/llvfs/lldir_linux.cpp b/indra/llvfs/lldir_linux.cpp index 7fa30b0ff1..cac32f864d 100644 --- a/indra/llvfs/lldir_linux.cpp +++ b/indra/llvfs/lldir_linux.cpp @@ -353,7 +353,7 @@ std::string LLDir_Linux::getCurPath() } -BOOL LLDir_Linux::fileExists(const std::string &filename) +BOOL LLDir_Linux::fileExists(const std::string &filename) const { struct stat stat_data; // Check the age of the file diff --git a/indra/llvfs/lldir_linux.h b/indra/llvfs/lldir_linux.h index a81df89807..ac52bb573e 100644 --- a/indra/llvfs/lldir_linux.h +++ b/indra/llvfs/lldir_linux.h @@ -49,7 +49,7 @@ public: virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask); virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname, BOOL wrap); virtual void getRandomFileInDir(const std::string &dirname, const std::string &mask, std::string &fname); - /*virtual*/ BOOL fileExists(const std::string &filename); + /*virtual*/ BOOL fileExists(const std::string &filename) const; private: DIR *mDirp; diff --git a/indra/llvfs/lldir_mac.cpp b/indra/llvfs/lldir_mac.cpp index 3cf70d76c2..80134e2978 100644 --- a/indra/llvfs/lldir_mac.cpp +++ b/indra/llvfs/lldir_mac.cpp @@ -361,7 +361,7 @@ std::string LLDir_Mac::getCurPath() -BOOL LLDir_Mac::fileExists(const std::string &filename) +BOOL LLDir_Mac::fileExists(const std::string &filename) const { struct stat stat_data; // Check the age of the file diff --git a/indra/llvfs/lldir_mac.h b/indra/llvfs/lldir_mac.h index c1244a2fa8..6fb2df0c96 100644 --- a/indra/llvfs/lldir_mac.h +++ b/indra/llvfs/lldir_mac.h @@ -49,7 +49,7 @@ public: virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask); virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname, BOOL wrap); virtual void getRandomFileInDir(const std::string &dirname, const std::string &ask, std::string &fname); - virtual BOOL fileExists(const std::string &filename); + virtual BOOL fileExists(const std::string &filename) const; private: int mCurrentDirIndex; diff --git a/indra/llvfs/lldir_win32.cpp b/indra/llvfs/lldir_win32.cpp index 0632813b15..d21babec24 100644 --- a/indra/llvfs/lldir_win32.cpp +++ b/indra/llvfs/lldir_win32.cpp @@ -344,7 +344,7 @@ std::string LLDir_Win32::getCurPath() } -BOOL LLDir_Win32::fileExists(const std::string &filename) +BOOL LLDir_Win32::fileExists(const std::string &filename) const { llstat stat_data; // Check the age of the file diff --git a/indra/llvfs/lldir_win32.h b/indra/llvfs/lldir_win32.h index bddf17503b..70cbec2897 100644 --- a/indra/llvfs/lldir_win32.h +++ b/indra/llvfs/lldir_win32.h @@ -46,7 +46,7 @@ public: /*virtual*/ U32 countFilesInDir(const std::string &dirname, const std::string &mask); /*virtual*/ BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname, BOOL wrap); /*virtual*/ void getRandomFileInDir(const std::string &dirname, const std::string &mask, std::string &fname); - /*virtual*/ BOOL fileExists(const std::string &filename); + /*virtual*/ BOOL fileExists(const std::string &filename) const; private: BOOL LLDir_Win32::getNextFileInDir(const llutf16string &dirname, const std::string &mask, std::string &fname, BOOL wrap); diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp index c5d86f161a..c967855e93 100644 --- a/indra/llxml/llcontrol.cpp +++ b/indra/llxml/llcontrol.cpp @@ -101,7 +101,7 @@ bool LLControlVariable::llsd_compare(const LLSD& a, const LLSD & b) LLControlVariable::LLControlVariable(const std::string& name, eControlType type, LLSD initial, const std::string& comment, - BOOL persist) + bool persist) : mName(name), mComment(comment), mType(type), @@ -121,7 +121,7 @@ LLControlVariable::~LLControlVariable() { } -void LLControlVariable::setValue(const LLSD& value, bool saved_value) +LLSD LLControlVariable::getComparableValue(const LLSD& value) { // *FIX:MEP - The following is needed to make the LLSD::ImplString // work with boolean controls... @@ -131,11 +131,11 @@ void LLControlVariable::setValue(const LLSD& value, bool saved_value) BOOL temp; if(LLStringUtil::convertToBOOL(value.asString(), temp)) { - storable_value = temp; + storable_value = (bool)temp; } else { - storable_value = FALSE; + storable_value = false; } } else @@ -143,6 +143,12 @@ void LLControlVariable::setValue(const LLSD& value, bool saved_value) storable_value = value; } + return storable_value; +} + +void LLControlVariable::setValue(const LLSD& value, bool saved_value) +{ + LLSD storable_value = getComparableValue(value); bool value_changed = llsd_compare(getValue(), storable_value) == FALSE; if(saved_value) { @@ -184,12 +190,46 @@ void LLControlVariable::setValue(const LLSD& value, bool saved_value) } } +void LLControlVariable::setDefaultValue(const LLSD& value) +{ + // Set the control variables value and make it + // the default value. If the active value is changed, + // send the signal. + // *NOTE: Default values are not saved, only read. + + LLSD comparable_value = getComparableValue(value); + bool value_changed = (llsd_compare(getValue(), comparable_value) == FALSE); + resetToDefault(false); + mValues[0] = comparable_value; + if(value_changed) + { + firePropertyChanged(); + } +} + +void LLControlVariable::setPersist(bool state) +{ + mPersist = state; +} + +void LLControlVariable::setComment(const std::string& comment) +{ + mComment = comment; +} + void LLControlVariable::resetToDefault(bool fire_signal) { //The first setting is always the default //Pop to it and fire off the listener - while(mValues.size() > 1) mValues.pop_back(); - if(fire_signal) firePropertyChanged(); + while(mValues.size() > 1) + { + mValues.pop_back(); + } + + if(fire_signal) + { + firePropertyChanged(); + } } bool LLControlVariable::isSaveValueDefault() @@ -206,10 +246,10 @@ LLSD LLControlVariable::getSaveValue() const return mValues[0]; } -LLControlVariable* LLControlGroup::getControl(const std::string& name) +LLPointer LLControlGroup::getControl(const std::string& name) { ctrl_name_table_t::iterator iter = mNameTable.find(name); - return iter == mNameTable.end() ? NULL : iter->second; + return iter == mNameTable.end() ? LLPointer() : iter->second; } @@ -238,7 +278,6 @@ LLControlGroup::~LLControlGroup() void LLControlGroup::cleanup() { - for_each(mNameTable.begin(), mNameTable.end(), DeletePairedPointer()); mNameTable.clear(); } @@ -264,6 +303,7 @@ BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, mNameTable[name]->setValue(initial_val); return TRUE; } + // if not, create the control and add it to the name table LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, persist); mNameTable[name] = control; @@ -979,7 +1019,7 @@ U32 LLControlGroup::saveToFile(const std::string& filename, BOOL nondefault_only return num_saved; } -U32 LLControlGroup::loadFromFile(const std::string& filename) +U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_values) { std::string name; LLSD settings; @@ -1002,7 +1042,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename) } U32 validitems = 0; - int persist = 1; + bool persist = false; for(LLSD::map_const_iterator itr = settings.beginMap(); itr != settings.endMap(); ++itr) { name = (*itr).first; @@ -1017,11 +1057,31 @@ U32 LLControlGroup::loadFromFile(const std::string& filename) LLControlVariable* existing_control = getControl(name); if(existing_control) { - // Check persistence. If not persisted, we shouldn't be loading. - if(existing_control->isPersisted()) + if(set_default_values) { + // Override all previously set properties of this control. + // ... except for type. The types must match. + eControlType new_type = typeStringToEnum(control_map["Type"].asString()); + if(existing_control->isType(new_type)) + { + existing_control->setDefaultValue(control_map["Value"]); + existing_control->setPersist(persist); + existing_control->setComment(control_map["Comment"].asString()); + } + else + { + llerrs << "Mismatched type of control variable '" + << name << "' found while loading '" + << filename << "'." << llendl; + } + } + else if(existing_control->isPersisted()) + { + existing_control->setValue(control_map["Value"]); } + // *NOTE: If not persisted and not setting defaults, + // the value should not get loaded. } else { diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index 289e85b8a4..b67c237071 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -83,7 +83,7 @@ typedef enum e_control_type TYPE_COUNT } eControlType; -class LLControlVariable +class LLControlVariable : public LLRefCount { friend class LLControlGroup; typedef boost::signal signal_t; @@ -92,7 +92,7 @@ private: std::string mName; std::string mComment; eControlType mType; - BOOL mPersist; + bool mPersist; std::vector mValues; signal_t mSignal; @@ -100,7 +100,7 @@ private: public: LLControlVariable(const std::string& name, eControlType type, LLSD initial, const std::string& comment, - BOOL persist = TRUE); + bool persist = true); virtual ~LLControlVariable(); @@ -108,33 +108,41 @@ public: const std::string& getComment() const { return mComment; } eControlType type() { return mType; } - BOOL isType(eControlType tp) { return tp == mType; } + bool isType(eControlType tp) { return tp == mType; } - void resetToDefault(bool fire_signal = TRUE); + void resetToDefault(bool fire_signal = false); signal_t* getSignal() { return &mSignal; } bool isDefault() { return (mValues.size() == 1); } bool isSaveValueDefault(); bool isPersisted() { return mPersist; } - void set(const LLSD& val) { setValue(val); } LLSD get() const { return getValue(); } - LLSD getDefault() const { return mValues.front(); } LLSD getValue() const { return mValues.back(); } + LLSD getDefault() const { return mValues.front(); } LLSD getSaveValue() const; + + void set(const LLSD& val) { setValue(val); } void setValue(const LLSD& value, bool saved_value = TRUE); + void setDefaultValue(const LLSD& value); + void setPersist(bool state); + void setComment(const std::string& comment); + void firePropertyChanged() { mSignal(mValues.back()); } - bool llsd_compare(const LLSD& a, const LLSD& b); +private: + LLSD getComparableValue(const LLSD& value); + bool llsd_compare(const LLSD& a, const LLSD & b); + }; //const U32 STRING_CACHE_SIZE = 10000; class LLControlGroup { protected: - typedef std::map ctrl_name_table_t; + typedef std::map > ctrl_name_table_t; ctrl_name_table_t mNameTable; std::set mWarnings; std::string mTypeString[TYPE_COUNT]; @@ -146,7 +154,7 @@ public: ~LLControlGroup(); void cleanup(); - LLControlVariable* getControl(const std::string& name); + LLPointer getControl(const std::string& name); struct ApplyFunctor { @@ -213,7 +221,7 @@ public: // as the given type. U32 loadFromFileLegacy(const std::string& filename, BOOL require_declaration = TRUE, eControlType declare_as = TYPE_STRING); U32 saveToFile(const std::string& filename, BOOL nondefault_only); - U32 loadFromFile(const std::string& filename); + U32 loadFromFile(const std::string& filename, bool default_values = false); void resetToDefaults(); diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 12085ee77e..e65721e124 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -277,6 +277,7 @@ set(viewer_SOURCE_FILES llpanelpermissions.cpp llpanelpick.cpp llpanelplace.cpp + llpanelskins.cpp llpanelvolume.cpp llpanelweb.cpp llparcelselection.cpp @@ -665,6 +666,7 @@ set(viewer_HEADER_FILES llpanelpermissions.h llpanelpick.h llpanelplace.h + llpanelskins.h llpanelvolume.h llpanelweb.h llparcelselection.h @@ -1003,180 +1005,182 @@ endif (WINDOWS) # Add the xui files. This is handy for searching for xui elements # from within the IDE set(viewer_XUI_FILES - skins/xui/en-us/alerts.xml - skins/xui/en-us/floater_about_land.xml - skins/xui/en-us/floater_about.xml - skins/xui/en-us/floater_active_speakers.xml - skins/xui/en-us/floater_animation_preview.xml - skins/xui/en-us/floater_auction.xml - skins/xui/en-us/floater_audio_volume.xml - skins/xui/en-us/floater_avatar_picker.xml - skins/xui/en-us/floater_avatar_textures.xml - skins/xui/en-us/floater_build_options.xml - skins/xui/en-us/floater_bumps.xml - skins/xui/en-us/floater_buy_contents.xml - skins/xui/en-us/floater_buy_currency.xml - skins/xui/en-us/floater_buy_land.xml - skins/xui/en-us/floater_buy_object.xml - skins/xui/en-us/floater_camera.xml - skins/xui/en-us/floater_chat_history.xml - skins/xui/en-us/floater_chatterbox.xml - skins/xui/en-us/floater_choose_group.xml - skins/xui/en-us/floater_clothing.xml - skins/xui/en-us/floater_color_picker.xml - skins/xui/en-us/floater_critical.xml - skins/xui/en-us/floater_customize.xml - skins/xui/en-us/floater_day_cycle_options.xml - skins/xui/en-us/floater_device_settings.xml - skins/xui/en-us/floater_directory.xml - skins/xui/en-us/floater_env_settings.xml - skins/xui/en-us/floater_gesture.xml - skins/xui/en-us/floater_god_tools.xml - skins/xui/en-us/floater_group_info.xml - skins/xui/en-us/floater_hardware_settings.xml - skins/xui/en-us/floater_html.xml - skins/xui/en-us/floater_hud.xml - skins/xui/en-us/floater_image_preview.xml - skins/xui/en-us/floater_import.xml - skins/xui/en-us/floater_im.xml - skins/xui/en-us/floater_inspect.xml - skins/xui/en-us/floater_instant_message_ad_hoc.xml - skins/xui/en-us/floater_instant_message_group.xml - skins/xui/en-us/floater_instant_message.xml - skins/xui/en-us/floater_inventory_item_properties.xml - skins/xui/en-us/floater_inventory_view_finder.xml - skins/xui/en-us/floater_inventory.xml - skins/xui/en-us/floater_joystick.xml - skins/xui/en-us/floater_lagmeter.xml - skins/xui/en-us/floater_land_holdings.xml - skins/xui/en-us/floater_landmark_ctrl.xml - skins/xui/en-us/floater_live_lsleditor.xml - skins/xui/en-us/floater_lsl_guide.xml - skins/xui/en-us/floater_media_browser.xml - skins/xui/en-us/floater_moveview.xml - skins/xui/en-us/floater_mute_object.xml - skins/xui/en-us/floater_mute.xml - skins/xui/en-us/floater_my_friends.xml - skins/xui/en-us/floater_name_description.xml - skins/xui/en-us/floater_new_im.xml - skins/xui/en-us/floater_new_outfit_dialog.xml - skins/xui/en-us/floater_openobject.xml - skins/xui/en-us/floater_pay_object.xml - skins/xui/en-us/floater_pay.xml - skins/xui/en-us/floater_postcard.xml - skins/xui/en-us/floater_post_process.xml - skins/xui/en-us/floater_preferences.xml - skins/xui/en-us/floater_preview_animation.xml - skins/xui/en-us/floater_preview_classified.xml - skins/xui/en-us/floater_preview_embedded_texture.xml - skins/xui/en-us/floater_preview_event.xml - skins/xui/en-us/floater_preview_existing_landmark.xml - skins/xui/en-us/floater_preview_gesture.xml - skins/xui/en-us/floater_preview_notecard_keep_discard.xml - skins/xui/en-us/floater_preview_notecard.xml - skins/xui/en-us/floater_preview_sound.xml - skins/xui/en-us/floater_preview_texture_keep_discard.xml - skins/xui/en-us/floater_preview_texture.xml - skins/xui/en-us/floater_preview_url.xml - skins/xui/en-us/floater_price_for_listing.xml - skins/xui/en-us/floater_profile.xml - skins/xui/en-us/floater_region_info.xml - skins/xui/en-us/floater_report_abuse.xml - skins/xui/en-us/floater_report_bug.xml - skins/xui/en-us/floater_script_debug.xml - skins/xui/en-us/floater_script_ed_panel.xml - skins/xui/en-us/floater_script_preview.xml - skins/xui/en-us/floater_script_queue.xml - skins/xui/en-us/floater_script_search.xml - skins/xui/en-us/floater_select_key.xml - skins/xui/en-us/floater_sell_land.xml - skins/xui/en-us/floater_settings_debug.xml - skins/xui/en-us/floater_sim_release_message.xml - skins/xui/en-us/floater_snapshot.xml - skins/xui/en-us/floater_sound_preview.xml - skins/xui/en-us/floater_telehub.xml - skins/xui/en-us/floater_test.xml - skins/xui/en-us/floater_texture_ctrl.xml - skins/xui/en-us/floater_tools.xml - skins/xui/en-us/floater_top_objects.xml - skins/xui/en-us/floater_tos.xml - skins/xui/en-us/floater_url_entry.xml - skins/xui/en-us/floater_voice_wizard.xml - skins/xui/en-us/floater_water.xml - skins/xui/en-us/floater_wearable_save_as.xml - skins/xui/en-us/floater_windlight_options.xml - skins/xui/en-us/floater_world_map.xml - skins/xui/en-us/menu_inventory.xml - skins/xui/en-us/menu_login.xml - skins/xui/en-us/menu_pie_attachment.xml - skins/xui/en-us/menu_pie_avatar.xml - skins/xui/en-us/menu_pie_land.xml - skins/xui/en-us/menu_pie_object.xml - skins/xui/en-us/menu_pie_self.xml - skins/xui/en-us/menu_slurl.xml - skins/xui/en-us/menu_viewer.xml - skins/xui/en-us/mime_types.xml - skins/xui/en-us/notify.xml - skins/xui/en-us/panel_audio_device.xml - skins/xui/en-us/panel_audio.xml - skins/xui/en-us/panel_avatar_classified.xml - skins/xui/en-us/panel_avatar_pick.xml - skins/xui/en-us/panel_avatar.xml - skins/xui/en-us/panel_bars.xml - skins/xui/en-us/panel_bg_tab.xml - skins/xui/en-us/panel_bg_toolbar.xml - skins/xui/en-us/panel_chat_bar.xml - skins/xui/en-us/panel_classified.xml - skins/xui/en-us/panel_event.xml - skins/xui/en-us/panel_friends.xml - skins/xui/en-us/panel_group_finder.xml - skins/xui/en-us/panel_group_general.xml - skins/xui/en-us/panel_group_invite.xml - skins/xui/en-us/panel_group_land_money.xml - skins/xui/en-us/panel_group_notices.xml - skins/xui/en-us/panel_group_roles.xml - skins/xui/en-us/panel_groups.xml - skins/xui/en-us/panel_group_voting.xml - skins/xui/en-us/panel_group.xml - skins/xui/en-us/panel_land_covenant.xml - skins/xui/en-us/panel_login.xml - skins/xui/en-us/panel_master_volume.xml - skins/xui/en-us/panel_media_controls.xml - skins/xui/en-us/panel_media_remote_expanded.xml - skins/xui/en-us/panel_media_remote.xml - skins/xui/en-us/panel_overlaybar.xml - skins/xui/en-us/panel_place_small.xml - skins/xui/en-us/panel_place.xml - skins/xui/en-us/panel_preferences_audio.xml - skins/xui/en-us/panel_preferences_chat.xml - skins/xui/en-us/panel_preferences_general.xml - skins/xui/en-us/panel_preferences_graphics1.xml - skins/xui/en-us/panel_preferences_im.xml - skins/xui/en-us/panel_preferences_input.xml - skins/xui/en-us/panel_preferences_network.xml - skins/xui/en-us/panel_preferences_popups.xml - skins/xui/en-us/panel_preferences_voice.xml - skins/xui/en-us/panel_preferences_web.xml - skins/xui/en-us/panel_region_covenant.xml - skins/xui/en-us/panel_region_debug.xml - skins/xui/en-us/panel_region_estate.xml - skins/xui/en-us/panel_region_general.xml - skins/xui/en-us/panel_region_terrain.xml - skins/xui/en-us/panel_region_texture.xml - skins/xui/en-us/panel_scrolling_param.xml - skins/xui/en-us/panel_speaker_controls.xml - skins/xui/en-us/panel_status_bar.xml - skins/xui/en-us/panel_toolbar.xml - skins/xui/en-us/panel_top_pick.xml - skins/xui/en-us/panel_voice_controls.xml - skins/xui/en-us/panel_voice_enable.xml - skins/xui/en-us/panel_voice_options.xml - skins/xui/en-us/panel_voice_remote_expanded.xml - skins/xui/en-us/panel_voice_remote.xml - skins/xui/en-us/role_actions.xml - skins/xui/en-us/strings.xml - skins/xui/en-us/teleport_strings.xml - skins/xui/en-us/xui_version.xml + skins/default/colors.xml + skins/default/colors_base.xml + skins/default/xui/en-us/alerts.xml + skins/default/xui/en-us/floater_about_land.xml + skins/default/xui/en-us/floater_about.xml + skins/default/xui/en-us/floater_active_speakers.xml + skins/default/xui/en-us/floater_animation_preview.xml + skins/default/xui/en-us/floater_auction.xml + skins/default/xui/en-us/floater_audio_volume.xml + skins/default/xui/en-us/floater_avatar_picker.xml + skins/default/xui/en-us/floater_avatar_textures.xml + skins/default/xui/en-us/floater_build_options.xml + skins/default/xui/en-us/floater_bumps.xml + skins/default/xui/en-us/floater_buy_contents.xml + skins/default/xui/en-us/floater_buy_currency.xml + skins/default/xui/en-us/floater_buy_land.xml + skins/default/xui/en-us/floater_buy_object.xml + skins/default/xui/en-us/floater_camera.xml + skins/default/xui/en-us/floater_chat_history.xml + skins/default/xui/en-us/floater_chatterbox.xml + skins/default/xui/en-us/floater_choose_group.xml + skins/default/xui/en-us/floater_clothing.xml + skins/default/xui/en-us/floater_color_picker.xml + skins/default/xui/en-us/floater_critical.xml + skins/default/xui/en-us/floater_customize.xml + skins/default/xui/en-us/floater_day_cycle_options.xml + skins/default/xui/en-us/floater_device_settings.xml + skins/default/xui/en-us/floater_directory.xml + skins/default/xui/en-us/floater_env_settings.xml + skins/default/xui/en-us/floater_gesture.xml + skins/default/xui/en-us/floater_god_tools.xml + skins/default/xui/en-us/floater_group_info.xml + skins/default/xui/en-us/floater_hardware_settings.xml + skins/default/xui/en-us/floater_html.xml + skins/default/xui/en-us/floater_hud.xml + skins/default/xui/en-us/floater_image_preview.xml + skins/default/xui/en-us/floater_import.xml + skins/default/xui/en-us/floater_im.xml + skins/default/xui/en-us/floater_inspect.xml + skins/default/xui/en-us/floater_instant_message_ad_hoc.xml + skins/default/xui/en-us/floater_instant_message_group.xml + skins/default/xui/en-us/floater_instant_message.xml + skins/default/xui/en-us/floater_inventory_item_properties.xml + skins/default/xui/en-us/floater_inventory_view_finder.xml + skins/default/xui/en-us/floater_inventory.xml + skins/default/xui/en-us/floater_joystick.xml + skins/default/xui/en-us/floater_lagmeter.xml + skins/default/xui/en-us/floater_land_holdings.xml + skins/default/xui/en-us/floater_landmark_ctrl.xml + skins/default/xui/en-us/floater_live_lsleditor.xml + skins/default/xui/en-us/floater_lsl_guide.xml + skins/default/xui/en-us/floater_media_browser.xml + skins/default/xui/en-us/floater_moveview.xml + skins/default/xui/en-us/floater_mute_object.xml + skins/default/xui/en-us/floater_mute.xml + skins/default/xui/en-us/floater_my_friends.xml + skins/default/xui/en-us/floater_name_description.xml + skins/default/xui/en-us/floater_new_im.xml + skins/default/xui/en-us/floater_new_outfit_dialog.xml + skins/default/xui/en-us/floater_openobject.xml + skins/default/xui/en-us/floater_pay_object.xml + skins/default/xui/en-us/floater_pay.xml + skins/default/xui/en-us/floater_postcard.xml + skins/default/xui/en-us/floater_post_process.xml + skins/default/xui/en-us/floater_preferences.xml + skins/default/xui/en-us/floater_preview_animation.xml + skins/default/xui/en-us/floater_preview_classified.xml + skins/default/xui/en-us/floater_preview_embedded_texture.xml + skins/default/xui/en-us/floater_preview_event.xml + skins/default/xui/en-us/floater_preview_existing_landmark.xml + skins/default/xui/en-us/floater_preview_gesture.xml + skins/default/xui/en-us/floater_preview_notecard_keep_discard.xml + skins/default/xui/en-us/floater_preview_notecard.xml + skins/default/xui/en-us/floater_preview_sound.xml + skins/default/xui/en-us/floater_preview_texture_keep_discard.xml + skins/default/xui/en-us/floater_preview_texture.xml + skins/default/xui/en-us/floater_preview_url.xml + skins/default/xui/en-us/floater_price_for_listing.xml + skins/default/xui/en-us/floater_profile.xml + skins/default/xui/en-us/floater_region_info.xml + skins/default/xui/en-us/floater_report_abuse.xml + skins/default/xui/en-us/floater_report_bug.xml + skins/default/xui/en-us/floater_script_debug.xml + skins/default/xui/en-us/floater_script_ed_panel.xml + skins/default/xui/en-us/floater_script_preview.xml + skins/default/xui/en-us/floater_script_queue.xml + skins/default/xui/en-us/floater_script_search.xml + skins/default/xui/en-us/floater_select_key.xml + skins/default/xui/en-us/floater_sell_land.xml + skins/default/xui/en-us/floater_settings_debug.xml + skins/default/xui/en-us/floater_sim_release_message.xml + skins/default/xui/en-us/floater_snapshot.xml + skins/default/xui/en-us/floater_sound_preview.xml + skins/default/xui/en-us/floater_telehub.xml + skins/default/xui/en-us/floater_test.xml + skins/default/xui/en-us/floater_texture_ctrl.xml + skins/default/xui/en-us/floater_tools.xml + skins/default/xui/en-us/floater_top_objects.xml + skins/default/xui/en-us/floater_tos.xml + skins/default/xui/en-us/floater_url_entry.xml + skins/default/xui/en-us/floater_voice_wizard.xml + skins/default/xui/en-us/floater_water.xml + skins/default/xui/en-us/floater_wearable_save_as.xml + skins/default/xui/en-us/floater_windlight_options.xml + skins/default/xui/en-us/floater_world_map.xml + skins/default/xui/en-us/menu_inventory.xml + skins/default/xui/en-us/menu_login.xml + skins/default/xui/en-us/menu_pie_attachment.xml + skins/default/xui/en-us/menu_pie_avatar.xml + skins/default/xui/en-us/menu_pie_land.xml + skins/default/xui/en-us/menu_pie_object.xml + skins/default/xui/en-us/menu_pie_self.xml + skins/default/xui/en-us/menu_slurl.xml + skins/default/xui/en-us/menu_viewer.xml + skins/default/xui/en-us/mime_types.xml + skins/default/xui/en-us/notify.xml + skins/default/xui/en-us/panel_audio_device.xml + skins/default/xui/en-us/panel_audio.xml + skins/default/xui/en-us/panel_avatar_classified.xml + skins/default/xui/en-us/panel_avatar_pick.xml + skins/default/xui/en-us/panel_avatar.xml + skins/default/xui/en-us/panel_bars.xml + skins/default/xui/en-us/panel_bg_tab.xml + skins/default/xui/en-us/panel_bg_toolbar.xml + skins/default/xui/en-us/panel_chat_bar.xml + skins/default/xui/en-us/panel_classified.xml + skins/default/xui/en-us/panel_event.xml + skins/default/xui/en-us/panel_friends.xml + skins/default/xui/en-us/panel_group_finder.xml + skins/default/xui/en-us/panel_group_general.xml + skins/default/xui/en-us/panel_group_invite.xml + skins/default/xui/en-us/panel_group_land_money.xml + skins/default/xui/en-us/panel_group_notices.xml + skins/default/xui/en-us/panel_group_roles.xml + skins/default/xui/en-us/panel_groups.xml + skins/default/xui/en-us/panel_group_voting.xml + skins/default/xui/en-us/panel_group.xml + skins/default/xui/en-us/panel_land_covenant.xml + skins/default/xui/en-us/panel_login.xml + skins/default/xui/en-us/panel_master_volume.xml + skins/default/xui/en-us/panel_media_controls.xml + skins/default/xui/en-us/panel_media_remote_expanded.xml + skins/default/xui/en-us/panel_media_remote.xml + skins/default/xui/en-us/panel_overlaybar.xml + skins/default/xui/en-us/panel_place_small.xml + skins/default/xui/en-us/panel_place.xml + skins/default/xui/en-us/panel_preferences_audio.xml + skins/default/xui/en-us/panel_preferences_chat.xml + skins/default/xui/en-us/panel_preferences_general.xml + skins/default/xui/en-us/panel_preferences_graphics1.xml + skins/default/xui/en-us/panel_preferences_im.xml + skins/default/xui/en-us/panel_preferences_input.xml + skins/default/xui/en-us/panel_preferences_network.xml + skins/default/xui/en-us/panel_preferences_popups.xml + skins/default/xui/en-us/panel_preferences_voice.xml + skins/default/xui/en-us/panel_preferences_web.xml + skins/default/xui/en-us/panel_region_covenant.xml + skins/default/xui/en-us/panel_region_debug.xml + skins/default/xui/en-us/panel_region_estate.xml + skins/default/xui/en-us/panel_region_general.xml + skins/default/xui/en-us/panel_region_terrain.xml + skins/default/xui/en-us/panel_region_texture.xml + skins/default/xui/en-us/panel_scrolling_param.xml + skins/default/xui/en-us/panel_speaker_controls.xml + skins/default/xui/en-us/panel_status_bar.xml + skins/default/xui/en-us/panel_toolbar.xml + skins/default/xui/en-us/panel_top_pick.xml + skins/default/xui/en-us/panel_voice_controls.xml + skins/default/xui/en-us/panel_voice_enable.xml + skins/default/xui/en-us/panel_voice_options.xml + skins/default/xui/en-us/panel_voice_remote_expanded.xml + skins/default/xui/en-us/panel_voice_remote.xml + skins/default/xui/en-us/role_actions.xml + skins/default/xui/en-us/strings.xml + skins/default/xui/en-us/teleport_strings.xml + skins/default/xui/en-us/xui_version.xml ) source_group("XUI Files" FILES ${viewer_XUI_FILES}) @@ -1189,8 +1193,6 @@ list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES}) set(viewer_APPSETTINGS_FILES app_settings/anim.ini app_settings/cmd_line.xml - app_settings/colors.xml - app_settings/colors_base.xml app_settings/grass.xml app_settings/high_graphics.xml app_settings/keys.ini diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml index 746e56d821..db665b72dd 100644 --- a/indra/newview/app_settings/cmd_line.xml +++ b/indra/newview/app_settings/cmd_line.xml @@ -187,6 +187,8 @@ count 2 + compose + true diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0269e25658..8ca74f6d0f 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2868,7 +2868,7 @@ 0 - FloaterHUDRect + FloaterHUDRect2 Comment Rectangle for HUD Floater window @@ -2877,10 +2877,13 @@ Type Rect Value + 0 - 282 - 342 + 292 + 362 0 @@ -7185,16 +7188,16 @@ Value 0 - SkinFolder + SkinCurrent Comment - The skin folder to use. + The currently selected skin. Persist 1 Type String Value - + default SkyAmbientScale @@ -7766,6 +7769,17 @@ 4 + TutorialURL + + Comment + URL for tutorial menu item, set automatically during login + Persist + 0 + Type + String + Value + + TypeAheadTimeout Comment diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index f038e0f64d..52ea166c39 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -75,6 +75,7 @@ ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1 ATI Radeon HD 3400 .*ATI.*Radeon HD 34.* 1 1 ATI Radeon HD 3600 .*ATI.*Radeon HD 36.* 3 1 ATI Radeon HD 3800 .*ATI.*Radeon HD 38.* 3 1 +ATI Radeon HD 4800 .*ATI.*Radeon HD 48.* 3 1 ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 ATI Radeon 7xxx .*ATI.*Radeon 7.* 0 1 ATI Radeon 8xxx .*ATI.*Radeon 8.* 0 1 diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index fb2fa23400..eabedfb2ef 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -110,6 +110,10 @@ Call RemoveNSIS ; Check for old NSIS install to remove ;;; Need to clean out shader files from previous installs to fix DEV-5663 Call RemoveOldShaders +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Need to clean out old XUI files that predate skinning +Call RemoveOldXUI + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Files ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -488,6 +492,22 @@ RMDir /r "$INSTDIR\app_settings\shaders\*" FunctionEnd +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Delete the installed XUI files +;;; We've changed the directory hierarchy for skins, putting all XUI and texture +;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed +;;; to skins/xui/en-us. Need to clean up the old path when upgrading +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Function RemoveOldXUI + +;; remove old XUI and texture files +RmDir /r "$INSTDIR\skins\html" +RmDir /r "$INSTDIR\skins\xui" +RmDir /r "$INSTDIR\skins\textures" +Delete "$INSTDIR\skins\*.txt" + +FunctionEnd + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Delete files in Documents and Settings\\SecondLife ; Delete files in Documents and Settings\All Users\SecondLife diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 8661b07ce2..64188256db 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -623,6 +623,9 @@ bool LLAppViewer::init() // Need to do this initialization before we do anything else, since anything // that touches files should really go through the lldir API gDirUtilp->initAppDirs("SecondLife"); + // set skin search path to default, will be overridden later + // this allows simple skinned file lookups to work + gDirUtilp->setSkinFolder("default"); initLogging(); @@ -686,6 +689,8 @@ bool LLAppViewer::init() */ #endif + //test_cached_control(); + // track number of times that app has run mNumSessions = gSavedSettings.getS32("NumSessions"); mNumSessions++; @@ -699,12 +704,12 @@ bool LLAppViewer::init() } // Load art UUID information, don't require these strings to be declared in code. - std::string colors_base_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors_base.xml"); + std::string colors_base_filename = gDirUtilp->findSkinnedFilename("colors_base.xml"); LL_DEBUGS("InitInfo") << "Loading base colors from " << colors_base_filename << LL_ENDL; gColors.loadFromFileLegacy(colors_base_filename, FALSE, TYPE_COL4U); // Load overrides from user colors file - std::string user_colors_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "colors.xml"); + std::string user_colors_filename = gDirUtilp->findSkinnedFilename("colors.xml"); LL_DEBUGS("InitInfo") << "Loading user colors from " << user_colors_filename << LL_ENDL; if (gColors.loadFromFileLegacy(user_colors_filename, FALSE, TYPE_COL4U) == 0) { @@ -1475,7 +1480,7 @@ bool LLAppViewer::initLogging() return true; } -void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index) +void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index, bool set_defaults) { for(LLSD::map_iterator itr = mSettingsFileList.beginMap(); itr != mSettingsFileList.endMap(); ++itr) { @@ -1508,7 +1513,7 @@ void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index) llwarns << "Cannot load " << settings_file << " - No matching settings group for name " << settings_name << llendl; continue; } - if(!gSettings[settings_name]->loadFromFile(full_settings_path)) + if(!gSettings[settings_name]->loadFromFile(full_settings_path, set_defaults)) { llwarns << "Cannot load " << full_settings_path << " - No settings found." << llendl; } @@ -1557,7 +1562,8 @@ bool LLAppViewer::initConfiguration() // - load per account settings (happens in llstartup // - load defaults - loadSettingsFromDirectory(LL_PATH_APP_SETTINGS); + bool set_defaults = true; + loadSettingsFromDirectory(LL_PATH_APP_SETTINGS, set_defaults); // - set procedural settings gSavedSettings.setString("ClientSettingsFile", @@ -1821,7 +1827,7 @@ bool LLAppViewer::initConfiguration() } } - const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinFolder"); + const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinCurrent"); if(skinfolder && LLStringUtil::null != skinfolder->getValue().asString()) { gDirUtilp->setSkinFolder(skinfolder->getValue().asString()); @@ -1833,33 +1839,33 @@ bool LLAppViewer::initConfiguration() gSecondLife = "Second Life"; // Read skin/branding settings if specified. - if (! gDirUtilp->getSkinDir().empty() ) - { - std::string skin_def_file = gDirUtilp->getExpandedFilename(LL_PATH_TOP_SKIN, "skin.xml"); - LLXmlTree skin_def_tree; + //if (! gDirUtilp->getSkinDir().empty() ) + //{ + // std::string skin_def_file = gDirUtilp->findSkinnedFilename("skin.xml"); + // LLXmlTree skin_def_tree; - if (!skin_def_tree.parseFile(skin_def_file)) - { - llerrs << "Failed to parse skin definition." << llendl; - } + // if (!skin_def_tree.parseFile(skin_def_file)) + // { + // llerrs << "Failed to parse skin definition." << llendl; + // } - LLXmlTreeNode* rootp = skin_def_tree.getRoot(); - LLXmlTreeNode* disabled_message_node = rootp->getChildByName("disabled_message"); - if (disabled_message_node) - { - gDisabledMessage = disabled_message_node->getContents(); - } + // LLXmlTreeNode* rootp = skin_def_tree.getRoot(); + // LLXmlTreeNode* disabled_message_node = rootp->getChildByName("disabled_message"); + // if (disabled_message_node) + // { + // gDisabledMessage = disabled_message_node->getContents(); + // } - static LLStdStringHandle hide_links_string = LLXmlTree::addAttributeString("hide_links"); - rootp->getFastAttributeBOOL(hide_links_string, gHideLinks); + // static LLStdStringHandle hide_links_string = LLXmlTree::addAttributeString("hide_links"); + // rootp->getFastAttributeBOOL(hide_links_string, gHideLinks); - // Legacy string. This flag really meant we didn't want to expose references to "Second Life". - // Just set gHideLinks instead. - static LLStdStringHandle silent_string = LLXmlTree::addAttributeString("silent_update"); - BOOL silent_update; - rootp->getFastAttributeBOOL(silent_string, silent_update); - gHideLinks = (gHideLinks || silent_update); - } + // // Legacy string. This flag really meant we didn't want to expose references to "Second Life". + // // Just set gHideLinks instead. + // static LLStdStringHandle silent_string = LLXmlTree::addAttributeString("silent_update"); + // BOOL silent_update; + // rootp->getFastAttributeBOOL(silent_string, silent_update); + // gHideLinks = (gHideLinks || silent_update); + //} #if LL_DARWIN // Initialize apple menubar and various callbacks diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 4bafca25a4..66c4024c41 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -122,7 +122,7 @@ public: static const std::string sPerAccountSettingsName; static const std::string sCrashSettingsName; - void loadSettingsFromDirectory(ELLPath path_index); + void loadSettingsFromDirectory(ELLPath path_index, bool set_defaults = false); std::string getSettingsFileName(const std::string& file); diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp index c5cb6a91d5..2ef5ebfca0 100644 --- a/indra/newview/llfloaterhud.cpp +++ b/indra/newview/llfloaterhud.cpp @@ -17,7 +17,6 @@ // statics LLFloaterHUD* LLFloaterHUD::sInstance = 0; -std::string LLFloaterHUD::sTutorialUrl = ""; ///---------------------------------------------------------------------------- /// Class LLFloaterHUD @@ -44,7 +43,7 @@ LLFloaterHUD::LLFloaterHUD() setBackgroundOpaque(TRUE); // Position floater based on saved location - LLRect saved_position_rect = gSavedSettings.getRect("FloaterHUDRect"); + LLRect saved_position_rect = gSavedSettings.getRect("FloaterHUDRect2"); reshape(saved_position_rect.getWidth(), saved_position_rect.getHeight(), FALSE); setRect(saved_position_rect); @@ -65,7 +64,9 @@ LLFloaterHUD::LLFloaterHUD() language = gSavedSettings.getString("SystemLanguage"); } - std::string url = sTutorialUrl + language + "/"; + std::string base_url = gSavedSettings.getString("TutorialURL"); + + std::string url = base_url + language + "/"; mWebBrowser->navigateTo(url); } @@ -87,7 +88,7 @@ LLFloaterHUD* LLFloaterHUD::getInstance() LLFloaterHUD::~LLFloaterHUD() { // Save floater position - gSavedSettings.setRect("FloaterHUDRect", getRect() ); + gSavedSettings.setRect("FloaterHUDRect2", getRect() ); // Clear out the one instance if it's ours if (sInstance == this) @@ -100,7 +101,7 @@ LLFloaterHUD::~LLFloaterHUD() void LLFloaterHUD::showHUD() { // do not build the floater if there the url is empty - if (sTutorialUrl == "") + if (gSavedSettings.getString("TutorialURL") == "") { LLAlertDialog::showXml("TutorialNotFound"); return; diff --git a/indra/newview/llfloaterhud.h b/indra/newview/llfloaterhud.h index 975ab2daf5..b51b05d3b8 100644 --- a/indra/newview/llfloaterhud.h +++ b/indra/newview/llfloaterhud.h @@ -27,8 +27,6 @@ public: static LLFloaterHUD* getInstance(); ///< get instance creating if necessary virtual ~LLFloaterHUD(); ///< virtual destructor - static std::string sTutorialUrl; - static void showHUD(); ///< show the HUD static void closeHUD(); ///< close the HUD (destroys floater) diff --git a/indra/newview/llfloaterpostcard.cpp b/indra/newview/llfloaterpostcard.cpp index 1e71872ea6..790a5c0743 100644 --- a/indra/newview/llfloaterpostcard.cpp +++ b/indra/newview/llfloaterpostcard.cpp @@ -393,6 +393,8 @@ void LLFloaterPostcard::sendPostcard() gAssetStorage->storeAssetData(mTransactionID, LLAssetType::AT_IMAGE_JPEG, &uploadCallback, (void *)this, FALSE); } + // give user feedback of the event + gViewerWindow->playSnapshotAnimAndSound(); LLUploadDialog::modalUploadDialog("Uploading...\n\nPostcard"); // don't destroy the window until the upload is done diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 981c9c41b3..37a0fde367 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -60,6 +60,7 @@ #include "llpanelLCD.h" #include "llpanelmsgs.h" #include "llpanelweb.h" +#include "llpanelskins.h" #include "llprefschat.h" #include "llprefsvoice.h" #include "llprefsim.h" @@ -128,6 +129,7 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def mDisplayPanel(NULL), mAudioPanel(NULL), mMsgPanel(NULL), + mSkinsPanel(NULL), mLCDPanel(NULL) { mGeneralPanel = new LLPanelGeneral(); @@ -183,6 +185,10 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def mMsgPanel = new LLPanelMsgs(); mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); mMsgPanel->setDefaultBtn(default_btn); + + mSkinsPanel = new LLPanelSkins(); + mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); + mSkinsPanel->setDefaultBtn(default_btn); if (!mTabContainer->selectTab(gSavedSettings.getS32("LastPrefTab"))) { @@ -238,6 +244,12 @@ LLPreferenceCore::~LLPreferenceCore() delete mWebPanel; mWebPanel = NULL; } + if (mSkinsPanel) + { + delete mSkinsPanel; + mSkinsPanel = NULL; + } + } @@ -251,6 +263,7 @@ void LLPreferenceCore::apply() mPrefsVoice->apply(); mPrefsIM->apply(); mMsgPanel->apply(); + mSkinsPanel->apply(); // hardware menu apply LLFloaterHardwareSettings::instance()->apply(); @@ -278,6 +291,7 @@ void LLPreferenceCore::cancel() mPrefsVoice->cancel(); mPrefsIM->cancel(); mMsgPanel->cancel(); + mSkinsPanel->cancel(); // cancel hardware menu LLFloaterHardwareSettings::instance()->cancel(); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 1a580a0e8c..d930ec4e74 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -54,6 +54,7 @@ class LLPrefsChat; class LLPrefsVoice; class LLPrefsIM; class LLPanelMsgs; +class LLPanelSkins; class LLScrollListCtrl; class LLPreferenceCore @@ -78,6 +79,7 @@ public: private: LLTabContainer *mTabContainer; LLPanelGeneral *mGeneralPanel; + LLPanelSkins *mSkinsPanel; LLPanelInput *mInputPanel; LLPanelNetwork *mNetworkPanel; LLPanelDisplay *mDisplayPanel; diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 811fc4eb03..462f05ff27 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -155,7 +155,7 @@ public: private: LLColor4 mColor; - LLPointer mViewerImage[2]; + LLPointer mViewerImage[2]; //used to represent the scene when the frame is frozen. LLRect mImageRect[2]; S32 mWidth[2]; S32 mHeight[2]; @@ -190,7 +190,6 @@ private: LLQuaternion mCameraRot; BOOL mSnapshotActive; LLViewerWindow::ESnapshotType mSnapshotBufferType; - bool mSnapshotSoundPlayed; public: static std::set sList; @@ -217,8 +216,7 @@ LLSnapshotLivePreview::LLSnapshotLivePreview (const LLRect& rect) : mCameraPos(LLViewerCamera::getInstance()->getOrigin()), mCameraRot(LLViewerCamera::getInstance()->getQuaternion()), mSnapshotActive(FALSE), - mSnapshotBufferType(LLViewerWindow::SNAPSHOT_TYPE_COLOR), - mSnapshotSoundPlayed(false) + mSnapshotBufferType(LLViewerWindow::SNAPSHOT_TYPE_COLOR) { setSnapshotQuality(gSavedSettings.getS32("SnapshotQuality")); mSnapshotDelayTimer.setTimerExpirySec(0.0f); @@ -403,6 +401,7 @@ void LLSnapshotLivePreview::drawPreviewRect(S32 offset_x, S32 offset_y) } } +//called when the frame is frozen. void LLSnapshotLivePreview::draw() { if (mViewerImage[mCurImageIndex].notNull() && @@ -781,19 +780,6 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview ) previewp->mPreviewImage->getHeight(), previewp->mPreviewImage->getComponents()); - if (!gSavedSettings.getBOOL("QuietSnapshotsToDisk")) - { - // Always play the sound once, on window open. - // Don't keep playing if automatic - // updates are enabled. It's too invasive. JC - if (!previewp->mSnapshotSoundPlayed - || !gSavedSettings.getBOOL("AutoSnapshot") ) - { - gViewerWindow->playSnapshotAnimAndSound(); - previewp->mSnapshotSoundPlayed = true; - } - } - if(previewp->getSnapshotType() == SNAPSHOT_TEXTURE) { LLPointer formatted = new LLImageJ2C; @@ -852,29 +838,32 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview ) previewp->mPreviewImageEncoded->getHeight(), previewp->mPreviewImageEncoded->getComponents()); - // leave original image dimensions, just scale up texture buffer - if (previewp->mPreviewImageEncoded->getWidth() > 1024 || previewp->mPreviewImageEncoded->getHeight() > 1024) + if(!scaled->isBufferInvalid()) { - // go ahead and shrink image to appropriate power of 2 for display - scaled->biasedScaleToPowerOfTwo(1024); - previewp->mImageScaled[previewp->mCurImageIndex] = TRUE; + // leave original image dimensions, just scale up texture buffer + if (previewp->mPreviewImageEncoded->getWidth() > 1024 || previewp->mPreviewImageEncoded->getHeight() > 1024) + { + // go ahead and shrink image to appropriate power of 2 for display + scaled->biasedScaleToPowerOfTwo(1024); + previewp->mImageScaled[previewp->mCurImageIndex] = TRUE; + } + else + { + // expand image but keep original image data intact + scaled->expandToPowerOfTwo(1024, FALSE); + } + + previewp->mViewerImage[previewp->mCurImageIndex] = new LLImageGL(scaled, FALSE); + previewp->mViewerImage[previewp->mCurImageIndex]->setMipFilterNearest(previewp->getSnapshotType() != SNAPSHOT_TEXTURE); + LLViewerImage::bindTexture(previewp->mViewerImage[previewp->mCurImageIndex]); + previewp->mViewerImage[previewp->mCurImageIndex]->setClamp(TRUE, TRUE); + + previewp->mSnapshotUpToDate = TRUE; + previewp->generateThumbnailImage(TRUE) ; + + previewp->mPosTakenGlobal = gAgent.getCameraPositionGlobal(); + previewp->mShineCountdown = 4; // wait a few frames to avoid animation glitch due to readback this frame } - else - { - // expand image but keep original image data intact - scaled->expandToPowerOfTwo(1024, FALSE); - } - - previewp->mViewerImage[previewp->mCurImageIndex] = new LLImageGL(scaled, FALSE); - previewp->mViewerImage[previewp->mCurImageIndex]->setMipFilterNearest(previewp->getSnapshotType() != SNAPSHOT_TEXTURE); - LLViewerImage::bindTexture(previewp->mViewerImage[previewp->mCurImageIndex]); - previewp->mViewerImage[previewp->mCurImageIndex]->setClamp(TRUE, TRUE); - - previewp->mSnapshotUpToDate = TRUE; - previewp->generateThumbnailImage(TRUE) ; - - previewp->mPosTakenGlobal = gAgent.getCameraPositionGlobal(); - previewp->mShineCountdown = 4; // wait a few frames to avoid animation glitch due to readback this frame } previewp->getWindow()->decBusyCount(); // only show fullscreen preview when in freeze frame mode @@ -955,6 +944,7 @@ void LLSnapshotLivePreview::saveTexture() LLInventoryType::IT_SNAPSHOT, PERM_ALL, "Snapshot : " + pos_string); + gViewerWindow->playSnapshotAnimAndSound(); } else { @@ -967,7 +957,12 @@ void LLSnapshotLivePreview::saveTexture() BOOL LLSnapshotLivePreview::saveLocal() { - return gViewerWindow->saveImageNumbered(mFormattedImage); + BOOL success = gViewerWindow->saveImageNumbered(mFormattedImage); + if(success) + { + gViewerWindow->playSnapshotAnimAndSound(); + } + return success; } ///---------------------------------------------------------------------------- @@ -1134,10 +1129,6 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) } bool use_freeze_frame = floaterp->childGetValue("freeze_frame_check").asBoolean(); - // For now, auto-snapshot only works in freeze frame mode. - // This can be changed in the future by taking the FreezeTime check - // out of the onIdle() camera movement detection. JC - floaterp->childSetEnabled("auto_snapshot_check", use_freeze_frame); if (use_freeze_frame) { @@ -1174,9 +1165,6 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) } else // turning off freeze frame mode { - // Force off auto-snapshot, see comment above about onIdle. JC - gSavedSettings.setBOOL("AutoSnapshot", FALSE); - floaterp->getParent()->setMouseOpaque(FALSE); floaterp->reshape(floaterp->getRect().getWidth(), floaterp->getUIWinHeightLong() + delta_height); if (previewp) @@ -1348,8 +1336,6 @@ void LLFloaterSnapshot::Impl::onClickKeep(void* data) if (previewp) { - BOOL succeeded = TRUE; // Only used for saveLocal for now - if (previewp->getSnapshotType() == LLSnapshotLivePreview::SNAPSHOT_POSTCARD) { LLFloaterPostcard* floater = previewp->savePostcard(); @@ -1368,7 +1354,7 @@ void LLFloaterSnapshot::Impl::onClickKeep(void* data) } else { - succeeded = previewp->saveLocal(); + previewp->saveLocal(); } if (gSavedSettings.getBOOL("CloseSnapshotOnKeep")) @@ -1535,13 +1521,16 @@ void LLFloaterSnapshot::Impl::onCommitFreezeFrame(LLUICtrl* ctrl, void* data) void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 index) { LLSnapshotLivePreview *previewp = getPreviewView(view) ; - + + // Don't round texture sizes; textures are commonly stretched in world, profiles, etc and need to be "squashed" during upload, not cropped here +#if 0 if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE == getTypeIndex(view)) { previewp->mKeepAspectRatio = FALSE ; return ; } - +#endif + if(!index) //current window size { sAspectRatioCheckOff = TRUE ; @@ -1555,7 +1544,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde else if(-1 == index) //custom { sAspectRatioCheckOff = FALSE ; - if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType")) + //if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType")) { view->childSetEnabled("keep_aspect_check", TRUE) ; @@ -1708,6 +1697,7 @@ BOOL LLFloaterSnapshot::Impl::checkImageSize(LLSnapshotLivePreview* previewp, S3 S32 h = height ; //if texture, ignore aspect ratio setting, round image size to power of 2. +#if 0 // Don't round texture sizes; textures are commonly stretched in world, profiles, etc and need to be "squashed" during upload, not cropped here if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE == gSavedSettings.getS32("LastSnapshotType")) { if(width > max_value) @@ -1735,7 +1725,9 @@ BOOL LLFloaterSnapshot::Impl::checkImageSize(LLSnapshotLivePreview* previewp, S3 height = get_lower_power_two(height, MAX_TEXTURE_SIZE) ; } } - else if(previewp && previewp->mKeepAspectRatio) + else +#endif + if(previewp && previewp->mKeepAspectRatio) { if(gViewerWindow->getWindowDisplayWidth() < 1 || gViewerWindow->getWindowDisplayHeight() < 1) { @@ -1815,6 +1807,7 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat { BOOL update_ = FALSE ; //if to upload a snapshot, process spinner input in a special way. +#if 0 // Don't round texture sizes; textures are commonly stretched in world, profiles, etc and need to be "squashed" during upload, not cropped here if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE == gSavedSettings.getS32("LastSnapshotType")) { S32 spinner_increment = (S32)((LLSpinCtrl*)ctrl)->getIncrement() ; @@ -1834,7 +1827,7 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat update_ = TRUE ; } } - +#endif previewp->setMaxImageSize((S32)((LLSpinCtrl *)ctrl)->getMaxValue()) ; // Check image size changes the value of height and width diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index a88a6bbffe..40da1a4f3c 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -1899,9 +1899,27 @@ void deliver_message(const std::string& utf8_text, im_session_id); gAgent.sendReliableMessage(); - if (LLMuteList::getInstance()) + // If there is a mute list and this is not a group chat... + if ( LLMuteList::getInstance() ) { - LLMuteList::getInstance()->autoRemove(other_participant_id, LLMuteList::AR_IM); + // ... the target should not be in our mute list for some message types. + // Auto-remove them if present. + switch( dialog ) + { + case IM_NOTHING_SPECIAL: + case IM_GROUP_INVITATION: + case IM_INVENTORY_OFFERED: + case IM_SESSION_INVITE: + case IM_SESSION_P2P_INVITE: + case IM_SESSION_CONFERENCE_START: + case IM_SESSION_SEND: // This one is marginal - erring on the side of hearing. + case IM_LURE_USER: + case IM_GODLIKE_LURE_USER: + case IM_FRIENDSHIP_OFFERED: + LLMuteList::getInstance()->autoRemove(other_participant_id, LLMuteList::AR_IM); + break; + default: ; // do nothing + } } } diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6f473dfba9..f1b3182cac 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -69,9 +69,6 @@ #include "llfirstuse.h" -const EInstantMessage GROUP_DIALOG = IM_SESSION_GROUP_START; -const EInstantMessage DEFAULT_DIALOG = IM_NOTHING_SPECIAL; - // // Globals // @@ -158,11 +155,12 @@ LLFloaterIM::LLFloaterIM() BOOL LLFloaterIM::postBuild() { + // IM session initiation warnings sOnlyUserMessage = getString("only_user_message"); sOfflineMessage = getUIString("offline_message"); + sMutedMessage = getUIString("muted_message"); sInviteMessage = getUIString("invite_message"); - sMutedMessage = childGetText("muted_message"); if ( sErrorStringsMap.find("generic") == sErrorStringsMap.end() ) { @@ -617,7 +615,12 @@ LLUUID LLIMMgr::addSession( noteOfflineUsers(floater, ids); LLFloaterChatterBox::showInstance(session_id); - noteMutedUsers(floater, ids); + + // Only warn for regular IMs - not group IMs + if( dialog == IM_NOTHING_SPECIAL ) + { + noteMutedUsers(floater, ids); + } LLFloaterChatterBox::getInstance(LLSD())->showFloater(floater); } else @@ -663,7 +666,12 @@ LLUUID LLIMMgr::addSession( noteOfflineUsers(floater, ids); LLFloaterChatterBox::showInstance(session_id); - noteMutedUsers(floater, ids); + + // Only warn for regular IMs - not group IMs + if( dialog == IM_NOTHING_SPECIAL ) + { + noteMutedUsers(floater, ids); + } } else { @@ -1240,22 +1248,23 @@ void LLIMMgr::noteOfflineUsers( void LLIMMgr::noteMutedUsers(LLFloaterIMPanel* floater, const LLDynamicArray& ids) { + // Don't do this if we don't have a mute list. + LLMuteList *ml = LLMuteList::getInstance(); + if( !ml ) + { + return; + } + S32 count = ids.count(); if(count > 0) { - const LLRelationship* info = NULL; - LLAvatarTracker& at = LLAvatarTracker::instance(); for(S32 i = 0; i < count; ++i) { - info = at.getBuddyInfo(ids.get(i)); - std::string first, last; - if(info && LLMuteList::getInstance() && LLMuteList::getInstance()->isMuted(ids.get(i)) - && gCacheName->getName(ids.get(i), first, last)) + if( ml->isMuted(ids.get(i)) ) { LLUIString muted = sMutedMessage; - muted.setArg("[FIRST]", first); - muted.setArg("[LAST]", last); floater->addHistoryLine(muted); + break; } } } diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 01b2942a37..c05eea7bd8 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -111,6 +111,7 @@ const char* NEW_CATEGORY_NAMES[LLAssetType::AT_COUNT] = "Uncompressed Images", // AT_IMAGE_JPEG "Animations", // AT_ANIMATION "Gestures", // AT_GESTURE + "New Folder" // AT_SIMSTATE }; struct InventoryIDPtrLess @@ -352,6 +353,12 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id, return id; } + if(preferred_type == LLAssetType::AT_SIMSTATE) + { + lldebugs << "Attempt to create simstate category." << llendl; + return id; + } + id.generate(); std::string name = pname; if(!pname.empty()) @@ -359,7 +366,7 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id, name.assign(pname); } else if((preferred_type >= LLAssetType::AT_TEXTURE) && - (preferred_type < LLAssetType::AT_COUNT)) + (preferred_type < LLAssetType::AT_SIMSTATE)) { name.assign(NEW_CATEGORY_NAMES[preferred_type]); } diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index a8dc35f99c..b73dcfc40b 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -406,7 +406,9 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, combo->setCommitCallback( &LLPanelGeneral::set_start_location ); - childSetCommitCallback("server_combo", onSelectServer, this); + LLComboBox* server_choice_combo = sInstance->getChild("server_combo"); + server_choice_combo->setCommitCallback(onSelectServer); + server_choice_combo->setFocusLostCallback(onServerComboLostFocus); childSetAction("connect_btn", onClickConnect, this); @@ -1141,6 +1143,10 @@ void LLPanelLogin::onPassKey(LLLineEditor* caller, void* user_data) // static void LLPanelLogin::onSelectServer(LLUICtrl*, void*) { + // *NOTE: The paramters for this method are ignored. + // LLPanelLogin::onServerComboLostFocus(LLFocusableElement* fe, void*) + // calls this method. + // The user twiddled with the grid choice ui. // apply the selection to the grid setting. std::string grid_label; @@ -1183,3 +1189,12 @@ void LLPanelLogin::onSelectServer(LLUICtrl*, void*) // grid changed so show new splash screen (possibly) loadLoginPage(); } + +void LLPanelLogin::onServerComboLostFocus(LLFocusableElement* fe, void*) +{ + LLComboBox* combo = sInstance->getChild("server_combo"); + if(fe == combo) + { + onSelectServer(combo, NULL); + } +} diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index 2429ac0f1b..aa41ab70b8 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -114,6 +114,7 @@ private: static void onClickForgotPassword(void*); static void onPassKey(LLLineEditor* caller, void* user_data); static void onSelectServer(LLUICtrl*, void*); + static void onServerComboLostFocus(LLFocusableElement*, void*); private: LLPointer mLogoImage; diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 60e6197bf7..e37de3b2de 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1940,7 +1940,8 @@ BOOL idle_startup() option_it = (*it).find("tutorial_url"); if(option_it != (*it).end()) { - LLFloaterHUD::sTutorialUrl = option_it->second; + // Tutorial floater will append language code + gSavedSettings.setString("TutorialURL", option_it->second); } option_it = (*it).find("use_tutorial"); if(option_it != (*it).end()) diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index fad6acc65a..deb817d2ab 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -927,12 +927,13 @@ S32 LLTextureCache::update(U32 max_time_ms) } ////////////////////////////////////////////////////////////////////////////// - +// search for local copy of UUID-based image file std::string LLTextureCache::getLocalFileName(const LLUUID& id) { // Does not include extension std::string idstr = id.asString(); - std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_SKINS, "textures", idstr); + // TODO: should we be storing cached textures in skin directory? + std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_SKINS, "default", "textures", idstr); return filename; } diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index f3acad35da..6b324cae9d 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -566,3 +566,125 @@ void settings_setup_listeners() gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); } +template <> eControlType get_control_type(const U32& in, LLSD& out) +{ + out = (LLSD::Integer)in; + return TYPE_U32; +} + +template <> eControlType get_control_type(const S32& in, LLSD& out) +{ + out = in; + return TYPE_S32; +} + +template <> eControlType get_control_type(const F32& in, LLSD& out) +{ + out = in; + return TYPE_F32; +} + +template <> eControlType get_control_type (const bool& in, LLSD& out) +{ + out = in; + return TYPE_BOOLEAN; +} +/* +// Yay BOOL, its really an S32. +template <> eControlType get_control_type (const BOOL& in, LLSD& out) +{ + out = in; + return TYPE_BOOLEAN; +} +*/ +template <> eControlType get_control_type(const std::string& in, LLSD& out) +{ + out = in; + return TYPE_STRING; +} + +template <> eControlType get_control_type(const LLVector3& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_VEC3; +} + +template <> eControlType get_control_type(const LLVector3d& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_VEC3D; +} + +template <> eControlType get_control_type(const LLRect& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_RECT; +} + +template <> eControlType get_control_type(const LLColor4& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_COL4; +} + +template <> eControlType get_control_type(const LLColor3& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_COL3; +} + +template <> eControlType get_control_type(const LLColor4U& in, LLSD& out) +{ + out = in.getValue(); + return TYPE_COL4U; +} + +template <> eControlType get_control_type(const LLSD& in, LLSD& out) +{ + out = in; + return TYPE_LLSD; +} + + +#if TEST_CACHED_CONTROL + +#define DECL_LLCC(T, V) static LLCachedControl mySetting_##T("TestCachedControl"#T, V) +DECL_LLCC(U32, (U32)666); +DECL_LLCC(S32, (S32)-666); +DECL_LLCC(F32, (F32)-666.666); +DECL_LLCC(bool, true); +DECL_LLCC(BOOL, FALSE); +static LLCachedControl mySetting_string("TestCachedControlstring", "Default String Value"); +DECL_LLCC(LLVector3, LLVector3(1.0f, 2.0f, 3.0f)); +DECL_LLCC(LLVector3d, LLVector3d(6.0f, 5.0f, 4.0f)); +DECL_LLCC(LLRect, LLRect(0, 0, 100, 500)); +DECL_LLCC(LLColor4, LLColor4(0.0f, 0.5f, 1.0f)); +DECL_LLCC(LLColor3, LLColor3(1.0f, 0.f, 0.5f)); +DECL_LLCC(LLColor4U, LLColor4U(255, 200, 100, 255)); + +LLSD test_llsd = LLSD()["testing1"] = LLSD()["testing2"]; +DECL_LLCC(LLSD, test_llsd); + +static LLCachedControl test_BrowserHomePage("BrowserHomePage", "hahahahahha", "Not the real comment"); + +void test_cached_control() +{ +#define TEST_LLCC(T, V) if((T)mySetting_##T != V) llerrs << "Fail "#T << llendl + TEST_LLCC(U32, 666); + TEST_LLCC(S32, (S32)-666); + TEST_LLCC(F32, (F32)-666.666); + TEST_LLCC(bool, true); + TEST_LLCC(BOOL, FALSE); + if((std::string)mySetting_string != "Default String Value") llerrs << "Fail string" << llendl; + TEST_LLCC(LLVector3, LLVector3(1.0f, 2.0f, 3.0f)); + TEST_LLCC(LLVector3d, LLVector3d(6.0f, 5.0f, 4.0f)); + TEST_LLCC(LLRect, LLRect(0, 0, 100, 500)); + TEST_LLCC(LLColor4, LLColor4(0.0f, 0.5f, 1.0f)); + TEST_LLCC(LLColor3, LLColor3(1.0f, 0.f, 0.5f)); + TEST_LLCC(LLColor4U, LLColor4U(255, 200, 100, 255)); +//There's no LLSD comparsion for LLCC yet. TEST_LLCC(LLSD, test_llsd); + + if((std::string)test_BrowserHomePage != "http://www.secondlife.com") llerrs << "Fail BrowserHomePage" << llendl; +} +#endif // TEST_CACHED_CONTROL + diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h index 954454fbd1..c2522d6bba 100644 --- a/indra/newview/llviewercontrol.h +++ b/indra/newview/llviewercontrol.h @@ -65,4 +65,114 @@ extern LLControlGroup gCrashSettings; extern std::string gLastRunVersion; extern std::string gCurrentVersion; +//! Helper function for LLCachedControl +template +eControlType get_control_type(const T& in, LLSD& out) +{ + llerrs << "Usupported control type: " << typeid(T).name() << "." << llendl; + return TYPE_COUNT; +} + +//! Publish/Subscribe object to interact with LLControlGroups. + +//! An LLCachedControl instance to connect to a LLControlVariable +//! without have to manually create and bind a listener to a local +//! object. +template +class LLCachedControl +{ + T mCachedValue; + LLPointer mControl; + boost::signals::connection mConnection; + +public: + LLCachedControl(const std::string& name, + const T& default_value, + const std::string& comment = "Declared In Code") + { + mControl = gSavedSettings.getControl(name); + if(mControl.isNull()) + { + declareTypedControl(gSavedSettings, name, default_value, comment); + mControl = gSavedSettings.getControl(name); + if(mControl.isNull()) + { + llerrs << "The control could not be created!!!" << llendl; + } + + mCachedValue = default_value; + } + else + { + mCachedValue = (const T&)mControl->getValue(); + } + + // Add a listener to the controls signal... + mControl->getSignal()->connect( + boost::bind(&LLCachedControl::handleValueChange, this, _1) + ); + } + + ~LLCachedControl() + { + if(mConnection.connected()) + { + mConnection.disconnect(); + } + } + + LLCachedControl& operator =(const T& newvalue) + { + setTypeValue(*mControl, newvalue); + } + + operator const T&() { return mCachedValue; } + +private: + void declareTypedControl(LLControlGroup& group, + const std::string& name, + const T& default_value, + const std::string& comment) + { + LLSD init_value; + eControlType type = get_control_type(default_value, init_value); + if(type < TYPE_COUNT) + { + group.declareControl(name, type, init_value, comment, FALSE); + } + } + + bool handleValueChange(const LLSD& newvalue) + { + mCachedValue = (const T &)newvalue; + return true; + } + + void setTypeValue(LLControlVariable& c, const T& v) + { + // Implicit conversion from T to LLSD... + c.set(v); + } +}; + +template <> eControlType get_control_type(const U32& in, LLSD& out); +template <> eControlType get_control_type(const S32& in, LLSD& out); +template <> eControlType get_control_type(const F32& in, LLSD& out); +template <> eControlType get_control_type (const bool& in, LLSD& out); +// Yay BOOL, its really an S32. +//template <> eControlType get_control_type (const BOOL& in, LLSD& out) +template <> eControlType get_control_type(const std::string& in, LLSD& out); +template <> eControlType get_control_type(const LLVector3& in, LLSD& out); +template <> eControlType get_control_type(const LLVector3d& in, LLSD& out); +template <> eControlType get_control_type(const LLRect& in, LLSD& out); +template <> eControlType get_control_type(const LLColor4& in, LLSD& out); +template <> eControlType get_control_type(const LLColor3& in, LLSD& out); +template <> eControlType get_control_type(const LLColor4U& in, LLSD& out); +template <> eControlType get_control_type(const LLSD& in, LLSD& out); + +//#define TEST_CACHED_CONTROL 1 +#ifdef TEST_CACHED_CONTROL +void test_cached_control(); +#endif // TEST_CACHED_CONTROL + #endif // LL_LLVIEWERCONTROL_H diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index f80eb6e486..1586f8dc75 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -44,6 +44,10 @@ #include "llmediamanager.h" #include "lluuid.h" +#include // for SkinFolder listener +#include + + // Implementation functions not exported into header file class LLViewerMediaImpl : public LLMediaObserver @@ -55,8 +59,6 @@ class LLViewerMediaImpl mMovieImageHasMips(false) { } - void initControlListeners(); - void destroyMediaSource(); void play(const std::string& media_url, @@ -79,6 +81,15 @@ class LLViewerMediaImpl void updateImagesMediaStreams(); LLUUID getMediaTextureID(); + // Internally set our desired browser user agent string, including + // the Second Life version and skin name. Used because we can + // switch skins without restarting the app. + static void updateBrowserUserAgent(); + + // Callback for when the SkinCurrent control is changed to + // switch the user agent string to indicate the new skin. + static bool handleSkinCurrentChanged(const LLSD& newvalue); + public: // a single media url with some data and an impl. @@ -93,6 +104,8 @@ class LLViewerMediaImpl static LLViewerMediaImpl sViewerMediaImpl; +////////////////////////////////////////////////////////////////////////////////////////// + void LLViewerMediaImpl::destroyMediaSource() { LLMediaManager* mgr = LLMediaManager::getInstance(); @@ -405,12 +418,44 @@ void LLViewerMediaImpl::onMediaSizeChange(const EventType& event_in) */ -////////////////////////////////////////////////////////////////////////////////////////// LLUUID LLViewerMediaImpl::getMediaTextureID() { return mMovieImageID; } +// static +void LLViewerMediaImpl::updateBrowserUserAgent() +{ + // Don't use user-visible string to avoid + // punctuation and strange characters. + std::string skin_name = gSavedSettings.getString("SkinCurrent"); + + // Just in case we need to check browser differences in A/B test + // builds. + std::string channel = gSavedSettings.getString("VersionChannelName"); + + // append our magic version number string to the browser user agent id + // See the HTTP 1.0 and 1.1 specifications for allowed formats: + // http://www.ietf.org/rfc/rfc1945.txt section 10.15 + // http://www.ietf.org/rfc/rfc2068.txt section 3.8 + // This was also helpful: + // http://www.mozilla.org/build/revised-user-agent-strings.html + std::ostringstream codec; + codec << "SecondLife/"; + codec << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH << "." << LL_VERSION_BUILD; + codec << " (" << channel << "; " << skin_name << " skin)"; + llinfos << codec.str() << llendl; + LLMediaManager::setBrowserUserAgent( codec.str() ); +} + +// static +bool LLViewerMediaImpl::handleSkinCurrentChanged(const LLSD& /*newvalue*/) +{ + // gSavedSettings is already updated when this function is called. + updateBrowserUserAgent(); + return true; +} + ////////////////////////////////////////////////////////////////////////////////////////// // Wrapper class ////////////////////////////////////////////////////////////////////////////////////////// @@ -434,6 +479,7 @@ void LLViewerMedia::initBrowser() // static void LLViewerMedia::initClass() { + // *TODO: This looks like a memory leak to me. JC LLMediaManagerData* init_data = new LLMediaManagerData; buildMediaManagerData( init_data ); LLMediaManager::initClass( init_data ); @@ -482,14 +528,6 @@ void LLViewerMedia::buildMediaManagerData( LLMediaManagerData* init_data ) component_dir += "mozilla"; #endif - // append our magic version number string to the browser user agent id - std::ostringstream codec; - codec << "[Second Life "; - codec << "(" << gSavedSettings.getString("VersionChannelName") << ")"; - codec << " - " << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH << "." << LL_VERSION_BUILD; - codec << "]"; - init_data->setBrowserUserAgentId( codec.str() ); - std::string application_dir = gDirUtilp->getExecutableDir(); init_data->setBrowserApplicationDir( application_dir ); @@ -499,6 +537,15 @@ void LLViewerMedia::buildMediaManagerData( LLMediaManagerData* init_data ) std::string profile_name("Second Life"); init_data->setBrowserProfileName( profile_name ); init_data->setBrowserParentWindow( gViewerWindow->getPlatformWindow() ); + + // We use a custom user agent with viewer version and skin name. + LLViewerMediaImpl::updateBrowserUserAgent(); + + // Users can change skins while client is running, so make sure + // we pick up on changes. + gSavedSettings.getControl("SkinCurrent")->getSignal()->connect( + boost::bind( LLViewerMediaImpl::handleSkinCurrentChanged, _1 ) ); + } ////////////////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 7db03c9db4..b27d33b0e6 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -432,10 +432,7 @@ class LLFileTakeSnapshotToDisk : public view_listener_t gSavedSettings.getBOOL("RenderUIInSnapshot"), FALSE)) { - if (!gSavedSettings.getBOOL("QuietSnapshotsToDisk")) - { - gViewerWindow->playSnapshotAnimAndSound(); - } + gViewerWindow->playSnapshotAnimAndSound(); LLImageBase::setSizeOverride(TRUE); LLPointer formatted; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index be9e9d4d68..0296aee8ca 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -517,11 +517,11 @@ public: ypos += y_inc; } - if (LLViewerJoystick::getInstance()->getOverrideCamera()) + /*if (LLViewerJoystick::getInstance()->getOverrideCamera()) { addText(xpos + 200, ypos, llformat("Flycam")); ypos += y_inc; - } + }*/ if (gSavedSettings.getBOOL("DebugShowRenderInfo")) { @@ -1853,6 +1853,10 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) { LLRect r; + // *NOTE: The width and height of these floaters must be + // identical in settings.xml and their relevant floater.xml + // files, otherwise the window construction will get + // confused. JC adjust_rect_bottom_center("FloaterMoveRect2", window); adjust_rect_top_center("FloaterCameraRect3", window); @@ -1861,7 +1865,7 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) adjust_rect_top_left("FloaterLandRect5", window); - adjust_rect_top_left("FloaterHUDRect", window); + adjust_rect_top_left("FloaterHUDRect2", window); adjust_rect_top_left("FloaterFindRect2", window); @@ -4187,6 +4191,10 @@ BOOL LLViewerWindow::saveSnapshot( const std::string& filepath, S32 image_width, void LLViewerWindow::playSnapshotAnimAndSound() { + if (gSavedSettings.getBOOL("QuietSnapshotsToDisk")) + { + return; + } gAgent.sendAnimationRequest(ANIM_AGENT_SNAPSHOT, ANIM_REQUEST_START); send_sound_trigger(LLUUID(gSavedSettings.getString("UISndSnapshot")), 1.0f); } @@ -4557,14 +4565,15 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei // Note: this formula depends on the number of components being 3. Not obvious, but it's correct. image_width += (image_width * 3) % 4; + BOOL ret = TRUE ; // Resize image if(llabs(image_width - image_buffer_x) > 4 || llabs(image_height - image_buffer_y) > 4) { - raw->scale( image_width, image_height ); + ret = raw->scale( image_width, image_height ); } else if(image_width != image_buffer_x || image_height != image_buffer_y) { - raw->scale( image_width, image_height, FALSE ); + ret = raw->scale( image_width, image_height, FALSE ); } @@ -4585,7 +4594,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei send_agent_resume(); } - return TRUE; + return ret; } void LLViewerWindow::destroyWindow() diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp index b13ef98bec..c375cf0d52 100644 --- a/indra/newview/llwindebug.cpp +++ b/indra/newview/llwindebug.cpp @@ -696,7 +696,7 @@ void LLWinDebug::generateCrashStacks(struct _EXCEPTION_POINTERS *exception_infop // Since there is exception info... Release the hounds. gEmergencyMemoryReserve.release(); - if(gSavedSettings.getControl("SaveMinidump") != NULL && gSavedSettings.getBOOL("SaveMinidump")) + if(gSavedSettings.getControl("SaveMinidump").isNull() && gSavedSettings.getBOOL("SaveMinidump")) { _MINIDUMP_EXCEPTION_INFORMATION ExInfo; diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml new file mode 100644 index 0000000000..cf9466fad3 --- /dev/null +++ b/indra/newview/skins/default/colors.xml @@ -0,0 +1,3 @@ + + + diff --git a/indra/newview/skins/default/html/btn_purplepill_bg.png b/indra/newview/skins/default/html/btn_purplepill_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b78127ae30dcd4f219a56106f16237e0aafdb19c GIT binary patch literal 3564 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 m^25;xw9xX`Hb>uo1sDK*)lDj+95GS=0000 + + +Verbindung nicht möglich + + +

+

Second Life kann keine Verbindung mit dem Anmeldeserver herstellen. +

+

Überprüfen Sie Ihre Internetverbindung. Falls Ihr Computer oder Netzwerk durch eine Firewall oder einen Proxy geschützt ist, so müssen Sie dafür sorgen, dass Second Life auf das Internet zugreifen darf. +

+
+ + diff --git a/indra/newview/skins/default/html/en-us/loading-error/index.html b/indra/newview/skins/default/html/en-us/loading-error/index.html new file mode 100644 index 0000000000..71f9c86f76 --- /dev/null +++ b/indra/newview/skins/default/html/en-us/loading-error/index.html @@ -0,0 +1,32 @@ + + + +Unable to Connect + + + +
+
+

+ Second Life can't establish a connection to the login server. +

+

+ Please check your internet connection. If your computer or network is protected by a firewall or proxy, make sure that Second Life is permitted to access the network. +

+
+ +
+
+ + \ No newline at end of file diff --git a/indra/newview/skins/default/html/en-us/loading/loading.html b/indra/newview/skins/default/html/en-us/loading/loading.html new file mode 100644 index 0000000000..34e5c84c4d --- /dev/null +++ b/indra/newview/skins/default/html/en-us/loading/loading.html @@ -0,0 +1,9 @@ + + + + + +
+
   loading... +
+ diff --git a/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif b/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3ccc7c769d9dc7304193d974ced4057a90e9d8e GIT binary patch literal 7426 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/html/es/loading-error/index.html b/indra/newview/skins/default/html/es/loading-error/index.html new file mode 100644 index 0000000000..c1e75bc475 --- /dev/null +++ b/indra/newview/skins/default/html/es/loading-error/index.html @@ -0,0 +1,25 @@ + + + +No se puede establecer una conexión + + +

+

Second Life no puede establecer una conexión con el servidor de inicio de sesión. +

+

Compruebe la conexión a Internet. Si su computadora o red están protegidas con un firewall o proxy, asegúrese de permitirle el acceso a Second Life a la red. +

+
+ + diff --git a/indra/newview/skins/default/html/fr/loading-error/index.html b/indra/newview/skins/default/html/fr/loading-error/index.html new file mode 100644 index 0000000000..69c796cb55 --- /dev/null +++ b/indra/newview/skins/default/html/fr/loading-error/index.html @@ -0,0 +1,25 @@ + + + +Connexion impossible + + +

+

Second Life ne peut pas établir de connexion avec le serveur. +

+

Vérifiez votre connexion Internet. Si votre ordinateur ou votre réseau est protégé par un.pare-feu ou un proxy, assurez-vous que Second Life a l'autorisation d'accéder au réseau. +

+
+ + diff --git a/indra/newview/skins/default/html/ja/loading-error/index.html b/indra/newview/skins/default/html/ja/loading-error/index.html new file mode 100644 index 0000000000..e0bcc94b6b --- /dev/null +++ b/indra/newview/skins/default/html/ja/loading-error/index.html @@ -0,0 +1,25 @@ + + + +接続できません + + +

+

Second Lifeによるログインサーバーへの接続が確立できません。 +

+

インターネット接続を確認してください。 お使いのコンピュータやネットワークがファイヤウォールまたはプロキシにより保護されている場合は、Second Lifeによるネットワークへのアクセスが許可されていることを確認してください。 +

+
+ + diff --git a/indra/newview/skins/default/html/ko/loading-error/index.html b/indra/newview/skins/default/html/ko/loading-error/index.html new file mode 100644 index 0000000000..02b87132b9 --- /dev/null +++ b/indra/newview/skins/default/html/ko/loading-error/index.html @@ -0,0 +1,25 @@ + + + +연결할 수 없습니다. + + +

+

Second Life에서 로그인 서버에 대한 보안 연결을 설정할 수 없습니다. +

+

인터넷 연결을 확인하십시오. 사용 중인 컴퓨터 또는 네트워크가 방화벽이나 프록시에 의해 보호된 경우 Second Life가 네트워크에 액세스할 수 있도록 허가되었는지 확인하십시오. +

+
+ + diff --git a/indra/newview/skins/default/html/pt/loading-error/index.html b/indra/newview/skins/default/html/pt/loading-error/index.html new file mode 100644 index 0000000000..7f17b3a7bf --- /dev/null +++ b/indra/newview/skins/default/html/pt/loading-error/index.html @@ -0,0 +1,25 @@ + + + +Não é Possível Conectar + + +

+

O Second Life não consegue estabelecer uma conexão com o servidor de login. +

+

Verifique a sua conexão com a Internet. Se o seu computador ou sua rede estiverem protegidos por um firewall ou um proxy, verifique se o Second Life tem permissão de acesso na rede. +

+
+ + diff --git a/indra/newview/skins/default/html/unabletoconnect.png b/indra/newview/skins/default/html/unabletoconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..1383516509cd8cedb4b7be4dbed34b0349a4a5e3 GIT binary patch literal 15849 zcmWk#WkAzi7YE@15o9U~QbVOhLb^r>NOyNP(m6(Vj&24>cY}naFuJ=tM{jhzykGut zznpvS>EAgwOhHck^(&HBXlQ7!B_%|a(9m9hp1&7gVmv>qhsT1RUzp~?vchO+m3>_Q zh3`NA6FZA(I4j$kIlCD;nxYAt*cq9AlKf?8ZmMKzXyW0}Z_1B`hJmIaqax;(pRv5Y z+tAu=nGhM@*08X+Tu()v($%b^YuM5?z%DEK^z;<|yJ%u^a(!dx)$7-~1}2ZkCE=O5 ze0=;^YiC`#PrGf`iF50QB^f#6U)TJ zq=1^@uKr1n$hgZg5_6wGJ!i0toPuLeM4Grnzn543K=)1a+rXe;ds7Ec(v#Yc7aYMtv(6qL=Xfz?=x`80K zxO!!E<8SNV!BYO|{zCiA#H(t;@sSa7D(YT&`NX2~@u|5ib8`zTyZM!!a8GbaW&Oh} z(QU_TGjkigr~r_FP-0*}a0*Pq!Z^6T%-+%Mr?ZushIaqZn5dXIJ1_tG+NyV43N06> zxP+8TX!LA%bbnpoTs1{SPWs;z_T7dL{@+>46%<_Ey&=%Vtg43Q>9KBh_SMOT!#icb)POgQ?Vc*IEh9835dTN>f{+3lY#!`H`>wCGoyHnKE z*7vU)92Vv66WH57T-VeQ6`xwj$EWE03lahWObS8~Mejrf1~^ zf#t&fRJz7Rp}O$O+Pb}+oi2`dCYzi#yT1nKX9?RFM`stlrvTdehmOO0JDci4)3Om= zfa%%A@wtr;ABhe0^*=Fx^Gr)PZ+_c9Hh+D6<&=}s-aE?0%6!!J);>IHB8$R5EvJ@; zM^i<`D=Aaa+~#O+$t^bdPvf7bi}sP}l|DEe*4tiQUhd`Y-a9-K7M(CRJ1hQE%-zmb zLqqd=2XC|dpv5qP3m_N%D5XTFD*+yI(%_i<}J!TJGiT;Y2XSpS)3ti zeT%LZTJW}*!QoKP?Z1fz$`;|49bL(03w6)Q%gT(Wi=m+lR=eGyAs%~_=8i+#$#|Jq1eznR{N0Jx3GDrMwtQsFcyC-K z6N2nG)#P{sHuJhOuG9<$=7$^Q?)r38_B+X7^1bNs(e5=!N;QmxY0TL)oL3;zGPQu+u9pY&@bHKujDv$iFel|#4@Mn0WCwSW za99D0EHp+twO&~9mnk%y&%Fw+=W%B%$xVk25W2rmWl>)`Tu8kIVX7*b&Y<$TD zvYVp27FZ)C!Cv`zhc(~$YQ^b?g2I@E2w)XntUX^>68(0+6LQ&%Bfl-Gdve zS{}UuH{hb2!9$t+9_KoMM)pD!=4TLn=qUF)feW$_`6?esijU+OYFOq01w&cn(tDGYBFAS~I#M!aamP+ARH z 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 swHdGfv;dA|eZJp0)iM1 + + +无法连接 + + +

+

第二人生无法与登录服务器连接。 +

+

请检查您的因特网连接 如果您的计算机或网络由防火墙或代理器保护,请确认第二人生能在该网络里访问因特网。 +

+
+ + diff --git a/indra/newview/skins/default/textures/alpha_gradient.tga b/indra/newview/skins/default/textures/alpha_gradient.tga new file mode 100644 index 0000000000000000000000000000000000000000..6fdba25d4e080d0fa508aa7bb3a012b0d98dcf6a GIT binary patch literal 300 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 TW>nHMXZ^r{fPjF2fB^s5M&>Rl literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/arrow_down.tga b/indra/newview/skins/default/textures/arrow_down.tga new file mode 100644 index 0000000000000000000000000000000000000000..81dc9d3b6c28e4d476dfdb0bdc60e12b6a3f98e5 GIT binary patch literal 1068 zcmd^;Jxjx26os!YW~_A9`U7e(b4O`tAt+T_Ep)2E%?x7bX0j+Kc<^=sXW#mU zVNi@2Xw$6Mo8$Y@>)Yc)$gtiq%_g#Kz@4v6E|(+06z-<3>(0&9<@n|KDU8Ejp-^zp zDFg0CyKFW~g1oA#jlp1W7X(3=1hQ*Q(;Db6%UvduA%X4t{)OD3J1mt-9%!?cK6lW! z=XBwOZ;Rgd&z=s1+PSyescX)H-Fd@Z(*-`)&-tDDYndA}}RXt5pc2R4PFj#bOb{ zuq+G0$Y!&^nD}xjoF`ZgY^IFw>7^VD!{AKs{@QQa7cDEdU%=c%DaOPskGm#y*luu_ zPN#t}&yEjkA5V`ysaML)y`Aj>%G1pA^OK_*_Dz1LswyyZnx<`C+U3Uk%dug2r?oZ~qCUa#kq zcDvoD40mgYI$t-UD8dip_~#3W`LnM~%C;Jk?_ k`_&Z$0sb(HdC<@v|C;{$yR?v$^~7RgUYlM~5~@4{pWdin@c;k- literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/badge_note.j2c b/indra/newview/skins/default/textures/badge_note.j2c new file mode 100644 index 0000000000000000000000000000000000000000..1ab5233faf45727b50d1601a024b8e396993e085 GIT binary patch literal 2040 zcmVG5`Po002M$002M$0000000000002M$002M$00000000001P1{D z2LS;G0RaaA0sm3}3;+NC0s#dC1ONd4TmT~?cOG{DcK~+cZvbxqZsKQ5XG~{gPyq4ywb!@dFTn zr^Dt52)auv-$+0QfG%{$#u6VeNPQsy5I&j$44FKb4@n6Npzu%#fDh6Op2712kFXLC zh!_klQV@W*h7d#b&!8mx0b}I`5JU_X5N3jkmkvs7!{QSk7?^xwfCk^csy(m-x_urI zEXZ?VQ#P(5)4lc=q}Lp;@W9}p_yYhV$s@m>!{iYk5Lh}OBOPUaj}@H4BNK&)&?Bi= z8_$?r`UXeHBqI{Yeo0_azZVNpAF^H}i35#Eu4G*qANR~*c^09|Car2O6O< z@GR308`j6Wu>_>}29^X87O7yRq=10Q=THE3ZXs}t-QX*;rjf* zzA#?^Ahc=#y^Fv;0J;yv2n%>ACqw*TzA#+`;0^8tz5L+*0Df>le!GaGOnLm`zF}W5 zkU}NHKgvn&u&^iv^rCt%78@Kas9|1~Sc-#@FT?zzeo+t)4rmT{3-U_T;tRK(U`vM< zIZ+k2@&r|Wz5L>Saep|V2xRP!0{DJ*O#1=L_W+#{1Z0AdC^lPJKK&nE6-WHSz7f7r z0Db_%9th~~r~b^i;rmxnzbNO$4n}J9T>PfKQ(rPbRpdd2uVr%+8WSG@?;$`hqMt=z zvp5ML)-{QFu@oaFPVN&QLutSYm>v?HozhC)T2`|;!1vK}oVOCCJ*@PaQG#<(2KuMv zNwvX3r?b|x;~i%%JVs>1!1%_&^Av#bARoXyolUch(gxWHJCmww;w(bGeXfC803g-UI!0lV~MMT@|&NAWkFF zS@wW`$?nLZsoiHUU!DYT!d}Q4Ec1ddALz~yzuBK)U>7N!L-5l$m!XBao_Qkt$Nocq zDbVC}z<4J9T1DZq;Zi7J{Bw5va(`S^6;@qoV=6}(O37_LXJJGHJR!|*lE&HMfbb5? zd3jsY?VYt2fKFnE&s^W8dW*c>p)e6M zwMlD>MwF?l*um0Z>VTBfR*KE(8(JHM8Fd?@QjK;&3GSqF?n+u(S)(Jz%BDV6u=rMn zUtHd)wmDED=O1kQr!5|cFU88HIV)=#doUYcjC{sG=Q;YD9JjdDg)a4V4V`%=(mpq^ zpG=B$FD771FO;zCl$ZNRIicDG|9rLK&r)yUJ2lK4gPbO>avG|v4U2uJ|0*c~%I77q z5L3_VbM)mkZRwZ&4gOa#^DR9$@h{^&961S$()4`6iEMPAPcp0}_j40#^F2b>=9|pFYS^%l`!MDk438=6g%5E+WfKiWF&wq-J8_#rnReKg4J-@+ za%NS$O)(s2T9BjEKb2V{04mbM;jWL4q{wvlvQW!rk{-AOa2{%(_~j)nb!gQH#JDX5 zU!%UAN4+{}AhTPxY){`2fNK=XNfGJCwGb4N=NK-Oa)HIzg-jU{)-AKMe_Pd43^FkFhgo|J;RV5m2#eeQCO`y6ZIs2!g~l5~E79_)y8aDK;E&S- zCck<KZ7dFd~a+ zLt?5B<+jDciSbq=?q*B%Y(oJS6j^PNm3B4X<)`{N(Uv(d(yC9o19Wja>;H74lJfE_ z!@JPhjuUXO)TGeetEUuM=XeouVGKl@!8Xq>5P~dR;bpfYyZq3XHoYPQAUuhafUgtl z_{+p|*fMe;;s>d8P8Rp>DmppJg-$RSW5~7J7~m2O(=LyrSA)?_mLH> literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/badge_ok.j2c b/indra/newview/skins/default/textures/badge_ok.j2c new file mode 100644 index 0000000000000000000000000000000000000000..f85b880f1d00c040b0189fef66a4e13a8d99b32e GIT binary patch literal 2043 zcmVG5`Po002M$002M$0000000000002M$002M$00000000001P1{D z2LS;G0RaaA0sm3}3;+NC0s#dC1ONd4TmT~?cOG{DcK~+cZvbxqZsKQ5XG~{gPyu4xkY0+Q5Rjt8CJVYJHOIy#J~1%)1b`y@bF!%A zv^_N+uYQsa{9lF+8zWx`b_SNHp1_3%1RxtD!{QGQh%_GnpdNR{C&y$@9(<|8NG65hl3u`Qzc{y6=U=6yB0oN({;)p=WfWwD}MuIRN=i~4hoVh5# zH<+e9BuMzrjGXyO!BR9e;@@+-(P(_Sx$g82I&2K| zwy3!>A|=w!>t=vcd8;ouU}Y2hf<8e%FtDirNU|v`>8hm_nIhvSg{Gx2OCo%I3V*vdcgS0K={eQ@{cLvITN~x zjTP}N>T9AUrydf_;=V-c>r!010m?`NEjt9Y&9Ck${g}!$|!H zep4S1@PBt=Wfyw9W|5lBP2;g2>O^&x`y{S~z(1)=vzop@ZPFYz0@xK{&n!S@O?L?E zD~`7fs=mB2gaE6Bu`2W+5jTC6Jp9MLL%%ry)@wsckQO?~(hlGRgX~t#!3t)G@!VEz zJ@$~ftMsshJ>O%k8$)dnsPWdl_nfQcX#>4F$dyH5Wz!RA#a!O!?`wZ?Q1=8+I@IoT zX@67muqFS0jGas26gH&%)X$ag&eWd=Z9YYY<=RyfsXtWx+9NI(wJ|P`%%2#x;Oyj@=D@pr$d7wi2>X|$pPoGdW|yX zJQ9aNa?ZCBD=V6uBJpHk(AD}oJl2uDIafKqWy+>&K zj3$Am!{Rj$g;*k!@XXFt0Mak)r>iX`w zJ^~U+mw|&6$I7xF61aRUfRpgdx?AFgNfI&qBpeeB>8BXA!0Ken;98VOCAqYhvwDX9 zTaQ6{QsNshyu#jd`NPGDjr8&0LueM-iN*>7}ezYM%7ZCleu&T}# z8?wR}K9w}eW3cW&tKeJ!hC>8GVkc`l~eu`ME-&%$PEwuZ6$ z-W7@TJ`Ipa1yVZV`%5?d{=H`Q z-e5wRD5uTpP!dsp1K}FO%_zeYS(aM}O98=;F2fcbCg_(VsIx()TntVlu#qPR3hGFh Zbyj}@$oRU<7#P2;n(+JTWY@IS|JfWWqD}w+ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/badge_warn.j2c b/indra/newview/skins/default/textures/badge_warn.j2c new file mode 100644 index 0000000000000000000000000000000000000000..26437ca426a239770566e0ff9d36ccb2bb37964b GIT binary patch literal 2043 zcmVG5`Po002M$002M$0000000000002M$002M$00000000001P1{D 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/button_anim_play.tga b/indra/newview/skins/default/textures/button_anim_play.tga new file mode 100644 index 0000000000000000000000000000000000000000..9ed55f829dbdaf720da581050b77bc00b89bf12c GIT binary patch literal 4140 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 rBq_Db;80WpG4qOKjz2#>vy%C2#qzHn6E{}^hE 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 Qe)mVeU5}r0zs#rh1w%9Ak^lez literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/crosshairs.tga b/indra/newview/skins/default/textures/crosshairs.tga new file mode 100644 index 0000000000000000000000000000000000000000..ac4d63dc592c0d8d38b8eff9a88444d7acddc40b GIT binary patch literal 300 zcmZQzU}As)4h9Ye1&;s!|APcT1d#b3M4<4Y;vhK?0Lw#|V1+P!$Z~Ks$Yvtxg~<~| xBiWCx9&9&~JhB_WPK4PHqG4>1JCOMx4hVz%b1CHnsW0Ty?_%*9KC9RMXj zX0WiZutME}EJZXMWCkVrK^8&HAlgo3g~;~9%)v)v)62}v%mUOy41j9~DhB&oLPA20 z7>!UhVEr(?WTYclSTS&Maq*I1FH9-e&C=4+3NQguX--Z~9#Zv?qCO-j)HTdA*wf!n MH^R-+$5oF300ra!(EtDd literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/down_arrow.png b/indra/newview/skins/default/textures/down_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..155f80c97ea48f32e00656749055a2fec8ec30f6 GIT binary patch literal 2936 zcmV-;3y1WHP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001^NkltR+3wQzOSRu*^bTCK$CKi1%0Tpe21rm^a zigXBgs!T+Sy4po9?QD*ymeN)~|LYI1*1`_)=nL%R;!5hKn6uYOCpd+ z4oCtdArc56l?qK_Q4mE9Ab1rIkTVcKBtYt4(7wA72JIzQGSBRM+0Fi*_xQeVHxvp= z8Tq(UTq#bJ1z*RCn*W$MAtBMo@k)x)IuU}fZG4()7|R}b=N6;2KwY6gXBLB*BIn>7z3(~8ku+4zA1#?i9Lr>;*< zdo(GdgD&gF<-N45ekda~+d@?gBBa0(Q4EoSGvvUQENM5&hx7x^H)*weU0KD|tM~Ku zM&E=YT2vmkUrUeGF%qsZxU~%a1G=z@p59KAc4M+0YUVR)WpirP>~2a;|=GP*}Bp8u5(77lsVl#3-I!AZ6H(zR=iwYQrba{B2?3q7-!E;Zr8 zW}4s;P4E!oKg7;H#)Qq7s09_apkN_xMZ)+g{ByUCc-R5q2N#!qWC~I6O#52^?3t6&{B(3+*2n6 z{GSU7Zry8a4>Y{+F8Q58E+4`LEMQJTv}8>XDFLU*dI`SN{GaiUWTE1o=1L?wji$P) zsnUMG)P|wv3Ap7Ks;1B!b;1PsD8Ge7n-$YtEdRtogH+FZK9j z*#dXgtf`6~a*HFkbOmu7FCWjba=6L+_N{Z9=WJ(Z7s2t{yvfhY({V!6Tti`zE$5ob9a^2Ple`qLRoo6zE?_h5aS*#85iI3d?j(figijwd~Eyl%% zyWq(ipsqd^v!26Vwt0KlQSQFrAYbreGN-Q(Um6#~_HduQXJ=qSK`t$a=*4*XHj9YT zr;(AtJAN`UR2Ei3e%Pijpw~{!>EUa9kHxS*Tjjm~`;es6-EYT-yKFAD0UX^jY8-t7 z931SSVqu}aM-PU3E||S_%WAmv7V(c_#|{{YRjb1SKAQ2Nv$GQ{joI$3L%aj;kPoO} zasG-8;qT3y>$S);FjZl5e^>DXjjkMErrwygJta6UAy9i4RlU+*c*UIvy^J4Tp(jiu Z{{}X3A_Bh*-5APV_wkmX(6B&n%Ab{^+id^< literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/eye_button_inactive.tga b/indra/newview/skins/default/textures/eye_button_inactive.tga new file mode 100644 index 0000000000000000000000000000000000000000..8666f0bbe6286ce5c9ef5c0a0397128debc71ee8 GIT binary patch literal 3116 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 OUN_tls14P~?EVDG3cXJN literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/ff_edit_theirs.tga b/indra/newview/skins/default/textures/ff_edit_theirs.tga new file mode 100644 index 0000000000000000000000000000000000000000..005ada2deaa121415d9115313ce1d03d456ee789 GIT binary patch literal 1068 zcmai!ZAep57{||E)JRdc%nAvVVTm{q8LLg5o3uA_x7^gkUW^ulk{~mKD6$WRAN&v$ z#QG3M5khFAK4gW$a#m7Nuq+6nh_Lm7FkdQy+`oGcJD0m*b>Yu*&%Mv@|2*e8mrIC} z@GGC>lj2nx0tJ`Da`U1}mH9g-HxIhaLaQJvHe7g_ADYT%r!G+AMEV!)q z`bCydzQGt1j5Rid!cp9wnEtPZMyF7{r54HB#8wl$cJx#~dIy5AIXzgnp$O`X45<%; z$%5d}-4x&L-geF_Oce{}x~&7l>kBJmReBvxb~S_c{A28R=Jd*Xq9IWTknmkk2_Ohcf9} efs^+`?cJ@P%|-2>_>^OSBLQ+%%rus_+!L% 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 HT;cOCH1=Iz literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/ff_visible_online.tga b/indra/newview/skins/default/textures/ff_visible_online.tga new file mode 100644 index 0000000000000000000000000000000000000000..74e3a4e318faa0df3f26da33eed29bbf5a10f326 GIT binary patch literal 1068 zcmb`HZAep57{{-zB5~o0UW`>Z5C(%}WEiCs8z_#&D!0^LZYzn!ae5V9|?n!NA@Y*!0$og*X{q+LY#=&U4|)kf1Lf_;b&B&j0s6oEI)d zEu!S6qEuA*G60|!Qn_4C(cj-sH#9VaG#X6;g?+63Zyle{cSNC3!2vvrS*n;Xn0Ih@H*I=L@zSP%JO=>?&9L&%*jUm&u6Dp z@SG@UF9NQ;3ex-t3|=sR!>~>yo-BH04&O^Em0F2ovZswMSKE!Xt4e?E->S;C)h?Mm zQL}iqscQN3niVC#osMID{PX_D@v_a3s}SRVHn0UpDoN0MNt_D1opaIuImnmqZj3LI&b>@ejDz& d(7OhAn=cjuh{`~LHv zyJvP)s%|Rx)lVhAyw}&&a3f;N>N;i>PbM~EEZONMGR?{VXb7ip|L^zQ{|tFQ{z`PU zpMR$Ry68ye&Yg?dY$iB3nBKj6D={$f{|%9UQt6={t0r;B2N<&!$f)QO^r=_`~7*&eBQ{%OCFIPk#5<)JZNT7q~DO z4CLkI(a_LU{)Fj4ye0&HC3!|l_g-e$% zDva}I+xSTC``#IS_-1)5XJ3iqjVDJiG5UVe#`dMYNX-{jquEh-7q1#sG)^Bx`$t>g z;(3K3Sb{0oUHL;oLWqirqO!7*<0sk`f5%rX>|3H^|Llk4wd*)iqhWIV!`$wDGdFpu z(1-Z2CbJjo%_`PPD&CsfpQGCs$hkjry#18I5=_DF%KzNlG79qZ2@DKmenpjB!!b@B ze48&{GID5MFkii><&y>DNq@W_H{a9^@9y2vg!)sPJCqF$Up6Frv3=?T9NJbv+u?mw zEL^Iv1XHlP@@L!An3Ow#qM{;(t3%0i<|T<=X4@^iGwne>Z>l5PX(M!Gn8FfF!S2d0#Y(r#sy*^5`@{odg0$X;N9FcpO@!PuHHC)S|=d?4Ur1*+6E6ZlVY)t0yk!n(+hLaIH z1Y5#L(sgQV5szRPHzcEyCT2YO1cK>yi~F_wt_c~;Dt!v8DFw4Z zkG<3RE%NQgc$`ir&Wud#$#GY(#kj+gLaG!`szKuES*2HvU&}A@ofac@s|Bt64C(c9 z?{%817-F8MNYce%NJ=6yG7?kDWme~TUHQd)hrI4Ixd(-Xg$xV~;_jY)a`dE6pT3Mx z4<|vZkt2qYp=$c~>#vN7IROLwak*S1C+e}K8a&q6+26T7_h*MCmD18u1`i&L{LcX| zFE4z3eew7AN3B*X5fBi7pP!#HCgzCG#l^)~Q#`u`+wIqcd;b0D_Wxb?|NWQ$|J=y_ j3-^EBFTO7~IApy_m8egOFhonyak_!V$mrOJL8@N>a(t!v literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/folder_arrow.tga b/indra/newview/skins/default/textures/folder_arrow.tga new file mode 100644 index 0000000000000000000000000000000000000000..77d470731b1cf8234902560f7d7ddcc82a74dbb0 GIT binary patch literal 4140 zcmeI0O)ErE7=VwNhy_KmVL?(h6jmq;HFD*n%or^E4O#e#wVz`vA6Y3DR!U0pv9KTu zlscaGHm9y>t{HXCxv4qRbLPywxAVN`eb2o!jZ!IPTBqVwueDZH{zVQtsM91gCseOt zyvMMTkbeyC2b>mSX!0D#0KP|%b_rQ%0AKe{)Gv8BgPceIATG0hhG9FPml%B1VhGPu zX#Lrp^Kl01paxvkqtyD*>35L(Vi8=qW!^YHr^0qbpNB?p5l3A9LwTXQ;C%|xV7nHT z_&@O;g6zp!u$hNS{3yeALca{{U@L~d_$7#a7*ELmjCT!s67XN++=gzjxd+PKf9Uip zY=JxvQ(&w1GEX`G9oKAttlOs7%=Mf92Img6I&w=4ar^&;bDPitwsUUQF7LAb;_shZ zj;({MoEQ5aaG56cmYmDFqu03_%kPhSkoE?q-f70JoY8ql@qB^AunRVyEm2S0cm(Ga x>_HpEUFYg}FV0oy0$(|IwU+9<{`XJGoST0Ga`OwBe2@+1X8V>Vg6T}Z`UX--l%N0r literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/foot_shadow.j2c b/indra/newview/skins/default/textures/foot_shadow.j2c new file mode 100644 index 0000000000000000000000000000000000000000..f9ce9da7d1ceea5060bee0d3bf4a0c06c8498e22 GIT binary patch literal 1647 zcmb7CdpOg39RAI)&NwRzkz$Mz35%F}<$l>*&vJ_`JBUL^r%@xn3FVf19T72>9I|S$ zq)<98v8NQqa@>;Umg{Mg+S$(2bN)Z?`}sW2`+T0~^S;mX{eDDvkr#jgBmlp+L`wjE zZ;1u~X&40ZUx~Z{dC3eSBP|U8q96dR6|Wu-!~>M6SRfXNnF@CoGt3hzrUPL>Orj_Z zKmZUoViYm#oWbEk7*QSom-x!80}xT+IM-Rh(RH)nJ2!-d}MeFkkDN`|P-B_ou(F_I!|&(T^%xIT_L1y&Eh(w-D^Y zU)8QeeX6tRHaSsq{S*vav3t&_V2>rXK*=OB@D8=4ND?#@0-f;#<|Yc4@7r~c35Nx3 zdSQO07H9C>kox+;@(U}yPBkCMHlJERzsGR&6isva(6@0ZKgRX`qMfcCvsqR5Jc>hG zJ&UbZLn61|igMb#fnTpxc>#U%B8 z=G4KQfvy+oZp+kZM2bU>nNVjwThFj^K%TOfC9KhB_9bX3(KN>rTYD2-9x%GCd+6v7 zehT8%_KjM8t1X+4VOMmNB2F+0aQKU(}nkH#c zZZlbmfdq4&5;?jYXXVU_86|h6veSzZ-y(&SaCqs(ipxD%j6r-k{n3NjIHybgosAaj zahHawgKVCocJ-~zXJRV7$6tkO_O#7LD}469o1&5|{#9|>?%|HQ_C$+34H4;Y1^#Ap zLaM4yo5O%KLfK!}i}?<)82M;gZj@=3^*9|9ANFPFBohx$o;;2mL&nX!D!;_;+@@t? zb2rYSo9dHSf}z4kFG4+uzu%Apl&TzsW!0HG&?R6rZ^nEem7D&J?|Q zAve0T-BbadvP4U~3H6Q8tIv&>`Hji3?lG5Ro%aa(eE8r*^8Rlh3S`u9R-My063x$o zOEmcPos^|vOF6bDWyL>v)KqHaU|De%+WLwi@rFWRRT`~He%w+&I9mJ|Ur2VAL!O9r z_UJAZS~HF@S6W)2ofJej7gid{H<2x72d4IPE?Rc>d-S$1#xyjV9resC(BpKj)gLbD zzw^$0mBcZjA}QtxgKH1t(Q;f#{1a+FCAp1sl0p@u^v{ zpXp^ir!wazV~3uzLx$K-p6xsyNCsT8&Ri^c(}}y3oBojL8^OaF_8)Z&KGo%{nv#IH z*Vf8l8(Uv+(oM%^Rt-O$Mc<}BC`)U;?)${;2>DcT18-!oN>iRb`M}o0 zqi@gJS4=!0M)!qluzD9g0j~uv)FkVqXS4I6 zBx;@$1%`ynV*|Oj&#lv_ZBLCi^SmfnC77ALny;b~LCO1*88S&{dPRQT+O+Mw;hb}9 zBu-IV)s19w=S{a?#s~@Xd&sT=BlZ!OZG77pgh_3{S;Kbx#eC)j`Si~-(cYqC@4JY= z^oNb!GHe`NYhtjPVxRXrBCvKTzm}0RUE1n+>{jZnzB4?zkzmt&WcKRj-d}LUuZvY8 zU`3d5?2d3rm?#M`RkV?_z@B2gXTKc{;P4v~&)2>8n^)kX|AD_Zv PAal?Q;=}k~5RLo;AASj- literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icn_label_web.tga b/indra/newview/skins/default/textures/icn_label_web.tga new file mode 100644 index 0000000000000000000000000000000000000000..7c9131dfffe5a4bd517b19219f0e2e2d19d45602 GIT binary patch literal 4140 zcmeH}?MqW(7>7p|B=|@457dVs2>NU=2+MTR%M{Dm5XI>#oHb-YTd~?|l9(-DC>k!U z)on>)_F@gp*J@5-Er+wYXo9kcpg!E4=YbpKX^g|OFG1V5`0=}WZmylf4jheUi-tZs zG|G27wS4C9z`u3}JSKy+WZxdh1?}G5R@v*C9_WJ?9hWc{ELA#?^?w-hL$J3U839W( zhq~Id8uZfsg;9Vhe>XB7wwO3#r@5GP&Q@O|?T@~F4xuOak@4VcBZs=$w43Xt{qdO~ zL|zReWAID^N9;5glg>F?PfPog;W=2I97o20xsF3!ZMtper2T837a=)6jhXN_88I8Q z)9$z+?cZ2gg0*NEGtu8zi`k%^jw=pn|M#yeuo3@+3}3@Z4t2G8^O{rI|0A^u=|l_} z_v)%S)YWE}$0hIomVoq^CCr7c>sO`y>0}(%mm|oyQ+u2vcAASx=Q`c;_kTSeg;XSj zjJ}$q9I?|}OgeYNX_vnKR5T2UkCT{*-V+s=4chV8ZPNbL`5A~!yu?iORF`8mXvfvo zD(#O=y@AECA!Kw{m2t#Qb1~`M<(6h?e`I_F-aqys<91~!N9;6b*`(L~h07xEpC1Xp zgzpwIy!t~NvD2I-^KX7umH*&xyUA#megBw!zc`Uvd9*n2dw6ZnpQXzXwJ= z7f~(bSKPna43)lI+-x^^w-bh)=TR-p&z^hpu~P5Wf`V-1DcxU+AX3c!oUYud`dH3%o z0i_mY&J$)w)>;-gSw}_zj}I;Hdd}8Vga+!rBsJps7k%^r`{k!*G75Nnf50h^x7U*v z@%){6c6P7t6d46P*pdBm@Io7D5zoJ@U<-TT_mNS+qvKeOeBa+oTEz3;>nLEq1^i?b z@aSr3kpH-Sm9&WAk8j1i&T6SDFLtoC*45!ycj%z+-gSTIue&!X7ElLIt%JwnHx`xj zbTIkR{kx=wj{mDX7yeeH6-zzk_VuHcd08?d_6z1E=70Ug=UtB;Opq4)%AD-Amy=5L zboln*wQ|KfuE6ENDWTQ)o3Y=xYPrW-Sr$5XgwGxgkVpOF>`b@lF?s7o2z@udpUSj+ zv4?I=@>_1jPjVD&^FXKa$KN_BKi$HHj#bg)03OcJ<874@D{?b^kJF&OE@i1WgYEf* zgiYMj#(|Z*Y|%p3wI6Cp;9`x7PJEg}o}3J7E6OG8MGX;ru1nGCdaFN+t6PvbC!gyu zi}9WTShl+I9iz88j}tK9K0wXevZH{!;DFC{l3M4hE|1cn&j_D;Lig3KTp!n2V5(Zu zSo`tNot_o~I-J|-$HJT_wC>Cc*TDgw>m{K2UtP=%9VNo`4(3+?Zv}PTQ2WVf|wJnzVH5o2GvNy7?c% literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icn_media_movie.tga b/indra/newview/skins/default/textures/icn_media_movie.tga new file mode 100644 index 0000000000000000000000000000000000000000..43dd342c9d8e3bdeb66f56d0b9f2ad9c986c6e5f GIT binary patch literal 4140 zcmeHJe@s(X6mFK7nQ2&}VLBJGWpQcT;^v~n$)Y57bwzo~6j-yNpvZ7lpn{HAGF_OA zsf;uWsG)=nHZKSziVUOD3G&m%;E$K0W~O3-&af?8X8Qlx{hD{1m)F-i_V$N=c*&RZ z?m6FgzRS&f2TZ1COk%xa;y*LR?rD5tZs0k7lDYpQru&PT=ggj!zi|EwE~DVa(sa!^ z-z+7+%^DnA$tYs@&*ymoz2lj)RxW2JUBzS+8vg{oPeJbWmtL&W)c7{C%sJLo?A+lB zG78=i_dkPU37(S@=a!Uiu*pY1*+NQ-1DcxU+AX3c!oUYud`dH3%o z0i_mY&J$)w)>;-gSw}_zj}I;Hdd}8Vga+!rBsJps7k%^r`{k!*G75Nnf50h^x7U*v z@%){6c6P7t6d46P*pdBm@Io7D5zoJ@U<-TT_mNS+qvKeOeBa+oTEz3;>nLEq1^i?b z@aSr3kpH-Sm9&WAk8j1i&T6SDFLtoC*45!ycj%z+-gSTIue&!X7ElLIt%JwnHx`xj zbTIkR{kx=wj{mDX7yeeH6-zzk_VuHcd08?d_6z1E=70Ug=UtB;Opq4)%AD-Amy=5L zboln*wQ|KfuE6ENDWTQ)o3Y=xYPrW-Sr$5XgwGxgkVpOF>`b@lF?s7o2z@udpUSj+ zv4?I=@>_1jPjVD&^FXKa$KN_BKi$HHj#bg)03OcJ<874@D{?b^kJF&OE@i1WgYEf* zgiYMj#(|Z*Y|%p3wI6Cp;9`x7PJEg}o}3J7E6OG8MGX;ru1nGCdaFN+t6PvbC!gyu zi}9WTShl+I9iz88j}tK9K0wXevZH{!;DFC{l3M4hE|1cn&j_D;Lig3KTp!n2V5(Zu zSo`tNot_o~I-J|-$HJT_wC>Cc*TDgw>m{K2UtP=%9VNo`4(3+?Zv}PTQ2WVf|wJnzVH5o2GvNy7?c% literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icn_media_web.tga b/indra/newview/skins/default/textures/icn_media_web.tga new file mode 100644 index 0000000000000000000000000000000000000000..7c9131dfffe5a4bd517b19219f0e2e2d19d45602 GIT binary patch literal 4140 zcmeH}?MqW(7>7p|B=|@457dVs2>NU=2+MTR%M{Dm5XI>#oHb-YTd~?|l9(-DC>k!U z)on>)_F@gp*J@5-Er+wYXo9kcpg!E4=YbpKX^g|OFG1V5`0=}WZmylf4jheUi-tZs zG|G27wS4C9z`u3}JSKy+WZxdh1?}G5R@v*C9_WJ?9hWc{ELA#?^?w-hL$J3U839W( zhq~Id8uZfsg;9Vhe>XB7wwO3#r@5GP&Q@O|?T@~F4xuOak@4VcBZs=$w43Xt{qdO~ zL|zReWAID^N9;5glg>F?PfPog;W=2I97o20xsF3!ZMtper2T837a=)6jhXN_88I8Q z)9$z+?cZ2gg0*NEGtu8zi`k%^jw=pn|M#yeuo3@+3}3@Z4t2G8^O{rI|0A^u=|l_} z_v)%S)YWE}$0hIomVoq^CCr7c>sO`y>0}(%mm|oyQ+u2vcAASx=Q`c;_kTSeg;XSj zjJ}$q9I?|}OgeYNX_vnKR5T2UkCT{*-V+s=4chV8ZPNbL`5A~!yu?iORF`8mXvfvo zD(#O=y@AECA!Kw{m2t#Qb1~`M<(6h?e`I_F-aqys<91~!N9;6b*`(L~h07xEpC1Xp zgzpwIy!t~NvD2I-^KX7umH*&xyUA#megBw!zc`Uvd9*n2dw6ZnpQXzXwJ= z7f~(bSKPna43)lI+-x^^w-bh)=TR-p&z^hpu~P5Wf`VDPkD0IOzle|EdRtiOAW*CWGEX_-(&5TwNXqxv7+a{($B8j$n+q`9) zq;0x3(I|_o%x1>Qd(EVanHHIbL1kf?W#-%nKO*QK_|W`1!kl1&LzoeZh|RV(*2glFqSS-8l~XS?Wq776!t=Uf0}Xk? zw{c;93ah1yd9-#Lv4mJ}Zf54S*uo;j-fCG)#f9|yGw=E^-gyUlm1N%6*O#DMo{M|g zv5=;m=pm2UpRcpMU2IH%pHdJK+*TDAH9peTgm1$=7;V#_uSPVV+vqn7k3lOsi$8v# zR#GtW>Z%;q1!tf+lK{O&j@i+Ej6Q5Yf30}Vr`!YAq|lXS;U@nm9*FrrjQ(J)?ANoZ zGSnxWf-3109!YXBJ@gds$)7uS3HlWU7*I)}%}YTupNC5R$v*M}h`{UTGd}iKN}x`O zhbl1^jl$D-p(&^J#pt}0O*u2sQ7A;aSYU9Qv!Z9WxULb9>qYDi@^CM`bxwfG$B#gE zf(L1MDCChx(3;OjyC@Zp3I*sWN<(W-JQRuCFT7oz)#U9btcg|TrltoEZ*^~ya6?eR z3y1VjC^B~YOcqB)3=gR2-0D*3>Fmt;Ytmz0o0ym|`*tRnVD8>ygM(eBGA^psZvB6_p=3jKxh-chZJ0_Fkz{nJAGY)6FFeK=)HZKRAk^<-o^P$bp zrkv#%)7`|UC$|lZ>6-ESMm2)Hw~A;Fj&nMTZOY+zrEx=BM>KU9Rx7}?uaq(jwW#p@ z!*jZeZUZwTeTMJ(dTz>D=u_X_)xj=RS0eiP@~RAaSq0>&i7&5QNb6zV(ezLkrrvbY zo9abZL)B+T+vQP|d*z?}Ok+g^c&>HHirlla;qVTx8Yf$ucsD1<(|6_Kw-eoWG11k6 zfm^j-gS7V`ik3QP6_13xppV1JrKJLC5?q`lv^7050_UiVEJ72f z5F~<1Ey|B3C!5_Ip5FiAE3f6C2S1+Y`M=NaxED^6CM5nSk|NE>d}4Kqu_~YnXQQ-> zilXcU0)dXh;W%W1hq1(%96_GNzF`;zD|Spr(I}awS(0Vh%W{0v$`Ih-nPYe~O*;#R z!<4=_w>dpYP%s$m_}kQ6q~vqF*dNQYaL%5qqBTinC#Uz4l4fO4&y2d4`G{?l8YvEmJm|wGn%s zp(6io)@{V^PbQP}({7Ii9DaYl-`{SvTGZ`!M*_QWdcIRt)dS3_REkCcyKtEAWK8!e c{^xPvF4H7wYh&AGx;NeH#=KW|uelbaU;VigJ^%m! literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icn_voice-pvtfocus.tga b/indra/newview/skins/default/textures/icn_voice-pvtfocus.tga new file mode 100644 index 0000000000000000000000000000000000000000..abadb09aaf72f13376cbf66470ed71b3bbae2644 GIT binary patch literal 1068 zcmZQzU}As)0R{mE1r8VwNb>=)0T6otu`dp64-{7dVsyX?6!73v;mFr5liK6FQT>a@ zUakMg*lMQIU4>ww*+6w5vq9z{17TJk<_N#7CSQE^>!av{nc==m^S|px_5W5g6z>8x zg3Le$!b1AoRi$U+|7V>H`tQHr2*V7wZ5scb7AgIA-Jtd#s1ZXyrvz(q+vTGFJ=ZG# zhaa}V(C@NF^}pRDx&JP!Rk7*k0-0I7Gx6n;`_uj>ANR!2Z$DlBzg3gue}ii2<5=tm z`NdhzPOLTHfH7FF<3gqXwv%LmSnj`VzwCe00^$EQeKP++{sgKu1!+J75rQE)TV?+{FH;6%+kTn6-uR9xnJF zH^=`HD18Ct(9=E0&*%V@4?*fc@q~=6fP7FoqX`HJ3Uv+h4EFT*(~WTR^l{Z=0082O B_c{Oo literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icon_avatar_offline.tga b/indra/newview/skins/default/textures/icon_avatar_offline.tga new file mode 100644 index 0000000000000000000000000000000000000000..cfa95eb00e510aceb328909bf783f1b5f9904e6c GIT binary patch literal 1068 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icon_diurnal.tga b/indra/newview/skins/default/textures/icon_diurnal.tga new file mode 100644 index 0000000000000000000000000000000000000000..fc720c8269c0afd9262d91523904245765d9311e GIT binary patch literal 6162 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/icon_top_pick.tga b/indra/newview/skins/default/textures/icon_top_pick.tga new file mode 100644 index 0000000000000000000000000000000000000000..7fe119a818038c7526e2eea458d5fc9524087c43 GIT binary patch literal 858 zcmZuwPej9E7=HUljj2nA#O$y`yA|mYb=f5nkyuK{MA4zcj7;k<6Ol-VT}EP}-RjUt z%&5Z-k&&3On8--P^7KCMul*+a_F*J&kviFq!Zfh>oS3 zn=Z(tSb*%yxnT&&S2C#7pKz322ld4Dve`&T?TOLlI`A!v1zk#xneldJ(e(1yBW_D+ zJ0p<9|8)>p6@1{;iLPuIv4*m7rc6-yD2S1$BR3d$NkbQgBZ4oy8F1rb*61d4F{{_< zT@++E8tZf%sQuppOda^~tppf~=*FL@;JW-N3eOmkVOzNALVP^#g@+ZEaY6Rw%yq*W z(p~C)4*8z?$klr%A>@?QFE&4XwTNf>2DyUZ;V_&P&-* K$({@NdgKRZ-E#>5 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/inv_folder_animation.tga b/indra/newview/skins/default/textures/inv_folder_animation.tga new file mode 100644 index 0000000000000000000000000000000000000000..1b4df7a2d871d59a615817558e4bfb30ca89df3c GIT binary patch literal 1068 zcmd5+OK4L;6rFi7d1-zI-I$$-x{+3BwGgrp7cE3YTT?@X)P$BmHOnpq!7hZNbzcfu^(x!G5P@$mc!bJ@ln;d86CGDykS3bDReRJ=*=iK{d9w8EG zJyv2R`}F|GKbpjF<`&kni-PJXG*kkWBoM-ls75KYR12Bvp<{6al_BXg4QrczljG^# zFoMMlhF`rzaA64--@JzJ=?k26jcl2w!;L_(fIxm8mrG^%N;8lRTt34m63Ennef`%E z`%p!Q`F!QZal96{&~gp2Wnes87d3XvCKaDbB3A=sqZwU&ePZR>IiA<#Iz}Hp!sCr* zT~>qZFv>0d2-p@T*4G7g>gzWg=rPC;~*c|&#F~;RDWVZN?sSt)TWegWe2+U{U&#fVt z&toWGhG%gJQd$9FcoL7p5KDk26VS#L#<+d<_uPx%*UttP+5B@X5J3%T#zP(`kSM<* z+qpaW`eYnLQ9$D{=u=F0@;;1gemmv=5BsgZ!N9rmJ#MGVdG<`Zr`LJ9r-S?jNUETT literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/lag_status_critical.tga b/indra/newview/skins/default/textures/lag_status_critical.tga new file mode 100644 index 0000000000000000000000000000000000000000..bbc71d9e77711db00dd995d4f0bc8992241eee95 GIT binary patch literal 4140 zcmd6r`%hFy6vqdQw(@9E z=O+07OM}56{_hAelZ5bOVwfzZh^b&|m^$V%^COeZe8>1R4m8kuM@{TilFTde_Y1~bcI z4a#S2tv1H^zLuresk-_?ICDJKw57PIv}2EVLk_WY{Om2e10&GQBge<9^OTvp`8>Ga-TMDzE8oy9Wo#4 z(gRxXf$x?rowRjpCvDr-Eo(K`!CejaoNBWg!os>JKE97)VtQ%Ejvm^+y+`IT8oMbn zvYR3zx@2vr58ypOKY%~#kB;u8*w_csX09I~&j2Bk&GdKg?x($bAJLvY{gjl{Pl<_r zvYxoO2LzCF*Dh0FQ~MJV`Up7?pOW%W#+&Mwv8LmH`tJPN^bFX!vzM~61}Qy#fDRoR zpaTaUQ(BtBzI~4;ol>5CY|A`jMprjPry-3R)!*p@ryV{hLqbDcXk zLizd6C@*h_a&w312kL5THMp=( z$yg28J1~}-no+8(d_!eruVg)_siedd*e+gtMHLmVsk(Yp)`9&=(Z+ovmBEmqWuH69^=y1YM8+> zL5y}jARqP|>e|s^m9s1ekk`zoEeHPo+<1x)_)fi;wz4iVDLT4e4o^} z)v|92<2s=+t7F$|h4_N=eal2L_#T5ftzw{6%H%L{4EA%UaqFtT2E@lEge4l|j4{#P LN#Vw*Fdy+Rzu1;& literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/lag_status_good.tga b/indra/newview/skins/default/textures/lag_status_good.tga new file mode 100644 index 0000000000000000000000000000000000000000..680ba90f173750e1ed32a43fe2d5d69c8f88c21f GIT binary patch literal 658 zcmXw$-z#NN6vw~k9%s1R2jxXxDA$_@MB(X#l=27oRe1FxkvyJzjEu`t ztP-#$S%m^@E1 zd6r~YeOAp_&3O$gPb&?UvPjm}9vC-Kep1fn%VsuRG_fJy!1{bW>+*GGS6}tUi$;0} z9u2>x1!iG!w>@fS*L4>=uR7Tgbues;+UTjJO83uhlih&Q;|J5bypjq7cLN-}8)W}& zKYMR_8TQ=t(CfSHGm+u@Vb*@HwK>1Qx2Qg=pqg>&d5YtY;~aY&V>tRSN>8ncrwJ3$ zwq#WDwC}?!zzU+G!y=CS8sXyKMb5p+J=E9!^wp_Lldx*?XLnY&q%y;)( ww*F}4MFof*gUF7fYBUE^B0Dl3y+`TLV`kST%_u%PLjC0>>Mkx&bAFC$wyM9sk0 z_vpO4gWbU{*u|Mt`X3)rd3NS$E-qRgmDeg%QJj8z!}!Y!M%nD)=Vt^Zns|LR6}c8a zl@>wsNGY_k;^y%x?WZR!e0^c=;{*2W`#S<*j^;l<(ZFk3LfT2DNv2_FetgcpSWE6>P+Dwjo3!?U)Q;$3nCubp2ov#=bO)fpqoFXXh$ zFZ!1tk<)$ruXv?xC%C$e#dU+Ms2{@IG(>vaU6Puw6SV(Z+>khhb<`fe(3!b^1nxF)1u7k|M+F)E+jRz`U1J;J`f zforA}=cTJy{*INjPs-81o{2IpBh~gbMOVS+(;A%obT#5@&l%!8H}DUAZ6C(QJIs-} z*=sgYUT>#k4Elhkn-1c03sEn|l6kI+g(ur_OGqCTS9?>7M~nsI1qb?5-KaP6$vav* z?%9Xor$3?NFNtw`6vLZa@Xadb`PyIce*X~SYX2qQJ2{61_A%z}sYR_?&z^=hy8fPU zHD5zJNBZsxlqnfQO%G2WY0>--h1^+*89evnDE{SVQHh%=Idh(0?*HT49TR6*QLqbT z$tLuh%lKC|X}*>pX77mQM7KH!`mzJ3lpUCg%4i#b9=U(}J?NFaD=u{6@oEa5?^O`q zJdAJg=bFDs2y}aF=B?D@4J2J0A>d%$_#UrV%h+50GsikE^X`f7cxv6-xTY4M|EibJ zA8z5kG~OYuQP9eMFP(uB`!%fnFyGdQ%CL^daW-#e+FRRsyvRoIsUDVH93v!O?xEDN zadYD1CslXAl9wrK@2Bt@M4$T|V^u4`2hO6avJ)k_m~{#A&iCQzA9PjL8y@ntrj}2g zvqM73scGQj0mzYDDH?(gq`kZME*mPU@tObZZ?Y~@6CP0lWNe>ub-Q6O#S^hUo7k<} zh*-CQC*~P$%iL#z{t@2Pp&%JB3%NqRU=jY)do5{=$r5LdTb&TLHYP6KWK<6TRHn84 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_avatar_8.tga b/indra/newview/skins/default/textures/map_avatar_8.tga new file mode 100644 index 0000000000000000000000000000000000000000..28552f223798d1a1d4c0c04a50af38cee77b9e24 GIT binary patch literal 300 zcma)$%?-mK424ZkjFAOe^^^?~2?>bQrd1YU5Ef$!G6e_M55-Z{Q=jw+8$bULT}Wlg z(qN4-^arDOionNB93F-G>@caRI}DLH4ZwRTcU>cKo5!>zRw_%H|mN4>B}J*bBe nQ1AWNBk>Logk8wL_T$dq`|p?yRO{n4z1`C-@w&~{YeQ aiX$`CEb}+?nihP@Ic-}I(PKPT)8p+T2wRKF}&5b Q?EMkeFi-6@gt7n1AFTsTy8r+H literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_event.tga b/indra/newview/skins/default/textures/map_event.tga new file mode 100644 index 0000000000000000000000000000000000000000..c229b379a2c9797fba482051e98a157896d77368 GIT binary patch literal 1068 zcmb7@&q@O^5XPtWpeHGK@z@v8n>XKeKSdRMNWicAOjhm-QV2`%!c-)=SE*XGmhLm2H#%xZp>p2_dD5nyp7kb zsxCC@^rf#b>LM1-gO+&If?vN(WA#@Dock=+#zy|rayN}Z2gbd{x_F!uz3NZGkToA- z$l<-Db7a4>n&i=k#Y!6J$?HxnXIZFC4a6)5xjaW?=Lxq?)?`zk3;Hfwm? zI}94|F>dog4&DR!+&m9wVQpK7i{rcJx#=Bp9eZl{aM}LNkjZD)0RP_o<~hebdkClh oubpZ@hx^ie^H}-+TZ)10;=yuEo?olC`lWsvUwu5(qv~3I0rNT0sQ>@~ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_event_mature.tga b/indra/newview/skins/default/textures/map_event_mature.tga new file mode 100644 index 0000000000000000000000000000000000000000..61c879bc923c7d1ee625a3995012a3ddecca363d GIT binary patch literal 1068 zcmbW0Jqp4=5QW#+Smp>`KszffM2HZK3jQHtAyy*d1tj;;(i_?46l>nFZyA)&XofXp?iFV6=-Z<3JkIoFJ>+-}d7Q~;U+Q(n9pQeo&gKu{k#!wf z&B`3y{rTi|WXb6>z6T6EJbS-cJ%@W&)xcv{u)>$Wn{^@c_#N2ag|3G@eV9e7Sn+V4 z)G+IN;5&M<4?Wzj>^I5U1Mf{3t?~RHv*`nmy4i!_O#Z)QbgtvU^4YAm$u3=|%SCTL IO|ztLzMf}`#Q*>R literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_home.tga b/indra/newview/skins/default/textures/map_home.tga new file mode 100644 index 0000000000000000000000000000000000000000..7478de371aaec5d55f0f01405b45a2d6589261d5 GIT binary patch literal 1068 zcmZQzU}As)0R{mE1r8@W8<4<%Qn9p@6hAcna^n=0%*?;)hAhj_6!@{O91`@vb^nv6+dO>PI`ao#_ME~0c z3420j!1RL50qKF+4U1opI4(1g^}^JHXjmG8r9*6HpzB4}gU$w-iEIWbdSPZEn*s6< v$UJnn!qnoRbzo+Yp%F=i-;pXY%s>c8T`M$$R literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_infohub.tga b/indra/newview/skins/default/textures/map_infohub.tga new file mode 100644 index 0000000000000000000000000000000000000000..d0134fa5fe737492c87317e95b38789b0ffc76dc GIT binary patch literal 1068 zcmZvbUr3W-6vhvFkw}E(Fxk401UIxa3c84}B1}IT1vzt2GS?rL*04chQ5RM>cGV(p zx+p9v`j1|8UtkfIHN%S$TJy%O7{n5jP3F^c_U+3B8$5jPd(QJa?|J`Bq(rP=g;YpQ znKiS%c9Hc>C33uZjXdz$WL%|VjcLyE75mnS_*&M<_tao5Fxd*sdrW<5g~l|eo?>jh z$ki{tO5jHakUc>@_`g<8=5p#$Z($9s8TFIRbOB2N@&hK@RtD@4bBxPoF5^SgZ-do` zVG~%uO47!h@L0Z)GA-k8nH)=MX9IsT&MR8knn))$76Q+fQ0gl{o^C6d@cEJ5A!^0 ztH=dv(NZ(!R4fQU!M_v{%cc1h3)Cl|M9`%mMu>a9*rP7-XyLh&K z#?RBEXQlm)1HZ?c}H^>0KNYvD#Eu2&b5BF3$c&` zWO@tV;AWBVjMn(=QmMw&6cw*=P>TK-~R{zvWGc`p0b%4qjS`AkJP9^*OpG3O}8Xv}lCqveRvZX7ze L#k=2dw=~LM<32n4 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_telehub.tga b/indra/newview/skins/default/textures/map_telehub.tga new file mode 100644 index 0000000000000000000000000000000000000000..ef63a3eb7288fb2908770980dc9080460bc9c140 GIT binary patch literal 1068 zcmb7?u?oU45Qc-3V^=pv7X>#*mx`sLP+Rc@9DEHGH=TV0U!hAK1Yf|{=OVIL!C%Wx0423Oy3Eq|JBfJRxlak z@$b|C%bDKhAUosu%Zts2zPI!|+#V(I*fZT9AKWv1qdrM}}cr_>R=jThYE*@{d)F2)j=mUWqdedQ>K{-Fv)BLcnn;*SH_~3QK zV>XmW4b@kDc`wA+JXi6^kp|~o_nKO$C%!35THsu4ajsSzCH^W{28(%rJqc$1Kzsm2 Cw#T{v literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_track_16.tga b/indra/newview/skins/default/textures/map_track_16.tga new file mode 100644 index 0000000000000000000000000000000000000000..451ce24cf05fcae361a56274547651c30d8dbef7 GIT binary patch literal 1068 zcmbu1%L#x$5JLw~9xcHJv_ma=Pj9F%Qg%wujNUVGCm{C5M zUFttu9OE14zAA309sZyZ6ZP1!D%N+*EAM%q)rLFI`^>EJp7&X8xbwWq%(IW!sDHCP n8MS}YJ>9>%!CUw{p8vo{$}IbcKl^!Hnl(*n=&P+wT~pfuEC_Ps literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/map_track_8.tga b/indra/newview/skins/default/textures/map_track_8.tga new file mode 100644 index 0000000000000000000000000000000000000000..53425ff45b600b5bb8ee656123b75a8246d36014 GIT binary patch literal 300 zcmZQzU}As)4h9Ye1r8YRKN^6EgJ?7!&&^ z5I1X}k&&&lv&ew6j*#CN=omtTndsR%)m@<@daPEQ5x4+kIr|c@hdNp|6=T<0i(>tT z7O?~^$&v1p@WgU5r|@=eW%p=mEJxnx3*G~7QG>R75xc-C21zT#UKOS)D#EEr8vA+!iJ*7_JDA_szZM54xXf z`(y?1IQ-=uHix6k(_19AqGdMD1O+*kM}#b_UPXL#5=$pW6lIY+-o!))x==&D7yhvD z-n1}4ne2B=qZmL!4)*DDg_XP?A0bv7kSldu8tjNsR0M5!9je<4SybalBnS;9^VAa5r>Hc_Hfw(kEbnr@66qx|nL1JQ^J9Bc*?MtzuZSba&;`jR`K*sb0iEJ)DMq~o*B|cE;b|f2uxSedY z*f`YfHV$YpEB9UE(v_ z6b46JG;Mr>MbXJdf(+5&CnlDN9=DmgTS0e6sAPJd4pqZPeHRf|1%BK0g2f^SG>n%> v3+TjkOJDH)K8cBTN52f1ICwIs0_>;r;8cZ_nPHzA66!QSDO# literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/mute_icon.tga b/indra/newview/skins/default/textures/mute_icon.tga new file mode 100644 index 0000000000000000000000000000000000000000..879b9e6188bfc01fc538a3f8f7d72b2d64e790b0 GIT binary patch literal 1042 zcmdtfA&UY*6u|MpWEAAerEOv|`2{TZ0R)4{77>Gpcw7`&lSyo15W#3Oh(Q#QYt3~)k#dp&C8&yXI`I*-^AEk{mjGgzR95r&AqPnp;!TzBz_e_6Q+^C@1SXOTTN zXj(DNeGrrLrL0_^x%@kgNiX@Y0d$>?J~7$G(=)j BCEEZ1 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/notify_caution_icon.tga b/indra/newview/skins/default/textures/notify_caution_icon.tga new file mode 100644 index 0000000000000000000000000000000000000000..abc23d1d7a104b743186202cb3ae068dd93f1c52 GIT binary patch literal 4140 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/pixiesmall.j2c b/indra/newview/skins/default/textures/pixiesmall.j2c new file mode 100644 index 0000000000000000000000000000000000000000..a1ff64014b3b2af131a123b30cb0e2c3e60142d9 GIT binary patch literal 2845 zcmZuvXEYmZ8;-rHU9(mP`f8}uh}wi|%}Cx<)U4IdYwsdfjY=C^QwebFv|~B|v;ZeS{TnCx1gL-GL<0cqTr4dA z8%#$4|4EL8gPk1!U?Ks^N>TDrfG9vDEeH?<_=o0u{g~eNY{#^Kj~&y4=?xGDu-JIq z@$ioLD^goSOGA^10q~xb=EVV6n0cS6=3)Scd&&v`PT?UVQoWIF8B=p=VBP90 z#N_BK6en(<)@={IOeeCVP$}JR)&c8; zr7M3meVdFm7Xh5C-+GX;tj@9ouyN`c?{isBv;>#&#ssUHRiF6~7h*{4+7lNxrrAo6 zWp##C*ZP%arhWcsQ~11&t#5z(E8Nuv8cLurnAz8?Lw&W9vp-&5nGedrXrSj1u1oyq z`$2k^HPPos!6AYv1CkV|KUk1;>#}Y8LC4*>YJI#{*M$8K6}gI@RV5-C^?A=1($-FvtPO#PnvAFB_=N*Q zXoFoX(xF1h?R~c?Gp$-G0rCiEf-qB-C9-ULKcSko+x3$V>`%4+Vh<~P%xs1hYSZ6D-|}EKD843mRFQC9WlG{k zPc_#-DQs7YzsjLWBw);NNChJ#{jFv@yMPskyPeULXVXKQdc zYkxx__b8!WGbSQ33WU8ir2X8DgsgHX%Cv#RgrrEf77}>QHBKrCnMV^dM5Y}DfG3r; zh0>TFE&hndY{E{UPcCfl$k#M{Ig}4O1}a^B6K!`TWB0{2v8AD*+Y_x`lh)4e_gE@O zVOv^~ALH3WykC@0uRBBnSq(wKR}129A`$&X>>>J(WE9Gf_uV}p;VujB7j55zxohZo zO&LY|J7slp{rM{O9j)6$zW^9FRsRS*U@U?Sqq5o(8`d}yW(%(lLS{#|8z+_%6YzYd zv+8;TrmlC4?q69T#zu?{Fwy345F!}Ib*Ow6`36ipmw(1}&^E_xS>_%Rhm+*Owf7y%OS|S)VCQg%bP{f<37O$B2QV)+%irpglN!w`8OMsWW#by44rpbzNRo!!w}tVf zB^6NN>SELPr0tUrxytkVWwuZ{G6&2-^Ru_2tZFNV5xZ@7tXqH*O$!^+Aljor65=QZ z?fnGTyYpHmBsx>b8`cf#+W!T#lO(+IhuyYrp(VTaSPEIPeb41eO|1+4y_4PdEU&t7 z^_pnfiq6j3AI4;{c@BpN>jbwJ%D>o$VeT$?9^Kpw%!wIO{8*&&%V4NGWs_7X&|k&S z)s_1lcRwuOr`WEb?r&E0{|G4N@yi;V9Xpbf_jOc&mJY?u=zX}o|JJV>@_bk7%g?5o zPHIpnEps6BYk6(ZF6wbs)>!`Vhlx^{w#-f4Jv2lPxA$cQGXH(4zBs=^o~RP-T&Wq% z2;WpYHQbWxXJA7ufXe{xc*Nd+A*}in%1)j6lZ5ffEa2%KYj?zI7h&(HFy_5L0*dI- zhsar7>VICstE0vH3Tov-y)Fm6y6L}jKWvV31$vz)ZJ5hdc1mre5ffqKWC+NgTyhY% zl?-W431r0H*4nRD=1JiUK(YA_d=tCENxttT-H6S&7VxZI>g~fXor<~$_9;;iZRI?44_azk#1p_aOAObnN0lybzPvA z!iERho4;k;2b*L*L=~%>vQtvx747@CHJ<>GTbkqa#B#@_0{Sqd)YYifnu7 zf9!!(Zqvp;zo}a95TKR&TR7>6Fmo^0Zy8@Hw0(pqZ=zGM%8&q8S0xar*O-WhA-HNDt zx5!|4-IGfjUq^PF`n+VOo*uyF`qSy3=n5F+oxXO%!gY@2PJ4$d-=<>fyAq>&(-|_r z%KPK0CZ6@;aq$sqx((3&0k_35iY(d&UWemjd?QHs_X%+drnuD_`!183Jbqy{PKBb^sWz!ZGclYQZ-AgPA=b$QB^G*Sugnhxc-V5u?WbP61R!tzWyNt6!Y4n)@3w4=y*V13uv zTY~&eM}r-U4K?z@D+}k0qJl4I2t-R?y8Fl`Uc+kTyYA;+U4XmHSd--WFm%DQ1$YmXI4rHIE$i sxZFUFS>)|AP!uZ<+4`2AhV4^BV-1RVHrS~ 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 B2!8+o literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/spacer24.tga b/indra/newview/skins/default/textures/spacer24.tga new file mode 100644 index 0000000000000000000000000000000000000000..c7cab6b38c474431acebcd5cfb10b0b4e2a8720c GIT binary patch literal 2348 zcmZQzU}As)2?hxU1&;s!|1*r@(J&ZI1EXnRG!2ZVfzdQDng&Kv8i2KiLV`kF!#smM O{rz+!+&q0;^%wwaVZPu1 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/spacer35.tga b/indra/newview/skins/default/textures/spacer35.tga new file mode 100644 index 0000000000000000000000000000000000000000..b88bc6680a405a808a1d93ec03ec1a35460b3a93 GIT binary patch literal 3404 zcmZQzU}As)Wd;cb1&;s!|1*r@(J&ZI1EXnRG!2ZVfzdQDng&MGz-Ss6O#`E8U^ET< ahjo@1LV`kF!#smM{rz+!+&q0;^%wy2>(l@M literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/square_btn_32x128.tga b/indra/newview/skins/default/textures/square_btn_32x128.tga new file mode 100644 index 0000000000000000000000000000000000000000..d7ce58dac3810459e3a8c969451fcfbd3a6fd0b1 GIT binary patch literal 6292 zcmeI0Pj4Mp6~O1sjO`?D1PBSSVBrq{{SGV&SgN3+@MbDMFQV8kEND}ZP;4AR^opWd2duf7{1rm!obMHC#-1GmOduLuI)s1TS`?%Vw zzFAf4SATx?{QT_s#aYaMdVcZj>f+fkV}5ylHn}{126&k0>E*@QJjVIi{ObIyzPdPL z2h7!>OhAbD7&kz3^HuW^9PPM?UT}@JsrK?hd(4xBIwh z>T69)Z2g|~h+++~?eF&U7!f9MW#R$z802hkHvK13ly3SdkdVzwL*YYdrm8zY5yM^d zl@-pTK2&P>o+xSoC!&#FDwgQME`{D5sK0?ahv6yksK7PgSQYT_Ac~egVfAiUp7r!c ze_s{Ad&rOv3yQ|R8MF*u9z&!&Zg%&)d_7SZ;u&fZ2G}<2mE@%x zCI|hIB(pM#W66e%u1A#PxFpU(@jOii6q3$&8EYdU5xBVuA_bIdZA<~X*$F1fARhwf zba$ML87E@aZR(KcsLY<@C?mx50)r12rYsJ*2dO*e;NJy4hAK3D>~f3XMx1%6#z^Hm zyJTz$+uA?&wVGvI^n(erD8)xFp|6A^k@mP{!i{h#Y@k3_Hysl)+QgxJGq`5N)Uoel_|* zzv+M{^v}BAVbZRm{)Nawf^DN~_RItbpQQvvG91oMD+RO)5ZptMS%UJDP#kF5FlP4R z;z*;OTRJBK654*+BJK=`S3~}d<&;eiUnpX6)ZKz=M*VhWA%#pjVbAKMuVC;3YEASaNBGc`eZ@=FWkNeUh2=#0ZpnQA?Q_i zsYjgjaJycwmyT(?*al(K@);ILU|jZ~@x(F8W-C1_C-?1~|*BO)wGV2wWl|V3Fkcpb_LKR)O6j6K?9cg4~Cdv}P z3%j|bsJ-ph0s-SJ9ZM2;>6UwDkrHY4!(51_(vn8hHk(E?=o%w}b0CTsmC{1vFdo;W z*j$*Vg8HUjc2DVeFThPZrO&BboX-(2ppwv{ih7pVAn?Frgq}yDlw!5o;DQn1Y17tx z$1VrrMm)R;j=qN0#e~w#E_Egmp4=- zn9qMS8Qg#n3R;O;KnP$w0)vZ;S|a3>4W}w{B)0N z*)oKa`BLzv)) zrdNacjX^^Ok2ZIh3A^76)KzF0kz8uCFj|;pF3(l@!8wqN%(x^K{nyj6R6g1Q8E};* zp2W16QYyHagw;(YG6yh<^FIbv)l`$Jj{m)zRFgvn3&{LUj&oFV;0Xlb12^KSjtZ#( zj>Lzchpdo|wm@M#2!Y6_7HI{gcckW=Wbnrf8Asjn;Dge!q5gUhtNxwx(7ycp|IWbn zFK)fR|NZ@2AAWo5ySH!u`d4=jKHA#;;P#te@cLhCThe~OzgPbKVcrn(ABC=NmVx&FX8ftN)!_KmXvPt#^NR=a*aWe0b+|r3?R~ KZzS@?M)(hAWlKi@ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/square_btn_selected_32x128.tga b/indra/newview/skins/default/textures/square_btn_selected_32x128.tga new file mode 100644 index 0000000000000000000000000000000000000000..59ca365aa45c990745c205c526f103df76f4fc53 GIT binary patch literal 6983 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 z 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/status_busy.tga b/indra/newview/skins/default/textures/status_busy.tga new file mode 100644 index 0000000000000000000000000000000000000000..7743d9c7bb077eaad66ffb31aa51e46773b35b2e GIT binary patch literal 4140 zcmZQzU}As)1qLAG2+Qzfpe2UchKr`9-5|3Gfx&Ela7qA|nSExejHJV1Ax^1Rg6yL2 zK^VjaiGk!mYVi4iT>tyTM9XREC-jO5=-lLGWc-f}gXBPJKx%QhfgJlm=BcPgE#+WL z{Kw3&^FJfQJs^Gz#rOV$#5foe{_`+${pVw1`KziPz7UriNVOjno@&}TGguiW{AXgg z_@9B{6Bsix?)uNjI0=e(0p%|J2dUv^lm&;4wn1VSwzweGegpI3at_vopBWfFpx7-S zFzG)GfZPFb*9V{*W`f-y%BOx0lpfIIffV~e?&sy6_88`85DoJ;vfUstWHoFI&Hs6s z`2K*>BqjEn*!QP0GhX?FY%j>KFn|buP&`ZoyA7lksOK*iOZs;~4)M2?*e@b+_Amp( zdkjCr>_?{&Zg~Hng=zP10XD%;l-SSC`ScaU?+8Dm+lkI+V(bLwi>E;R@V@}N@CQol zXJvc&0b>6|bZc<(nHal(c0U2)Xa7Ov620vQ#R1sOKsQjD{>TY`SYBjey#I&N{0B;Z zjEo=tAg6hp0S}dc*#G`NH}|o}l$JlB{Kw6A_bz&#$K?h{e%$q+mG#DFJ@d)s=y4C? z69UM3K<-!7T{8ia1`*{gA0MpTMW-Rh`5RF>zF`|KjA-^;h=r^54D*vmc!X$*JkB0@l5_?Iy?n zu=oIlCn!CD(j+Kfu(H2+55gceNDL&0E6ibLP+~u_8I-U|Nq>~sgG=vVx1W&vM&(CC dU^E1Ve+YyGg}R1$27CJZ=|;GD`nc*b003r}nCJii literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/tabarea.tga b/indra/newview/skins/default/textures/tabarea.tga new file mode 100644 index 0000000000000000000000000000000000000000..5517aebfc8abbd617251bcb8ce590d11f277cf72 GIT binary patch literal 1340 zcmb`>-39_-6h`4)Lna*zA00$YI*6D_x`&C6(a_K6{%>SjqAO^;xd4IRUoj^RS*Z<92B U`R;jtbz^?y;nu#dx$jQ#0U)1humAu6 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/tearoff_pressed.tga b/indra/newview/skins/default/textures/tearoff_pressed.tga new file mode 100644 index 0000000000000000000000000000000000000000..620d109de0f3c7fbac18d9a9f79114273455390a GIT binary patch literal 513 zcma)(%@Tt!2!ye9#R&BZVi!otF$F}qo^-g+A@Uw5|&_X+1C zQFi_YHWb1(c>_L4o`?v-7J|?VcviNo=W(-o!c7u9VBcYPu;ZYS?g)zwvI2Acy4Dk) r8_QcSaNU02tHmUyQEg?Lq-r}J=vPb@Pm^~$+W&v+%YfyB>XGGs@~DKt literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/tearoffbox.tga b/indra/newview/skins/default/textures/tearoffbox.tga new file mode 100644 index 0000000000000000000000000000000000000000..0670d2e91b24128f4ea51a48c5482a3413cdca4c GIT binary patch literal 408 zcmaiwISzm@3=!orlFqdJ6{K3Aa5b%+&MtHSp<6Be literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml new file mode 100644 index 0000000000..88e6dfc3fd --- /dev/null +++ b/indra/newview/skins/default/textures/textures.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/indra/newview/skins/default/textures/up_arrow.png b/indra/newview/skins/default/textures/up_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..fe68ad49dca3248c10391e5cbad8512aa52c2722 GIT binary patch literal 2930 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/uv_test2.tga b/indra/newview/skins/default/textures/uv_test2.tga new file mode 100644 index 0000000000000000000000000000000000000000..a16000d1e4178f0ddd750e9eb768baa247f99278 GIT binary patch literal 1308 zcmeIw_n!|00LJn6;bg@ZmCHPlBkqc_CE+foa~F3wD-@BvM>3+aE2BhqcEhZcEh8(V zoUQCFg-TSu=k@Y>`3vqRpC6u|o}ZrQ6C$0v1O$YIbA{jegR5NQI)CyPe{+L>xXCU4 z9l_f-hOf2aI7X;~39}e8dDkW+IdLgvm@{D$^LmTMT9hZ}SfCGL&HqX9Ob| z#c1B+eY((YjF)LnHJ+zBHK<86F}y%6VyVrG#8HQM5_pQzl;LTfp)BPn zPX#JciON*rS*r3J;S}aEicpltDMkdvDZvwzq!f`v@uZ-oa*~VOJjBC1LLS0+l)U64 zKLsdAA*qB&^*lWp2qhyAkcrG>AuHKX+R(%5D^|92t bxr0`ul2osLbc5K$*o64V + + + Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, Ben, Bunny, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Hunter, Ian, Jeff, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, BillTodd, Ryan, Zach, Sarah, Nova, Otakon, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, DanceStar, Jeska, Hungry, Torley, Kona, Callum, Charity, Ventrella, Jack, Uncle, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Monroe, David, Tess, Lizzie, Patsy, Pony, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, James, Katie, Dawn, Katt, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn und vielen anderen. + + Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: aaron23 decuir, Abra Miles, absolute balderdash, adelle fitzgerald, Aeron Kohime, Aki Shichiroji, Alger Meads, Alissa Sabre, AlwaysIcey Mapholisto, Arawn Spitteler, Aren Mandala, Arianna Wrigglesworth, Bagushii Kohime, Balpien Hammerer, Blinking2342 Blinker, byakuya runo, Capucchy Streeter, Chandra Jun, Coyote Pace, Crusher Soderstrom, Cummere Mayo, cyberrosa Rossini, Dael Ra, danana dodonpa, Darek Deluca, Davec Horsforth, django yifu, draco crane, Dre Dagostino, Ephyu Reino, etan quan, Fenrix Murakami, Fledhyris Proudhon, Fred Wardhani, Frederich Courier, garth fairchang, Gellan Glenelg, Geraldine Giha, GOLAN Eilde, gonzo joubert, Hachiro Yokosuka, Hampton Hax, harleywood guru, Hevenz Vansant, imnotgoing sideways, Jaden Giles, Jeanette Janus, Karl Dorance, keaton Akina, Khashai Steinbeck, KiPSOFT Tuqiri, kirstenlee Cinquetti, Kitty Barnett, Laurent Vesta, Lazure Ryba, Lima Vesperia, Linzi Bingyi, Lisa Lowe, LuDon Ninetails, Mark Rosenbaum, McCabe Maxsted, Michi Lumin, Midi Aeon, ml0rtd kit, Mo Eriksen, Morice Flanagan, Mysterion Aeon, Nad Gough, norgan torok, Pygar Bu, Qie Niangao, rachel corleone, Rado Arado, roberto salubrius, Royer Pessoa, samia bechir, Sasha Nurmi, Sean Heying, Selkit Diller, Shadow Pidgeon, simon kline, Smokie Ember, Soap Clawtooth, Strife Onizuka, Tal Chernov, Talan Hyun, tangletwigs fairymeadow, Tanya Spinotti, Tayra Dagostino, Teebone Aeon, Theremes Langdon, Thraxis Epsilon, tucor Capalini, Vasko Hawker, VenusMari Zapedzki, Vex Streeter, Viktoria Dovgal, Vincent Nacon, Viridian Exonar, Vivienne Schell, WarKirby Magojiro, Wilton Lundquist, Yukinoroh Kamachi, Zyzzy Zarf + + 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion + APR Copyright (C) 2000-2004 The Apache Software Foundation + cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) + expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. + FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). + GL Copyright (C) 1999-2004 Brian Paul. + Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. + jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) + jpeglib Copyright (C) 1991-1998, Thomas G. Lane. + ogg/vorbis Copyright (C) 2001, Xiphophorus + OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. + SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga + SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + xmlrpc-epi Copyright (C) 2000 Epinions, Inc. + zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler. + + Alle Rechte vorbehalten. Details siehe licenses.txt. + + Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf. G.722.1 Anhang C) + + + What happens to a dream deferred? --Langston Hughes + + + Sie befinden sich in [POSITION] + + diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml new file mode 100644 index 0000000000..52cd7a2a6d --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -0,0 +1,504 @@ + + + + + + Name: + + + Beschreibung: + + + Eigentümer: + + + Leyla Linden + +