From 0c0391cc7114bd2e9e4462c40e88814326f61bc2 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Tue, 22 Jul 2008 19:01:52 +0000 Subject: 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 --- 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 | 72 +-- 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 | 97 ++-- 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 .../skins/default/html/de/loading-error/index.html | 25 + .../default/html/en-us/loading-error/index.html | 32 ++ .../skins/default/html/en-us/loading/loading.html | 9 + .../html/en-us/loading/sl_logo_rotate_black.gif | Bin 0 -> 7426 bytes .../skins/default/html/es/loading-error/index.html | 25 + .../skins/default/html/fr/loading-error/index.html | 25 + .../skins/default/html/ja/loading-error/index.html | 25 + .../skins/default/html/ko/loading-error/index.html | 25 + .../skins/default/html/pt/loading-error/index.html | 25 + .../newview/skins/default/html/unabletoconnect.png | Bin 0 -> 15849 bytes .../skins/default/html/zh/loading-error/index.html | 25 + .../skins/default/textures/alpha_gradient.tga | Bin 0 -> 300 bytes .../skins/default/textures/alpha_gradient_2d.j2c | Bin 0 -> 4325 bytes .../newview/skins/default/textures/arrow_down.tga | Bin 0 -> 1068 bytes indra/newview/skins/default/textures/arrow_up.tga | Bin 0 -> 1068 bytes .../newview/skins/default/textures/badge_note.j2c | Bin 0 -> 2040 bytes indra/newview/skins/default/textures/badge_ok.j2c | Bin 0 -> 2043 bytes .../newview/skins/default/textures/badge_warn.j2c | Bin 0 -> 2043 bytes .../skins/default/textures/button_anim_pause.tga | Bin 0 -> 4140 bytes .../textures/button_anim_pause_selected.tga | Bin 0 -> 4140 bytes .../skins/default/textures/button_anim_play.tga | Bin 0 -> 4140 bytes .../default/textures/button_anim_play_selected.tga | Bin 0 -> 4140 bytes .../textures/checkerboard_transparency_bg.png | Bin 0 -> 1110 bytes indra/newview/skins/default/textures/circle.tga | Bin 0 -> 1068 bytes .../skins/default/textures/cloud-particle.j2c | Bin 0 -> 4049 bytes .../skins/default/textures/color_swatch_alpha.tga | Bin 0 -> 16428 bytes .../newview/skins/default/textures/crosshairs.tga | Bin 0 -> 300 bytes .../skins/default/textures/direction_arrow.tga | Bin 0 -> 1068 bytes .../newview/skins/default/textures/down_arrow.png | Bin 0 -> 2936 bytes .../skins/default/textures/eye_button_active.tga | Bin 0 -> 3116 bytes .../skins/default/textures/eye_button_inactive.tga | Bin 0 -> 3116 bytes .../skins/default/textures/ff_edit_mine.tga | Bin 0 -> 1068 bytes .../skins/default/textures/ff_edit_mine_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/ff_edit_theirs.tga | Bin 0 -> 1068 bytes .../default/textures/ff_edit_theirs_button.tga | Bin 0 -> 4140 bytes .../default/textures/ff_online_status_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/ff_visible_map.tga | Bin 0 -> 812 bytes .../default/textures/ff_visible_map_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/ff_visible_online.tga | Bin 0 -> 1068 bytes .../default/textures/ff_visible_online_button.tga | Bin 0 -> 4140 bytes .../skins/default/textures/folder_arrow.tga | Bin 0 -> 4140 bytes .../newview/skins/default/textures/foot_shadow.j2c | Bin 0 -> 1647 bytes .../skins/default/textures/icn_label_web.tga | Bin 0 -> 4140 bytes indra/newview/skins/default/textures/icn_media.tga | Bin 0 -> 4140 bytes .../skins/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 .../skins/default/textures/icn_voice-localchat.tga | Bin 0 -> 1068 bytes .../skins/default/textures/icn_voice-pvtfocus.tga | Bin 0 -> 1068 bytes .../skins/default/textures/icon_avatar_offline.tga | Bin 0 -> 1068 bytes .../skins/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 indra/newview/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 .../skins/default/textures/lag_status_critical.tga | Bin 0 -> 4140 bytes .../skins/default/textures/lag_status_good.tga | Bin 0 -> 658 bytes .../skins/default/textures/lag_status_warning.tga | Bin 0 -> 658 bytes indra/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 .../skins/default/textures/map_avatar_above_8.tga | Bin 0 -> 300 bytes .../skins/default/textures/map_avatar_below_8.tga | Bin 0 -> 300 bytes indra/newview/skins/default/textures/map_event.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_event_mature.tga | Bin 0 -> 1068 bytes indra/newview/skins/default/textures/map_home.tga | Bin 0 -> 1068 bytes .../newview/skins/default/textures/map_infohub.tga | Bin 0 -> 1068 bytes .../newview/skins/default/textures/map_telehub.tga | Bin 0 -> 1068 bytes .../skins/default/textures/map_track_16.tga | Bin 0 -> 1068 bytes .../newview/skins/default/textures/map_track_8.tga | Bin 0 -> 300 bytes .../skins/default/textures/missing_asset.tga | Bin 0 -> 2511 bytes indra/newview/skins/default/textures/mute_icon.tga | Bin 0 -> 1042 bytes .../skins/default/textures/notify_caution_icon.tga | Bin 0 -> 4140 bytes .../newview/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 .../newview/skins/default/textures/silhouette.j2c | Bin 0 -> 1460 bytes .../newview/skins/default/textures/smicon_warn.tga | Bin 0 -> 1068 bytes indra/newview/skins/default/textures/spacer24.tga | Bin 0 -> 2348 bytes indra/newview/skins/default/textures/spacer35.tga | Bin 0 -> 3404 bytes .../skins/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 .../newview/skins/default/textures/status_busy.tga | Bin 0 -> 4140 bytes indra/newview/skins/default/textures/tabarea.tga | Bin 0 -> 1340 bytes .../skins/default/textures/tearoff_pressed.tga | Bin 0 -> 513 bytes .../newview/skins/default/textures/tearoffbox.tga | Bin 0 -> 408 bytes indra/newview/skins/default/textures/textures.xml | 374 ++++++++++++ indra/newview/skins/default/textures/up_arrow.png | Bin 0 -> 2930 bytes indra/newview/skins/default/textures/uv_test1.j2c | Bin 0 -> 1206 bytes indra/newview/skins/default/textures/uv_test2.tga | Bin 0 -> 1308 bytes indra/newview/skins/default/textures/white.tga | Bin 0 -> 178 bytes .../newview/skins/default/xui/de/floater_about.xml | 34 ++ .../skins/default/xui/de/floater_about_land.xml | 504 +++++++++++++++++ .../default/xui/de/floater_animation_preview.xml | 173 ++++++ .../skins/default/xui/de/floater_auction.xml | 9 + .../skins/default/xui/de/floater_avatar_picker.xml | 17 + .../default/xui/de/floater_avatar_textures.xml | 36 ++ .../skins/default/xui/de/floater_build_options.xml | 8 + .../newview/skins/default/xui/de/floater_bumps.xml | 21 + .../skins/default/xui/de/floater_buy_contents.xml | 21 + .../skins/default/xui/de/floater_buy_currency.xml | 68 +++ .../skins/default/xui/de/floater_buy_land.xml | 229 ++++++++ .../skins/default/xui/de/floater_buy_object.xml | 26 + .../skins/default/xui/de/floater_camera.xml | 12 + .../skins/default/xui/de/floater_choose_group.xml | 8 + .../skins/default/xui/de/floater_color_picker.xml | 32 ++ .../skins/default/xui/de/floater_critical.xml | 14 + .../skins/default/xui/de/floater_customize.xml | 534 ++++++++++++++++++ .../default/xui/de/floater_day_cycle_options.xml | 96 ++++ .../default/xui/de/floater_device_settings.xml | 2 + .../skins/default/xui/de/floater_env_settings.xml | 24 + .../skins/default/xui/de/floater_gesture.xml | 17 + .../skins/default/xui/de/floater_god_tools.xml | 146 +++++ .../default/xui/de/floater_hardware_settings.xml | 40 ++ indra/newview/skins/default/xui/de/floater_hud.xml | 2 + indra/newview/skins/default/xui/de/floater_im.xml | 54 ++ .../skins/default/xui/de/floater_image_preview.xml | 52 ++ .../skins/default/xui/de/floater_inspect.xml | 14 + .../skins/default/xui/de/floater_inventory.xml | 47 ++ .../xui/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 +++++ .../skins/default/xui/de/floater_land_holdings.xml | 41 ++ .../default/xui/de/floater_live_lsleditor.xml | 11 + .../skins/default/xui/de/floater_lsl_guide.xml | 7 + .../skins/default/xui/de/floater_media_browser.xml | 19 + .../skins/default/xui/de/floater_moveview.xml | 14 + .../skins/default/xui/de/floater_mute_object.xml | 12 + .../skins/default/xui/de/floater_my_friends.xml | 7 + .../skins/default/xui/de/floater_openobject.xml | 10 + indra/newview/skins/default/xui/de/floater_pay.xml | 21 + .../skins/default/xui/de/floater_pay_object.xml | 30 + .../skins/default/xui/de/floater_post_process.xml | 53 ++ .../skins/default/xui/de/floater_postcard.xml | 42 ++ .../skins/default/xui/de/floater_preferences.xml | 8 + .../default/xui/de/floater_preview_animation.xml | 10 + .../default/xui/de/floater_preview_classified.xml | 2 + .../skins/default/xui/de/floater_preview_event.xml | 2 + .../default/xui/de/floater_preview_gesture.xml | 70 +++ .../default/xui/de/floater_preview_notecard.xml | 16 + .../skins/default/xui/de/floater_preview_sound.xml | 12 + .../default/xui/de/floater_preview_texture.xml | 9 + .../skins/default/xui/de/floater_region_info.xml | 2 + .../skins/default/xui/de/floater_report_abuse.xml | 96 ++++ .../skins/default/xui/de/floater_script_debug.xml | 6 + .../default/xui/de/floater_script_preview.xml | 6 + .../skins/default/xui/de/floater_script_queue.xml | 4 + .../skins/default/xui/de/floater_script_search.xml | 13 + .../skins/default/xui/de/floater_select_key.xml | 7 + .../skins/default/xui/de/floater_sell_land.xml | 78 +++ .../default/xui/de/floater_settings_debug.xml | 17 + .../skins/default/xui/de/floater_snapshot.xml | 116 ++++ .../skins/default/xui/de/floater_sound_preview.xml | 28 + .../skins/default/xui/de/floater_telehub.xml | 28 + .../skins/default/xui/de/floater_texture_ctrl.xml | 24 + .../newview/skins/default/xui/de/floater_tools.xml | 616 ++++++++++++++++++++ .../skins/default/xui/de/floater_top_objects.xml | 67 +++ indra/newview/skins/default/xui/de/floater_tos.xml | 26 + .../skins/default/xui/de/floater_url_entry.xml | 13 + .../newview/skins/default/xui/de/floater_water.xml | 88 +++ .../default/xui/de/floater_wearable_save_as.xml | 11 + .../default/xui/de/floater_windlight_options.xml | 190 +++++++ .../skins/default/xui/de/floater_world_map.xml | 92 +++ .../skins/default/xui/de/menu_inventory.xml | 65 +++ indra/newview/skins/default/xui/de/menu_login.xml | 13 + indra/newview/skins/default/xui/de/menu_slurl.xml | 6 + indra/newview/skins/default/xui/de/menu_viewer.xml | 252 +++++++++ indra/newview/skins/default/xui/de/mime_types.xml | 225 ++++++++ .../skins/default/xui/de/panel_audio_device.xml | 25 + .../newview/skins/default/xui/de/panel_friends.xml | 41 ++ .../skins/default/xui/de/panel_group_general.xml | 95 ++++ .../skins/default/xui/de/panel_group_invite.xml | 29 + .../default/xui/de/panel_group_land_money.xml | 91 +++ .../skins/default/xui/de/panel_group_notices.xml | 76 +++ .../skins/default/xui/de/panel_group_roles.xml | 164 ++++++ .../newview/skins/default/xui/de/panel_groups.xml | 15 + indra/newview/skins/default/xui/de/panel_login.xml | 47 ++ .../default/xui/de/panel_preferences_chat.xml | 61 ++ .../default/xui/de/panel_preferences_general.xml | 122 ++++ .../default/xui/de/panel_preferences_graphics1.xml | 203 +++++++ .../skins/default/xui/de/panel_region_covenant.xml | 50 ++ .../skins/default/xui/de/panel_region_debug.xml | 35 ++ .../skins/default/xui/de/panel_region_estate.xml | 73 +++ .../skins/default/xui/de/panel_region_general.xml | 51 ++ .../skins/default/xui/de/panel_region_terrain.xml | 30 + .../skins/default/xui/de/panel_region_texture.xml | 57 ++ .../skins/default/xui/de/panel_scrolling_param.xml | 12 + .../skins/default/xui/de/panel_status_bar.xml | 45 ++ .../newview/skins/default/xui/de/role_actions.xml | 187 ++++++ indra/newview/skins/default/xui/de/strings.xml | 390 +++++++++++++ .../skins/default/xui/de/teleport_strings.xml | 90 +++ indra/newview/skins/default/xui/de/xui_version.xml | 4 + .../newview/skins/default/xui/es/floater_about.xml | 4 + .../skins/default/xui/es/floater_about_land.xml | 344 +++++++++++ .../default/xui/es/floater_animation_preview.xml | 159 ++++++ .../skins/default/xui/es/floater_auction.xml | 18 + .../skins/default/xui/es/floater_avatar_picker.xml | 15 + .../default/xui/es/floater_avatar_textures.xml | 30 + .../skins/default/xui/es/floater_build_options.xml | 7 + .../newview/skins/default/xui/es/floater_bumps.xml | 21 + .../skins/default/xui/es/floater_buy_contents.xml | 12 + .../skins/default/xui/es/floater_buy_currency.xml | 62 ++ .../skins/default/xui/es/floater_buy_land.xml | 226 ++++++++ .../skins/default/xui/es/floater_buy_object.xml | 11 + .../skins/default/xui/es/floater_choose_group.xml | 8 + .../skins/default/xui/es/floater_color_picker.xml | 31 + .../skins/default/xui/es/floater_critical.xml | 11 + .../skins/default/xui/es/floater_customize.xml | 478 ++++++++++++++++ .../skins/default/xui/es/floater_gesture.xml | 18 + .../skins/default/xui/es/floater_god_tools.xml | 147 +++++ indra/newview/skins/default/xui/es/floater_im.xml | 9 + .../skins/default/xui/es/floater_image_preview.xml | 48 ++ .../skins/default/xui/es/floater_inventory.xml | 48 ++ .../xui/es/floater_inventory_item_properties.xml | 73 +++ .../xui/es/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/es/floater_land_holdings.xml | 38 ++ .../default/xui/es/floater_live_lsleditor.xml | 5 + .../skins/default/xui/es/floater_moveview.xml | 15 + .../skins/default/xui/es/floater_openobject.xml | 10 + indra/newview/skins/default/xui/es/floater_pay.xml | 21 + .../skins/default/xui/es/floater_pay_object.xml | 30 + .../skins/default/xui/es/floater_postcard.xml | 28 + .../skins/default/xui/es/floater_preferences.xml | 7 + .../default/xui/es/floater_preview_animation.xml | 10 + .../default/xui/es/floater_preview_gesture.xml | 48 ++ .../default/xui/es/floater_preview_notecard.xml | 10 + .../skins/default/xui/es/floater_preview_sound.xml | 12 + .../default/xui/es/floater_preview_texture.xml | 9 + .../skins/default/xui/es/floater_report_abuse.xml | 78 +++ .../skins/default/xui/es/floater_script_debug.xml | 6 + .../default/xui/es/floater_script_preview.xml | 6 + .../skins/default/xui/es/floater_script_queue.xml | 4 + .../skins/default/xui/es/floater_script_search.xml | 13 + .../skins/default/xui/es/floater_sell_land.xml | 68 +++ .../default/xui/es/floater_settings_debug.xml | 16 + .../skins/default/xui/es/floater_snapshot.xml | 112 ++++ .../skins/default/xui/es/floater_sound_preview.xml | 28 + .../skins/default/xui/es/floater_telehub.xml | 28 + .../skins/default/xui/es/floater_texture_ctrl.xml | 17 + .../newview/skins/default/xui/es/floater_tools.xml | 549 ++++++++++++++++++ .../skins/default/xui/es/floater_top_objects.xml | 50 ++ indra/newview/skins/default/xui/es/floater_tos.xml | 26 + .../default/xui/es/floater_wearable_save_as.xml | 11 + .../skins/default/xui/es/floater_world_map.xml | 89 +++ .../skins/default/xui/es/menu_inventory.xml | 66 +++ indra/newview/skins/default/xui/es/menu_viewer.xml | 215 +++++++ .../skins/default/xui/es/panel_group_general.xml | 77 +++ .../skins/default/xui/es/panel_group_invite.xml | 20 + .../default/xui/es/panel_group_land_money.xml | 86 +++ .../skins/default/xui/es/panel_group_notices.xml | 74 +++ .../skins/default/xui/es/panel_group_roles.xml | 161 ++++++ indra/newview/skins/default/xui/es/panel_login.xml | 37 ++ .../default/xui/es/panel_preferences_chat.xml | 56 ++ .../default/xui/es/panel_preferences_general.xml | 90 +++ .../default/xui/es/panel_preferences_graphics1.xml | 43 ++ .../skins/default/xui/es/panel_region_covenant.xml | 52 ++ .../skins/default/xui/es/panel_region_debug.xml | 36 ++ .../skins/default/xui/es/panel_region_estate.xml | 60 ++ .../skins/default/xui/es/panel_region_general.xml | 42 ++ .../skins/default/xui/es/panel_region_terrain.xml | 30 + .../skins/default/xui/es/panel_region_texture.xml | 57 ++ .../skins/default/xui/es/panel_scrolling_param.xml | 12 + .../skins/default/xui/es/panel_status_bar.xml | 32 ++ .../newview/skins/default/xui/es/role_actions.xml | 186 ++++++ indra/newview/skins/default/xui/es/xui_version.xml | 4 + .../newview/skins/default/xui/fr/floater_about.xml | 4 + .../skins/default/xui/fr/floater_about_land.xml | 334 +++++++++++ .../default/xui/fr/floater_animation_preview.xml | 160 ++++++ .../skins/default/xui/fr/floater_auction.xml | 17 + .../skins/default/xui/fr/floater_avatar_picker.xml | 15 + .../default/xui/fr/floater_avatar_textures.xml | 30 + .../skins/default/xui/fr/floater_build_options.xml | 7 + .../newview/skins/default/xui/fr/floater_bumps.xml | 21 + .../skins/default/xui/fr/floater_buy_contents.xml | 12 + .../skins/default/xui/fr/floater_buy_currency.xml | 62 ++ .../skins/default/xui/fr/floater_buy_land.xml | 232 ++++++++ .../skins/default/xui/fr/floater_buy_object.xml | 11 + .../skins/default/xui/fr/floater_choose_group.xml | 8 + .../skins/default/xui/fr/floater_color_picker.xml | 31 + .../skins/default/xui/fr/floater_critical.xml | 11 + .../skins/default/xui/fr/floater_customize.xml | 494 ++++++++++++++++ .../skins/default/xui/fr/floater_gesture.xml | 17 + .../skins/default/xui/fr/floater_god_tools.xml | 146 +++++ indra/newview/skins/default/xui/fr/floater_im.xml | 9 + .../skins/default/xui/fr/floater_image_preview.xml | 48 ++ .../skins/default/xui/fr/floater_inventory.xml | 52 ++ .../xui/fr/floater_inventory_item_properties.xml | 74 +++ .../xui/fr/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/fr/floater_land_holdings.xml | 38 ++ .../default/xui/fr/floater_live_lsleditor.xml | 5 + .../skins/default/xui/fr/floater_moveview.xml | 15 + .../skins/default/xui/fr/floater_openobject.xml | 11 + indra/newview/skins/default/xui/fr/floater_pay.xml | 21 + .../skins/default/xui/fr/floater_pay_object.xml | 30 + .../skins/default/xui/fr/floater_postcard.xml | 28 + .../skins/default/xui/fr/floater_preferences.xml | 7 + .../default/xui/fr/floater_preview_animation.xml | 10 + .../default/xui/fr/floater_preview_gesture.xml | 48 ++ .../default/xui/fr/floater_preview_notecard.xml | 10 + .../skins/default/xui/fr/floater_preview_sound.xml | 10 + .../default/xui/fr/floater_preview_texture.xml | 9 + .../skins/default/xui/fr/floater_report_abuse.xml | 78 +++ .../skins/default/xui/fr/floater_script_debug.xml | 6 + .../default/xui/fr/floater_script_preview.xml | 6 + .../skins/default/xui/fr/floater_script_queue.xml | 4 + .../skins/default/xui/fr/floater_script_search.xml | 13 + .../skins/default/xui/fr/floater_sell_land.xml | 68 +++ .../default/xui/fr/floater_settings_debug.xml | 15 + .../skins/default/xui/fr/floater_snapshot.xml | 111 ++++ .../skins/default/xui/fr/floater_sound_preview.xml | 28 + .../skins/default/xui/fr/floater_telehub.xml | 28 + .../skins/default/xui/fr/floater_texture_ctrl.xml | 17 + .../newview/skins/default/xui/fr/floater_tools.xml | 551 ++++++++++++++++++ .../skins/default/xui/fr/floater_top_objects.xml | 50 ++ indra/newview/skins/default/xui/fr/floater_tos.xml | 26 + .../default/xui/fr/floater_wearable_save_as.xml | 11 + .../skins/default/xui/fr/floater_world_map.xml | 92 +++ .../skins/default/xui/fr/menu_inventory.xml | 66 +++ indra/newview/skins/default/xui/fr/menu_viewer.xml | 230 ++++++++ .../skins/default/xui/fr/panel_group_general.xml | 78 +++ .../skins/default/xui/fr/panel_group_invite.xml | 20 + .../default/xui/fr/panel_group_land_money.xml | 85 +++ .../skins/default/xui/fr/panel_group_notices.xml | 76 +++ .../skins/default/xui/fr/panel_group_roles.xml | 159 ++++++ indra/newview/skins/default/xui/fr/panel_login.xml | 39 ++ .../default/xui/fr/panel_preferences_chat.xml | 58 ++ .../default/xui/fr/panel_preferences_general.xml | 85 +++ .../default/xui/fr/panel_preferences_graphics1.xml | 43 ++ .../skins/default/xui/fr/panel_region_covenant.xml | 52 ++ .../skins/default/xui/fr/panel_region_debug.xml | 36 ++ .../skins/default/xui/fr/panel_region_estate.xml | 62 ++ .../skins/default/xui/fr/panel_region_general.xml | 43 ++ .../skins/default/xui/fr/panel_region_terrain.xml | 30 + .../skins/default/xui/fr/panel_region_texture.xml | 72 +++ .../skins/default/xui/fr/panel_scrolling_param.xml | 12 + .../skins/default/xui/fr/panel_status_bar.xml | 32 ++ .../newview/skins/default/xui/fr/role_actions.xml | 189 +++++++ indra/newview/skins/default/xui/fr/xui_version.xml | 4 + .../newview/skins/default/xui/ja/floater_about.xml | 34 ++ .../skins/default/xui/ja/floater_about_land.xml | 513 +++++++++++++++++ .../default/xui/ja/floater_animation_preview.xml | 175 ++++++ .../skins/default/xui/ja/floater_auction.xml | 10 + .../skins/default/xui/ja/floater_avatar_picker.xml | 21 + .../default/xui/ja/floater_avatar_textures.xml | 36 ++ .../skins/default/xui/ja/floater_build_options.xml | 8 + .../newview/skins/default/xui/ja/floater_bumps.xml | 21 + .../skins/default/xui/ja/floater_buy_contents.xml | 21 + .../skins/default/xui/ja/floater_buy_currency.xml | 68 +++ .../skins/default/xui/ja/floater_buy_land.xml | 230 ++++++++ .../skins/default/xui/ja/floater_buy_object.xml | 26 + .../skins/default/xui/ja/floater_camera.xml | 12 + .../skins/default/xui/ja/floater_choose_group.xml | 8 + .../skins/default/xui/ja/floater_color_picker.xml | 31 + .../skins/default/xui/ja/floater_critical.xml | 14 + .../skins/default/xui/ja/floater_customize.xml | 469 +++++++++++++++ .../default/xui/ja/floater_day_cycle_options.xml | 97 ++++ .../default/xui/ja/floater_device_settings.xml | 2 + .../skins/default/xui/ja/floater_env_settings.xml | 24 + .../skins/default/xui/ja/floater_gesture.xml | 17 + .../skins/default/xui/ja/floater_god_tools.xml | 156 +++++ .../default/xui/ja/floater_hardware_settings.xml | 42 ++ indra/newview/skins/default/xui/ja/floater_hud.xml | 2 + indra/newview/skins/default/xui/ja/floater_im.xml | 54 ++ .../skins/default/xui/ja/floater_image_preview.xml | 52 ++ .../skins/default/xui/ja/floater_inspect.xml | 14 + .../skins/default/xui/ja/floater_inventory.xml | 51 ++ .../xui/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 +++++ .../skins/default/xui/ja/floater_land_holdings.xml | 42 ++ .../default/xui/ja/floater_live_lsleditor.xml | 11 + .../skins/default/xui/ja/floater_lsl_guide.xml | 7 + .../skins/default/xui/ja/floater_media_browser.xml | 19 + .../skins/default/xui/ja/floater_moveview.xml | 15 + .../skins/default/xui/ja/floater_mute_object.xml | 12 + .../skins/default/xui/ja/floater_my_friends.xml | 7 + .../skins/default/xui/ja/floater_openobject.xml | 10 + indra/newview/skins/default/xui/ja/floater_pay.xml | 21 + .../skins/default/xui/ja/floater_pay_object.xml | 30 + .../skins/default/xui/ja/floater_post_process.xml | 54 ++ .../skins/default/xui/ja/floater_postcard.xml | 42 ++ .../skins/default/xui/ja/floater_preferences.xml | 8 + .../default/xui/ja/floater_preview_animation.xml | 10 + .../default/xui/ja/floater_preview_classified.xml | 2 + .../skins/default/xui/ja/floater_preview_event.xml | 2 + .../default/xui/ja/floater_preview_gesture.xml | 70 +++ .../default/xui/ja/floater_preview_notecard.xml | 16 + .../skins/default/xui/ja/floater_preview_sound.xml | 11 + .../default/xui/ja/floater_preview_texture.xml | 9 + .../skins/default/xui/ja/floater_region_info.xml | 2 + .../skins/default/xui/ja/floater_report_abuse.xml | 95 ++++ .../skins/default/xui/ja/floater_script_debug.xml | 6 + .../default/xui/ja/floater_script_preview.xml | 6 + .../skins/default/xui/ja/floater_script_queue.xml | 4 + .../skins/default/xui/ja/floater_script_search.xml | 13 + .../skins/default/xui/ja/floater_select_key.xml | 7 + .../skins/default/xui/ja/floater_sell_land.xml | 68 +++ .../default/xui/ja/floater_settings_debug.xml | 17 + .../skins/default/xui/ja/floater_snapshot.xml | 116 ++++ .../skins/default/xui/ja/floater_sound_preview.xml | 29 + .../skins/default/xui/ja/floater_telehub.xml | 28 + .../skins/default/xui/ja/floater_texture_ctrl.xml | 24 + .../newview/skins/default/xui/ja/floater_tools.xml | 627 +++++++++++++++++++++ .../skins/default/xui/ja/floater_top_objects.xml | 50 ++ indra/newview/skins/default/xui/ja/floater_tos.xml | 26 + .../skins/default/xui/ja/floater_url_entry.xml | 13 + .../newview/skins/default/xui/ja/floater_water.xml | 89 +++ .../default/xui/ja/floater_wearable_save_as.xml | 11 + .../default/xui/ja/floater_windlight_options.xml | 190 +++++++ .../skins/default/xui/ja/floater_world_map.xml | 94 +++ .../skins/default/xui/ja/menu_inventory.xml | 66 +++ indra/newview/skins/default/xui/ja/menu_login.xml | 13 + indra/newview/skins/default/xui/ja/menu_slurl.xml | 6 + indra/newview/skins/default/xui/ja/menu_viewer.xml | 261 +++++++++ indra/newview/skins/default/xui/ja/mime_types.xml | 225 ++++++++ .../skins/default/xui/ja/panel_audio_device.xml | 26 + .../newview/skins/default/xui/ja/panel_friends.xml | 53 ++ .../skins/default/xui/ja/panel_group_general.xml | 107 ++++ .../skins/default/xui/ja/panel_group_invite.xml | 30 + .../default/xui/ja/panel_group_land_money.xml | 92 +++ .../skins/default/xui/ja/panel_group_notices.xml | 75 +++ .../skins/default/xui/ja/panel_group_roles.xml | 164 ++++++ .../newview/skins/default/xui/ja/panel_groups.xml | 16 + indra/newview/skins/default/xui/ja/panel_login.xml | 47 ++ .../default/xui/ja/panel_preferences_chat.xml | 61 ++ .../default/xui/ja/panel_preferences_general.xml | 129 +++++ .../default/xui/ja/panel_preferences_graphics1.xml | 203 +++++++ .../skins/default/xui/ja/panel_region_covenant.xml | 50 ++ .../skins/default/xui/ja/panel_region_debug.xml | 36 ++ .../skins/default/xui/ja/panel_region_estate.xml | 74 +++ .../skins/default/xui/ja/panel_region_general.xml | 51 ++ .../skins/default/xui/ja/panel_region_terrain.xml | 30 + .../skins/default/xui/ja/panel_region_texture.xml | 57 ++ .../skins/default/xui/ja/panel_scrolling_param.xml | 12 + .../skins/default/xui/ja/panel_status_bar.xml | 45 ++ .../newview/skins/default/xui/ja/role_actions.xml | 184 ++++++ indra/newview/skins/default/xui/ja/strings.xml | 390 +++++++++++++ .../skins/default/xui/ja/teleport_strings.xml | 87 +++ indra/newview/skins/default/xui/ja/xui_version.xml | 4 + .../newview/skins/default/xui/pt/floater_about.xml | 4 + .../skins/default/xui/pt/floater_about_land.xml | 329 +++++++++++ .../default/xui/pt/floater_animation_preview.xml | 157 ++++++ .../skins/default/xui/pt/floater_auction.xml | 17 + .../skins/default/xui/pt/floater_avatar_picker.xml | 15 + .../default/xui/pt/floater_avatar_textures.xml | 30 + .../skins/default/xui/pt/floater_build_options.xml | 7 + .../newview/skins/default/xui/pt/floater_bumps.xml | 21 + .../skins/default/xui/pt/floater_buy_contents.xml | 12 + .../skins/default/xui/pt/floater_buy_currency.xml | 10 + .../skins/default/xui/pt/floater_buy_land.xml | 226 ++++++++ .../skins/default/xui/pt/floater_buy_object.xml | 11 + .../skins/default/xui/pt/floater_choose_group.xml | 8 + .../skins/default/xui/pt/floater_color_picker.xml | 31 + .../skins/default/xui/pt/floater_critical.xml | 14 + .../skins/default/xui/pt/floater_customize.xml | 437 ++++++++++++++ .../skins/default/xui/pt/floater_gesture.xml | 17 + .../skins/default/xui/pt/floater_god_tools.xml | 146 +++++ indra/newview/skins/default/xui/pt/floater_im.xml | 30 + .../skins/default/xui/pt/floater_image_preview.xml | 49 ++ .../skins/default/xui/pt/floater_inspect.xml | 14 + .../skins/default/xui/pt/floater_inventory.xml | 49 ++ .../xui/pt/floater_inventory_item_properties.xml | 73 +++ .../xui/pt/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/pt/floater_joystick.xml | 3 + .../skins/default/xui/pt/floater_land_holdings.xml | 38 ++ .../default/xui/pt/floater_live_lsleditor.xml | 5 + .../skins/default/xui/pt/floater_lsl_guide.xml | 7 + .../skins/default/xui/pt/floater_moveview.xml | 13 + .../skins/default/xui/pt/floater_openobject.xml | 10 + indra/newview/skins/default/xui/pt/floater_pay.xml | 21 + .../skins/default/xui/pt/floater_pay_object.xml | 30 + .../skins/default/xui/pt/floater_postcard.xml | 28 + .../skins/default/xui/pt/floater_preferences.xml | 8 + .../default/xui/pt/floater_preview_animation.xml | 10 + .../default/xui/pt/floater_preview_gesture.xml | 47 ++ .../default/xui/pt/floater_preview_notecard.xml | 10 + .../skins/default/xui/pt/floater_preview_sound.xml | 12 + .../default/xui/pt/floater_preview_texture.xml | 9 + .../skins/default/xui/pt/floater_report_abuse.xml | 74 +++ .../skins/default/xui/pt/floater_script_debug.xml | 6 + .../default/xui/pt/floater_script_preview.xml | 6 + .../skins/default/xui/pt/floater_script_queue.xml | 4 + .../skins/default/xui/pt/floater_script_search.xml | 13 + .../skins/default/xui/pt/floater_sell_land.xml | 68 +++ .../default/xui/pt/floater_settings_debug.xml | 17 + .../skins/default/xui/pt/floater_snapshot.xml | 111 ++++ .../skins/default/xui/pt/floater_sound_preview.xml | 28 + .../skins/default/xui/pt/floater_telehub.xml | 25 + .../skins/default/xui/pt/floater_texture_ctrl.xml | 17 + .../newview/skins/default/xui/pt/floater_tools.xml | 551 ++++++++++++++++++ .../skins/default/xui/pt/floater_top_objects.xml | 50 ++ indra/newview/skins/default/xui/pt/floater_tos.xml | 22 + .../default/xui/pt/floater_wearable_save_as.xml | 11 + .../skins/default/xui/pt/floater_world_map.xml | 93 +++ .../skins/default/xui/pt/menu_inventory.xml | 67 +++ indra/newview/skins/default/xui/pt/menu_viewer.xml | 197 +++++++ .../skins/default/xui/pt/panel_group_general.xml | 72 +++ .../skins/default/xui/pt/panel_group_invite.xml | 18 + .../default/xui/pt/panel_group_land_money.xml | 81 +++ .../skins/default/xui/pt/panel_group_notices.xml | 65 +++ .../skins/default/xui/pt/panel_group_roles.xml | 154 +++++ indra/newview/skins/default/xui/pt/panel_login.xml | 37 ++ .../default/xui/pt/panel_preferences_chat.xml | 56 ++ .../default/xui/pt/panel_preferences_general.xml | 67 +++ .../default/xui/pt/panel_preferences_graphics1.xml | 40 ++ .../skins/default/xui/pt/panel_region_covenant.xml | 51 ++ .../skins/default/xui/pt/panel_region_debug.xml | 34 ++ .../skins/default/xui/pt/panel_region_estate.xml | 63 +++ .../skins/default/xui/pt/panel_region_general.xml | 43 ++ .../skins/default/xui/pt/panel_region_terrain.xml | 30 + .../skins/default/xui/pt/panel_region_texture.xml | 57 ++ .../skins/default/xui/pt/panel_scrolling_param.xml | 12 + .../skins/default/xui/pt/panel_status_bar.xml | 32 ++ .../newview/skins/default/xui/pt/role_actions.xml | 186 ++++++ .../skins/default/xui/pt/teleport_strings.xml | 88 +++ indra/newview/skins/default/xui/pt/xui_version.xml | 4 + indra/newview/skins/paths.xml | 4 +- indra/newview/viewer_manifest.py | 37 +- 571 files changed, 29497 insertions(+), 432 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 (limited to 'indra') 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 (!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(); - } - - 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); - } + //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; + // } + + // 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); + + // // 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; - } - else - { - // expand image but keep original image data intact - scaled->expandToPowerOfTwo(1024, FALSE); - } + // 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->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->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->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 0000000000..b78127ae30 Binary files /dev/null and b/indra/newview/skins/default/html/btn_purplepill_bg.png differ diff --git a/indra/newview/skins/default/html/de/loading-error/index.html b/indra/newview/skins/default/html/de/loading-error/index.html new file mode 100644 index 0000000000..fbde825b4a --- /dev/null +++ b/indra/newview/skins/default/html/de/loading-error/index.html @@ -0,0 +1,25 @@ + + + +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 0000000000..e3ccc7c769 Binary files /dev/null and b/indra/newview/skins/default/html/en-us/loading/sl_logo_rotate_black.gif differ diff --git a/indra/newview/skins/default/html/es/loading-error/index.html b/indra/newview/skins/default/html/es/loading-error/index.html 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 0000000000..1383516509 Binary files /dev/null and b/indra/newview/skins/default/html/unabletoconnect.png differ diff --git a/indra/newview/skins/default/html/zh/loading-error/index.html b/indra/newview/skins/default/html/zh/loading-error/index.html new file mode 100644 index 0000000000..01cdec94fe --- /dev/null +++ b/indra/newview/skins/default/html/zh/loading-error/index.html @@ -0,0 +1,25 @@ + + + +无法连接 + + +

+

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

+

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

+
+ + 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 0000000000..6fdba25d4e Binary files /dev/null and b/indra/newview/skins/default/textures/alpha_gradient.tga differ diff --git a/indra/newview/skins/default/textures/alpha_gradient_2d.j2c b/indra/newview/skins/default/textures/alpha_gradient_2d.j2c new file mode 100644 index 0000000000..5de5a80a65 Binary files /dev/null and b/indra/newview/skins/default/textures/alpha_gradient_2d.j2c differ 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 0000000000..81dc9d3b6c Binary files /dev/null and b/indra/newview/skins/default/textures/arrow_down.tga differ diff --git a/indra/newview/skins/default/textures/arrow_up.tga b/indra/newview/skins/default/textures/arrow_up.tga new file mode 100644 index 0000000000..22195cf7fb Binary files /dev/null and b/indra/newview/skins/default/textures/arrow_up.tga differ 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 0000000000..1ab5233faf Binary files /dev/null and b/indra/newview/skins/default/textures/badge_note.j2c differ 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 0000000000..f85b880f1d Binary files /dev/null and b/indra/newview/skins/default/textures/badge_ok.j2c differ 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 0000000000..26437ca426 Binary files /dev/null and b/indra/newview/skins/default/textures/badge_warn.j2c differ diff --git a/indra/newview/skins/default/textures/button_anim_pause.tga b/indra/newview/skins/default/textures/button_anim_pause.tga new file mode 100644 index 0000000000..577f9195d0 Binary files /dev/null and b/indra/newview/skins/default/textures/button_anim_pause.tga differ diff --git a/indra/newview/skins/default/textures/button_anim_pause_selected.tga b/indra/newview/skins/default/textures/button_anim_pause_selected.tga new file mode 100644 index 0000000000..21384316a8 Binary files /dev/null and b/indra/newview/skins/default/textures/button_anim_pause_selected.tga differ 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 0000000000..9ed55f829d Binary files /dev/null and b/indra/newview/skins/default/textures/button_anim_play.tga differ diff --git a/indra/newview/skins/default/textures/button_anim_play_selected.tga b/indra/newview/skins/default/textures/button_anim_play_selected.tga new file mode 100644 index 0000000000..b166a4178d Binary files /dev/null and b/indra/newview/skins/default/textures/button_anim_play_selected.tga differ diff --git a/indra/newview/skins/default/textures/checkerboard_transparency_bg.png b/indra/newview/skins/default/textures/checkerboard_transparency_bg.png new file mode 100644 index 0000000000..9a16935204 Binary files /dev/null and b/indra/newview/skins/default/textures/checkerboard_transparency_bg.png differ diff --git a/indra/newview/skins/default/textures/circle.tga b/indra/newview/skins/default/textures/circle.tga new file mode 100644 index 0000000000..d7097e3a35 Binary files /dev/null and b/indra/newview/skins/default/textures/circle.tga differ diff --git a/indra/newview/skins/default/textures/cloud-particle.j2c b/indra/newview/skins/default/textures/cloud-particle.j2c new file mode 100644 index 0000000000..6c03bf6d05 Binary files /dev/null and b/indra/newview/skins/default/textures/cloud-particle.j2c differ diff --git a/indra/newview/skins/default/textures/color_swatch_alpha.tga b/indra/newview/skins/default/textures/color_swatch_alpha.tga new file mode 100644 index 0000000000..814a004e62 Binary files /dev/null and b/indra/newview/skins/default/textures/color_swatch_alpha.tga differ diff --git a/indra/newview/skins/default/textures/crosshairs.tga b/indra/newview/skins/default/textures/crosshairs.tga new file mode 100644 index 0000000000..ac4d63dc59 Binary files /dev/null and b/indra/newview/skins/default/textures/crosshairs.tga differ diff --git a/indra/newview/skins/default/textures/direction_arrow.tga b/indra/newview/skins/default/textures/direction_arrow.tga new file mode 100644 index 0000000000..f3ef1068c4 Binary files /dev/null and b/indra/newview/skins/default/textures/direction_arrow.tga differ 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 0000000000..155f80c97e Binary files /dev/null and b/indra/newview/skins/default/textures/down_arrow.png differ diff --git a/indra/newview/skins/default/textures/eye_button_active.tga b/indra/newview/skins/default/textures/eye_button_active.tga new file mode 100644 index 0000000000..014f785a7b Binary files /dev/null and b/indra/newview/skins/default/textures/eye_button_active.tga differ 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 0000000000..8666f0bbe6 Binary files /dev/null and b/indra/newview/skins/default/textures/eye_button_inactive.tga differ diff --git a/indra/newview/skins/default/textures/ff_edit_mine.tga b/indra/newview/skins/default/textures/ff_edit_mine.tga new file mode 100644 index 0000000000..8f0c35b98f Binary files /dev/null and b/indra/newview/skins/default/textures/ff_edit_mine.tga differ diff --git a/indra/newview/skins/default/textures/ff_edit_mine_button.tga b/indra/newview/skins/default/textures/ff_edit_mine_button.tga new file mode 100644 index 0000000000..07627a65c5 Binary files /dev/null and b/indra/newview/skins/default/textures/ff_edit_mine_button.tga differ 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 0000000000..005ada2dea Binary files /dev/null and b/indra/newview/skins/default/textures/ff_edit_theirs.tga differ diff --git a/indra/newview/skins/default/textures/ff_edit_theirs_button.tga b/indra/newview/skins/default/textures/ff_edit_theirs_button.tga new file mode 100644 index 0000000000..798ef641d3 Binary files /dev/null and b/indra/newview/skins/default/textures/ff_edit_theirs_button.tga differ diff --git a/indra/newview/skins/default/textures/ff_online_status_button.tga b/indra/newview/skins/default/textures/ff_online_status_button.tga new file mode 100644 index 0000000000..9076df6b9e Binary files /dev/null and b/indra/newview/skins/default/textures/ff_online_status_button.tga differ diff --git a/indra/newview/skins/default/textures/ff_visible_map.tga b/indra/newview/skins/default/textures/ff_visible_map.tga new file mode 100644 index 0000000000..a4dad78dad Binary files /dev/null and b/indra/newview/skins/default/textures/ff_visible_map.tga differ diff --git a/indra/newview/skins/default/textures/ff_visible_map_button.tga b/indra/newview/skins/default/textures/ff_visible_map_button.tga new file mode 100644 index 0000000000..8d13adee3f Binary files /dev/null and b/indra/newview/skins/default/textures/ff_visible_map_button.tga differ 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 0000000000..74e3a4e318 Binary files /dev/null and b/indra/newview/skins/default/textures/ff_visible_online.tga differ diff --git a/indra/newview/skins/default/textures/ff_visible_online_button.tga b/indra/newview/skins/default/textures/ff_visible_online_button.tga new file mode 100644 index 0000000000..08a6cbedd9 Binary files /dev/null and b/indra/newview/skins/default/textures/ff_visible_online_button.tga differ 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 0000000000..77d470731b Binary files /dev/null and b/indra/newview/skins/default/textures/folder_arrow.tga differ 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 0000000000..f9ce9da7d1 Binary files /dev/null and b/indra/newview/skins/default/textures/foot_shadow.j2c differ 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 0000000000..7c9131dfff Binary files /dev/null and b/indra/newview/skins/default/textures/icn_label_web.tga differ diff --git a/indra/newview/skins/default/textures/icn_media.tga b/indra/newview/skins/default/textures/icn_media.tga new file mode 100644 index 0000000000..43dd342c9d Binary files /dev/null and b/indra/newview/skins/default/textures/icn_media.tga differ 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 0000000000..43dd342c9d Binary files /dev/null and b/indra/newview/skins/default/textures/icn_media_movie.tga differ 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 0000000000..7c9131dfff Binary files /dev/null and b/indra/newview/skins/default/textures/icn_media_web.tga differ diff --git a/indra/newview/skins/default/textures/icn_voice-groupfocus.tga b/indra/newview/skins/default/textures/icn_voice-groupfocus.tga new file mode 100644 index 0000000000..9f48d4609d Binary files /dev/null and b/indra/newview/skins/default/textures/icn_voice-groupfocus.tga differ diff --git a/indra/newview/skins/default/textures/icn_voice-localchat.tga b/indra/newview/skins/default/textures/icn_voice-localchat.tga new file mode 100644 index 0000000000..7cf267eaf5 Binary files /dev/null and b/indra/newview/skins/default/textures/icn_voice-localchat.tga differ 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 0000000000..abadb09aaf Binary files /dev/null and b/indra/newview/skins/default/textures/icn_voice-pvtfocus.tga differ 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 0000000000..cfa95eb00e Binary files /dev/null and b/indra/newview/skins/default/textures/icon_avatar_offline.tga differ diff --git a/indra/newview/skins/default/textures/icon_avatar_online.tga b/indra/newview/skins/default/textures/icon_avatar_online.tga new file mode 100644 index 0000000000..45221213eb Binary files /dev/null and b/indra/newview/skins/default/textures/icon_avatar_online.tga differ diff --git a/indra/newview/skins/default/textures/icon_day_cycle.tga b/indra/newview/skins/default/textures/icon_day_cycle.tga new file mode 100644 index 0000000000..2d5dee1e94 Binary files /dev/null and b/indra/newview/skins/default/textures/icon_day_cycle.tga differ 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 0000000000..fc720c8269 Binary files /dev/null and b/indra/newview/skins/default/textures/icon_diurnal.tga differ diff --git a/indra/newview/skins/default/textures/icon_lock.tga b/indra/newview/skins/default/textures/icon_lock.tga new file mode 100644 index 0000000000..23521aa113 Binary files /dev/null and b/indra/newview/skins/default/textures/icon_lock.tga differ 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 0000000000..7fe119a818 Binary files /dev/null and b/indra/newview/skins/default/textures/icon_top_pick.tga differ 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 0000000000..1b4df7a2d8 Binary files /dev/null and b/indra/newview/skins/default/textures/inv_folder_animation.tga differ 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 0000000000..bbc71d9e77 Binary files /dev/null and b/indra/newview/skins/default/textures/lag_status_critical.tga differ 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 0000000000..680ba90f17 Binary files /dev/null and b/indra/newview/skins/default/textures/lag_status_good.tga differ diff --git a/indra/newview/skins/default/textures/lag_status_warning.tga b/indra/newview/skins/default/textures/lag_status_warning.tga new file mode 100644 index 0000000000..13ce3cc396 Binary files /dev/null and b/indra/newview/skins/default/textures/lag_status_warning.tga differ diff --git a/indra/newview/skins/default/textures/legend.tga b/indra/newview/skins/default/textures/legend.tga new file mode 100644 index 0000000000..0dbb8fda4f Binary files /dev/null and b/indra/newview/skins/default/textures/legend.tga differ diff --git a/indra/newview/skins/default/textures/map_avatar_16.tga b/indra/newview/skins/default/textures/map_avatar_16.tga new file mode 100644 index 0000000000..ce129e3590 Binary files /dev/null and b/indra/newview/skins/default/textures/map_avatar_16.tga differ 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 0000000000..28552f2237 Binary files /dev/null and b/indra/newview/skins/default/textures/map_avatar_8.tga differ diff --git a/indra/newview/skins/default/textures/map_avatar_above_8.tga b/indra/newview/skins/default/textures/map_avatar_above_8.tga new file mode 100644 index 0000000000..193428e530 Binary files /dev/null and b/indra/newview/skins/default/textures/map_avatar_above_8.tga differ diff --git a/indra/newview/skins/default/textures/map_avatar_below_8.tga b/indra/newview/skins/default/textures/map_avatar_below_8.tga new file mode 100644 index 0000000000..9e14bfab90 Binary files /dev/null and b/indra/newview/skins/default/textures/map_avatar_below_8.tga differ 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 0000000000..c229b379a2 Binary files /dev/null and b/indra/newview/skins/default/textures/map_event.tga differ 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 0000000000..61c879bc92 Binary files /dev/null and b/indra/newview/skins/default/textures/map_event_mature.tga differ 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 0000000000..7478de371a Binary files /dev/null and b/indra/newview/skins/default/textures/map_home.tga differ 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 0000000000..d0134fa5fe Binary files /dev/null and b/indra/newview/skins/default/textures/map_infohub.tga differ 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 0000000000..ef63a3eb72 Binary files /dev/null and b/indra/newview/skins/default/textures/map_telehub.tga differ 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 0000000000..451ce24cf0 Binary files /dev/null and b/indra/newview/skins/default/textures/map_track_16.tga differ 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 0000000000..53425ff45b Binary files /dev/null and b/indra/newview/skins/default/textures/map_track_8.tga differ diff --git a/indra/newview/skins/default/textures/missing_asset.tga b/indra/newview/skins/default/textures/missing_asset.tga new file mode 100644 index 0000000000..9a43f4db5d Binary files /dev/null and b/indra/newview/skins/default/textures/missing_asset.tga differ 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 0000000000..879b9e6188 Binary files /dev/null and b/indra/newview/skins/default/textures/mute_icon.tga differ 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 0000000000..abc23d1d7a Binary files /dev/null and b/indra/newview/skins/default/textures/notify_caution_icon.tga differ diff --git a/indra/newview/skins/default/textures/pixiesmall.j2c b/indra/newview/skins/default/textures/pixiesmall.j2c new file mode 100644 index 0000000000..a1ff64014b Binary files /dev/null and b/indra/newview/skins/default/textures/pixiesmall.j2c differ diff --git a/indra/newview/skins/default/textures/propertyline.tga b/indra/newview/skins/default/textures/propertyline.tga new file mode 100644 index 0000000000..0c504eea71 Binary files /dev/null and b/indra/newview/skins/default/textures/propertyline.tga differ diff --git a/indra/newview/skins/default/textures/rounded_square.j2c b/indra/newview/skins/default/textures/rounded_square.j2c new file mode 100644 index 0000000000..c8bb572fa9 Binary files /dev/null and b/indra/newview/skins/default/textures/rounded_square.j2c differ diff --git a/indra/newview/skins/default/textures/script_error.j2c b/indra/newview/skins/default/textures/script_error.j2c new file mode 100644 index 0000000000..893cb642e7 Binary files /dev/null and b/indra/newview/skins/default/textures/script_error.j2c differ diff --git a/indra/newview/skins/default/textures/silhouette.j2c b/indra/newview/skins/default/textures/silhouette.j2c new file mode 100644 index 0000000000..3859d4cb34 Binary files /dev/null and b/indra/newview/skins/default/textures/silhouette.j2c differ diff --git a/indra/newview/skins/default/textures/smicon_warn.tga b/indra/newview/skins/default/textures/smicon_warn.tga new file mode 100644 index 0000000000..90ccaa07e5 Binary files /dev/null and b/indra/newview/skins/default/textures/smicon_warn.tga differ diff --git a/indra/newview/skins/default/textures/spacer24.tga b/indra/newview/skins/default/textures/spacer24.tga new file mode 100644 index 0000000000..c7cab6b38c Binary files /dev/null and b/indra/newview/skins/default/textures/spacer24.tga differ diff --git a/indra/newview/skins/default/textures/spacer35.tga b/indra/newview/skins/default/textures/spacer35.tga new file mode 100644 index 0000000000..b88bc6680a Binary files /dev/null and b/indra/newview/skins/default/textures/spacer35.tga differ 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 0000000000..d7ce58dac3 Binary files /dev/null and b/indra/newview/skins/default/textures/square_btn_32x128.tga differ 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 0000000000..59ca365aa4 Binary files /dev/null and b/indra/newview/skins/default/textures/square_btn_selected_32x128.tga differ diff --git a/indra/newview/skins/default/textures/startup_logo.j2c b/indra/newview/skins/default/textures/startup_logo.j2c new file mode 100644 index 0000000000..d1b991f17f Binary files /dev/null and b/indra/newview/skins/default/textures/startup_logo.j2c differ 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 0000000000..7743d9c7bb Binary files /dev/null and b/indra/newview/skins/default/textures/status_busy.tga differ diff --git a/indra/newview/skins/default/textures/tabarea.tga b/indra/newview/skins/default/textures/tabarea.tga new file mode 100644 index 0000000000..5517aebfc8 Binary files /dev/null and b/indra/newview/skins/default/textures/tabarea.tga differ 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 0000000000..620d109de0 Binary files /dev/null and b/indra/newview/skins/default/textures/tearoff_pressed.tga differ diff --git a/indra/newview/skins/default/textures/tearoffbox.tga b/indra/newview/skins/default/textures/tearoffbox.tga new file mode 100644 index 0000000000..0670d2e91b Binary files /dev/null and b/indra/newview/skins/default/textures/tearoffbox.tga differ 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 0000000000..fe68ad49dc Binary files /dev/null and b/indra/newview/skins/default/textures/up_arrow.png differ diff --git a/indra/newview/skins/default/textures/uv_test1.j2c b/indra/newview/skins/default/textures/uv_test1.j2c new file mode 100644 index 0000000000..3d5b541796 Binary files /dev/null and b/indra/newview/skins/default/textures/uv_test1.j2c differ 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 0000000000..a16000d1e4 Binary files /dev/null and b/indra/newview/skins/default/textures/uv_test2.tga differ diff --git a/indra/newview/skins/default/textures/white.tga b/indra/newview/skins/default/textures/white.tga new file mode 100644 index 0000000000..9fe68631cf Binary files /dev/null and b/indra/newview/skins/default/textures/white.tga differ diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml new file mode 100644 index 0000000000..6490d8b5a2 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -0,0 +1,34 @@ + + + + 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 + +