summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMark Palange (Mani) <palange@lindenlab.com>2009-10-16 16:42:45 -0700
committerMark Palange (Mani) <palange@lindenlab.com>2009-10-16 16:42:45 -0700
commit3e10fa4d51a23bf6f1ced23e8d90c636d84fa5db (patch)
treed4991e4c1a9dd934f48d33804e55eb8ffa085679 /indra/newview
parente9f7205ba9f4dfb3422759218609b62d61972722 (diff)
parentf20e9521a9b70f4e83cbb6888feae08a70681ea7 (diff)
merge from latest svn/viewer-2-0 to hg/viewer-2-0
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt17
-rw-r--r--indra/newview/app_settings/keywords.ini1
-rw-r--r--indra/newview/app_settings/settings.xml37
-rw-r--r--indra/newview/installers/darwin/firstlook-dmg/_DS_Storebin12292 -> 12292 bytes
-rw-r--r--indra/newview/installers/darwin/publicnightly-dmg/_DS_Storebin12292 -> 12292 bytes
-rw-r--r--indra/newview/installers/darwin/releasecandidate-dmg/_DS_Storebin12292 -> 12292 bytes
-rw-r--r--indra/newview/llagent.cpp21
-rw-r--r--indra/newview/llagent.h4
-rw-r--r--indra/newview/llagentwearables.cpp75
-rw-r--r--indra/newview/llagentwearables.h21
-rw-r--r--indra/newview/llappearancemgr.cpp53
-rw-r--r--indra/newview/llappearancemgr.h3
-rw-r--r--indra/newview/llappviewer.cpp27
-rw-r--r--indra/newview/llappviewerlinux.cpp26
-rw-r--r--indra/newview/llappviewerlinux.h5
-rw-r--r--indra/newview/llappviewerlinux_api_dbus.cpp6
-rw-r--r--indra/newview/llappviewermacosx.cpp19
-rw-r--r--indra/newview/llassetuploadresponders.cpp2
-rw-r--r--indra/newview/llavataractions.cpp1
-rw-r--r--indra/newview/llavatariconctrl.cpp121
-rw-r--r--indra/newview/llavatariconctrl.h42
-rw-r--r--indra/newview/llavatarlistitem.cpp13
-rw-r--r--indra/newview/llavatarlistitem.h2
-rw-r--r--indra/newview/llbottomtray.cpp8
-rw-r--r--indra/newview/llbottomtray.h2
-rw-r--r--indra/newview/llcallingcard.cpp4
-rw-r--r--indra/newview/llchatitemscontainerctrl.cpp5
-rw-r--r--indra/newview/llchatmsgbox.cpp2
-rw-r--r--indra/newview/llchiclet.cpp34
-rw-r--r--indra/newview/llchiclet.h7
-rw-r--r--indra/newview/lldrawpoolwater.cpp2
-rw-r--r--indra/newview/llexpandabletextbox.cpp15
-rw-r--r--indra/newview/llface.cpp7
-rw-r--r--indra/newview/llface.h1
-rw-r--r--indra/newview/llfasttimerview.cpp2
-rw-r--r--indra/newview/llfavoritesbar.cpp101
-rw-r--r--indra/newview/llfavoritesbar.h3
-rw-r--r--indra/newview/llfloateranimpreview.cpp10
-rw-r--r--indra/newview/llfloaterauction.cpp294
-rw-r--r--indra/newview/llfloaterauction.h16
-rw-r--r--indra/newview/llfloateravatarpicker.cpp11
-rw-r--r--indra/newview/llfloateravatarpicker.h2
-rw-r--r--indra/newview/llfloaterbuycurrency.cpp92
-rw-r--r--indra/newview/llfloatercamera.cpp26
-rw-r--r--indra/newview/llfloatercamera.h6
-rw-r--r--indra/newview/llfloatergesture.cpp25
-rw-r--r--indra/newview/llfloatergroups.cpp23
-rw-r--r--indra/newview/llfloatergroups.h3
-rw-r--r--indra/newview/llfloaterhardwaresettings.cpp6
-rw-r--r--indra/newview/llfloaterinventory.cpp3
-rw-r--r--indra/newview/llfloaterland.cpp4
-rw-r--r--indra/newview/llfloatermap.cpp8
-rw-r--r--indra/newview/llfloaterregioninfo.cpp1
-rw-r--r--indra/newview/llfloaterreporter.cpp1
-rw-r--r--indra/newview/llfloatersellland.cpp2
-rw-r--r--indra/newview/llfloatertools.cpp11
-rw-r--r--indra/newview/llfloatertools.h1
-rw-r--r--indra/newview/llfloateruipreview.cpp237
-rw-r--r--indra/newview/llfloateruipreview.h133
-rw-r--r--indra/newview/llfloaterworldmap.cpp40
-rw-r--r--indra/newview/llfloaterworldmap.h1
-rw-r--r--indra/newview/llfolderviewitem.cpp24
-rw-r--r--indra/newview/llfolderviewitem.h2
-rw-r--r--indra/newview/llgrouplist.cpp2
-rw-r--r--indra/newview/llimfloater.cpp60
-rw-r--r--indra/newview/llimfloater.h7
-rw-r--r--indra/newview/llimpanel.cpp84
-rw-r--r--indra/newview/llimview.cpp138
-rw-r--r--indra/newview/llimview.h24
-rw-r--r--indra/newview/llinspectavatar.cpp22
-rw-r--r--indra/newview/llinspectobject.cpp8
-rw-r--r--indra/newview/llinventorybridge.cpp139
-rw-r--r--indra/newview/llinventoryfilter.cpp7
-rw-r--r--indra/newview/lllandmarkactions.cpp40
-rw-r--r--indra/newview/lllocationinputctrl.cpp11
-rw-r--r--indra/newview/lllocationinputctrl.h2
-rw-r--r--indra/newview/llmaniprotate.cpp4
-rw-r--r--indra/newview/llmoveview.cpp48
-rw-r--r--indra/newview/llmoveview.h1
-rw-r--r--indra/newview/llmutelist.cpp2
-rw-r--r--indra/newview/llnearbychat.cpp4
-rw-r--r--indra/newview/llnearbychatbar.cpp68
-rw-r--r--indra/newview/llnearbychatbar.h6
-rw-r--r--indra/newview/llnearbychathandler.cpp57
-rw-r--r--indra/newview/llnetmap.cpp27
-rw-r--r--indra/newview/llnetmap.h9
-rw-r--r--indra/newview/lloutputmonitorctrl.cpp2
-rw-r--r--indra/newview/llpanelavatar.cpp3
-rw-r--r--indra/newview/llpanelgroup.cpp39
-rw-r--r--indra/newview/llpanelgroup.h1
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp13
-rw-r--r--indra/newview/llpanelgrouproles.cpp8
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.cpp61
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.h4
-rw-r--r--indra/newview/llpanelplaceinfo.cpp41
-rw-r--r--indra/newview/llpanelplaceinfo.h8
-rw-r--r--indra/newview/llpanelplaces.cpp155
-rw-r--r--indra/newview/llpanelplaces.h2
-rw-r--r--indra/newview/llpanelteleporthistory.cpp176
-rw-r--r--indra/newview/llpanelteleporthistory.h15
-rw-r--r--indra/newview/llpreview.cpp28
-rw-r--r--indra/newview/llpreview.h1
-rw-r--r--indra/newview/llpreviewgesture.cpp2
-rw-r--r--indra/newview/llpreviewscript.cpp4
-rw-r--r--indra/newview/llpreviewtexture.cpp113
-rw-r--r--indra/newview/llpreviewtexture.h6
-rw-r--r--indra/newview/llselectmgr.cpp2
-rw-r--r--indra/newview/llsky.cpp3
-rw-r--r--indra/newview/llsky.h6
-rw-r--r--indra/newview/llstartup.cpp11
-rw-r--r--indra/newview/llsyswellwindow.cpp11
-rw-r--r--indra/newview/llteleporthistorystorage.cpp1
-rw-r--r--indra/newview/lltexturectrl.cpp6
-rw-r--r--indra/newview/lltexturefetch.cpp2
-rw-r--r--indra/newview/lltoastgroupnotifypanel.cpp13
-rw-r--r--indra/newview/lltoastimpanel.cpp1
-rw-r--r--indra/newview/lltoastpanel.cpp2
-rw-r--r--indra/newview/lltoolpie.cpp6
-rw-r--r--indra/newview/llurllineeditorctrl.cpp10
-rw-r--r--indra/newview/llviewercamera.cpp5
-rw-r--r--indra/newview/llviewercontrol.cpp9
-rw-r--r--indra/newview/llviewerfloaterreg.cpp4
-rw-r--r--indra/newview/llviewerinventory.cpp70
-rw-r--r--indra/newview/llviewerinventory.h4
-rw-r--r--indra/newview/llviewerjoystick.cpp87
-rw-r--r--indra/newview/llviewerjoystick.h5
-rw-r--r--indra/newview/llviewermedia.cpp1
-rw-r--r--indra/newview/llviewermenu.cpp260
-rw-r--r--indra/newview/llviewermenu.h3
-rw-r--r--indra/newview/llviewermenufile.cpp2
-rw-r--r--indra/newview/llviewerobjectlist.cpp99
-rw-r--r--indra/newview/llviewertexteditor.cpp57
-rw-r--r--indra/newview/llviewertexture.cpp5
-rw-r--r--indra/newview/llviewerwindow.cpp30
-rw-r--r--indra/newview/llvoavatar.cpp2
-rw-r--r--indra/newview/llvoavatarself.cpp2
-rw-r--r--indra/newview/llvoiceclient.cpp28
-rw-r--r--indra/newview/llvosky.cpp2
-rw-r--r--indra/newview/llvosky.h2
-rw-r--r--indra/newview/llwaterparammanager.cpp2
-rw-r--r--indra/newview/llwearable.h4
-rw-r--r--indra/newview/llwlparammanager.cpp2
-rw-r--r--indra/newview/llxmlrpclistener.cpp8
-rw-r--r--indra/newview/llxmlrpctransaction.cpp10
-rw-r--r--indra/newview/llxmlrpctransaction.h6
-rw-r--r--indra/newview/pipeline.cpp9
-rw-r--r--indra/newview/res-sdl/arrow.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/arrowcop.BMPbin0 -> 3126 bytes
-rw-r--r--indra/newview/res-sdl/arrowcopmulti.BMPbin0 -> 3126 bytes
-rw-r--r--indra/newview/res-sdl/arrowdrag.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/circleandline.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/cross.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/hand.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/ibeam.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/ll_icon.BMPbin0 -> 5174 bytes
-rw-r--r--indra/newview/res-sdl/llarrow.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/llarrowdrag.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/llarrowdragmulti.BMPbin0 -> 3126 bytes
-rw-r--r--indra/newview/res-sdl/llarrowlocked.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/llgrablocked.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/llno.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/llnolocked.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolcamera.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolcreate.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolfocus.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolgrab.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolland.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolpan.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolpipette.BMPbin0 -> 3126 bytes
-rw-r--r--indra/newview/res-sdl/lltoolrotate.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolscale.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltooltranslate.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolzoomin.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/lltoolzoomout.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/sizenesw.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/sizens.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/sizenwse.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/sizewe.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/toolmediaopen.BMPbin0 -> 3128 bytes
-rw-r--r--indra/newview/res-sdl/toolpause.BMPbin0 -> 3128 bytes
-rw-r--r--indra/newview/res-sdl/toolpickobject.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/toolpickobject2.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/toolpickobject3.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/toolplay.BMPbin0 -> 3128 bytes
-rw-r--r--indra/newview/res-sdl/wait.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/res-sdl/working.BMPbin0 -> 2102 bytes
-rw-r--r--indra/newview/skins/default/colors.xml6
-rw-r--r--indra/newview/skins/default/textures/alpha_gradient.tgabin300 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/alpha_gradient_2d.j2cbin4325 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml3
-rw-r--r--indra/newview/skins/default/xui/da/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/da/floater_tools.xml28
-rw-r--r--indra/newview/skins/default/xui/da/notifications.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_general.xml6
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/da/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/de/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml34
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_general.xml91
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/en/favorites_bar_button.xml12
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml7
-rw-r--r--indra/newview/skins/default/xui/en/floater_auction.xml42
-rw-r--r--indra/newview/skins/default/xui/en/floater_avatar_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_currency.xml74
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_land.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_font_test.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_gesture.xml114
-rw-r--r--indra/newview/skins/default/xui/en/floater_god_tools.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_hardware_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_im_session.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_incoming_call.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_my_friends.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_nearby_chat.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_post_process.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_preferences.xml9
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_notecard.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_texture.xml70
-rw-r--r--indra/newview/skins/default/xui/en/floater_region_info.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_sell_land.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_settings_debug.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_widgets.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml335
-rw-r--r--indra/newview/skins/default/xui/en/floater_ui_preview.xml37
-rw-r--r--indra/newview/skins/default/xui/en/floater_water.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_windlight_options.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml5
-rw-r--r--indra/newview/skins/default/xui/en/fonts.xml4
-rw-r--r--indra/newview/skins/default/xui/en/inspect_avatar.xml13
-rw-r--r--indra/newview/skins/default/xui/en/inspect_object.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_bottomtray.xml13
-rw-r--r--indra/newview/skins/default/xui/en/menu_favorites.xml5
-rw-r--r--indra/newview/skins/default/xui/en/menu_group_plus.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml3
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml3
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml53
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml9
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_groups_view_sort.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_recent_view_sort.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml30
-rw-r--r--indra/newview/skins/default/xui/en/menu_teleport_history_item.xml7
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_agent.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_group.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_http.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_objectim.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_parcel.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_slapp.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_slurl.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_url_teleport.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml1291
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml479
-rw-r--r--indra/newview/skins/default/xui/en/panel_audio_device.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_list_item.xml17
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_tag.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml38
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml37
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_control_panel.xml54
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_general.xml15
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notify.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_instant_message.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_login.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_media_settings_general.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml31
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml128
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_picks.xml78
-rw-r--r--indra/newview/skins/default/xui/en/panel_places.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml29
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml25
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml175
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_view.xml51
-rw-r--r--indra/newview/skins/default/xui/en/panel_progress.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_covenant.xml82
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_debug.xml37
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_estate.xml956
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_general.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_general_layout.xml342
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_terrain.xml40
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_texture.xml449
-rw-r--r--indra/newview/skins/default/xui/en/panel_side_tray.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml82
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml11
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history.xml98
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml154
-rw-r--r--indra/newview/skins/default/xui/en/widgets/accordion_tab.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/combo_box.xml10
-rw-r--r--indra/newview/skins/default/xui/en/widgets/expandable_text.xml5
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml13
-rw-r--r--indra/newview/skins/default/xui/en/widgets/menu.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/search_combo_box.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tab_container.xml1
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/textbase.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_tools.xml30
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml10
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_general.xml6
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/es/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/fr/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tools.xml32
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/it/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_tools.xml32
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml10
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_general.xml6
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/ja/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/nl/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/nl/floater_tools.xml32
-rw-r--r--indra/newview/skins/default/xui/nl/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/nl/strings.xml38
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_sell_land.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_tools.xml30
-rw-r--r--indra/newview/skins/default/xui/pl/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_profile.xml45
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_general.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_land_money.xml5
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_general.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_region_estate.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_region_texture.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/strings.xml38
-rw-r--r--indra/newview/skins/default/xui/pt/floater_sell_land.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_tools.xml32
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_profile.xml45
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_land_money.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_estate.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_texture.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml38
-rwxr-xr-xindra/newview/viewer_manifest.py16
387 files changed, 6945 insertions, 4238 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 0bfb0023c2..24c16d22bf 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -137,7 +137,6 @@ set(viewer_SOURCE_FILES
llfeaturemanager.cpp
llfilepicker.cpp
llfirstuse.cpp
- llfirsttimetipmanager.cpp
llflexibleobject.cpp
llfloaterabout.cpp
llfloateractivespeakers.cpp
@@ -162,7 +161,6 @@ set(viewer_SOURCE_FILES
llfloaterdaycycle.cpp
llfloaterdirectory.cpp
llfloaterenvsettings.cpp
- llfloaterfirsttimetip.cpp
llfloaterfriends.cpp
llfloaterfonttest.cpp
llfloatergesture.cpp
@@ -327,7 +325,6 @@ set(viewer_SOURCE_FILES
llpanelmedia.cpp
llpanelmediahud.cpp
llpanelmeprofile.cpp
- llpanelmovetip.cpp
llpanelmediasettingsgeneral.cpp
llpanelmediasettingssecurity.cpp
llpanelmediasettingspermissions.cpp
@@ -614,7 +611,6 @@ set(viewer_HEADER_FILES
llfeaturemanager.h
llfilepicker.h
llfirstuse.h
- llfirsttimetipmanager.h
llflexibleobject.h
llfloaterabout.h
llfloateractivespeakers.h
@@ -639,7 +635,6 @@ set(viewer_HEADER_FILES
llfloaterdaycycle.h
llfloaterdirectory.h
llfloaterenvsettings.h
- llfloaterfirsttimetip.h
llfloaterfonttest.h
llfloaterfriends.h
llfloatergesture.h
@@ -800,7 +795,6 @@ set(viewer_HEADER_FILES
llpanelmedia.h
llpanelmediahud.h
llpanelmeprofile.h
- llpanelmovetip.h
llpanelmediasettingsgeneral.h
llpanelmediasettingssecurity.h
llpanelmediasettingspermissions.h
@@ -1042,7 +1036,7 @@ endif (DARWIN)
if (LINUX)
LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp)
LIST(APPEND viewer_SOURCE_FILES llappviewerlinux_api_dbus.cpp)
- LIST(APPEND CMAKE_EXE_LINKER_FLAGS -Wl,--as-needed)
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
set(viewer_LIBRARIES
Xinerama
@@ -1130,7 +1124,9 @@ if (WINDOWS)
SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES})
- list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES})
+ if (NOT STANDALONE)
+ list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES})
+ endif (NOT STANDALONE)
find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR})
find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR})
@@ -1248,8 +1244,9 @@ source_group("Character File" FILES ${viewer_CHARACTER_FILES})
set_source_files_properties(${viewer_CHARACTER_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
-
-list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
+if (NOT STANDALONE)
+ list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
+endif (NOT STANDALONE)
if (WINDOWS)
file(GLOB viewer_INSTALLER_FILES installers/windows/*.nsi)
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 5d52158298..544f1c598e 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -459,6 +459,7 @@ PARCEL_FLAG_ALLOW_LANDMARK Used with llGetParcelFlags to find if a parcel allo
PARCEL_FLAG_ALLOW_TERRAFORM Used with llGetParcelFlags to find if a parcel allows anyone to terraform the land
PARCEL_FLAG_ALLOW_DAMAGE Used with llGetParcelFlags to find if a parcel allows damage
PARCEL_FLAG_ALLOW_CREATE_OBJECTS Used with llGetParcelFlags to find if a parcel allows anyone to create objects
+PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS Used with llGetParcelFlags to find if a parcel allows group members or objects to create objects
PARCEL_FLAG_USE_ACCESS_GROUP Used with llGetParcelFlags to find if a parcel limits access to a group
PARCEL_FLAG_USE_ACCESS_LIST Used with llGetParcelFlags to find if a parcel limits access to a list of residents
PARCEL_FLAG_USE_BAN_LIST Used with llGetParcelFlags to find if a parcel uses a ban list
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index f1e5acdd74..f898c2d0c1 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1599,7 +1599,7 @@
<key>Cursor3D</key>
<map>
<key>Comment</key>
- <string>Tread Joystick values as absolute positions (not deltas).</string>
+ <string>Treat Joystick values as absolute positions (not deltas).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -3851,6 +3851,17 @@
<key>Value</key>
<string />
</map>
+ <key>JoystickMouselookYaw</key>
+ <map>
+ <key>Comment</key>
+ <string>Pass joystick yaw to scripts in Mouselook.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>JoystickRunThreshold</key>
<map>
<key>Comment</key>
@@ -4158,7 +4169,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>LipSyncOoh</key>
<map>
@@ -7632,6 +7643,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>ShowSnapshotButton</key>
+ <map>
+ <key>Comment</key>
+ <string>Show/Hide Snapshot button button in the bottom tray</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>ShowMoveButton</key>
<map>
<key>Comment</key>
@@ -9656,17 +9678,6 @@
<key>Value</key>
<integer>16</integer>
</map>
- <key>UITabCntrTabHeight</key>
- <map>
- <key>Comment</key>
- <string>UI Tab Container Tab Height</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>16</integer>
- </map>
<key>UITabCntrTabHPad</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/installers/darwin/firstlook-dmg/_DS_Store b/indra/newview/installers/darwin/firstlook-dmg/_DS_Store
index 6c5a3f3452..408a4d4992 100644
--- a/indra/newview/installers/darwin/firstlook-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/firstlook-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store b/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store
index 6a91b38d6d..b901e46b65 100644
--- a/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store b/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
index a8b757372e..309c8adaaa 100644
--- a/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index ab9db303b5..a4b33162d6 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -332,7 +332,7 @@ LLAgent::LLAgent() :
mLeftKey(0),
mUpKey(0),
mYawKey(0.f),
- mPitchKey(0),
+ mPitchKey(0.f),
mOrbitLeftKey(0.f),
mOrbitRightKey(0.f),
@@ -727,15 +727,15 @@ void LLAgent::moveYaw(F32 mag, bool reset_view)
//-----------------------------------------------------------------------------
// movePitch()
//-----------------------------------------------------------------------------
-void LLAgent::movePitch(S32 direction)
+void LLAgent::movePitch(F32 mag)
{
- setKey(direction, mPitchKey);
+ mPitchKey = mag;
- if (direction > 0)
+ if (mag > 0)
{
- setControlFlags(AGENT_CONTROL_PITCH_POS );
+ setControlFlags(AGENT_CONTROL_PITCH_POS);
}
- else if (direction < 0)
+ else if (mag < 0)
{
setControlFlags(AGENT_CONTROL_PITCH_NEG);
}
@@ -2513,10 +2513,10 @@ void LLAgent::propagate(const F32 dt)
// handle rotation based on keyboard levels
const F32 YAW_RATE = 90.f * DEG_TO_RAD; // radians per second
- yaw( YAW_RATE * mYawKey * dt );
+ yaw(YAW_RATE * mYawKey * dt);
const F32 PITCH_RATE = 90.f * DEG_TO_RAD; // radians per second
- pitch(PITCH_RATE * (F32) mPitchKey * dt);
+ pitch(PITCH_RATE * mPitchKey * dt);
// handle auto-land behavior
if (mAvatarObject.notNull())
@@ -2541,7 +2541,7 @@ void LLAgent::propagate(const F32 dt)
mLeftKey = 0;
mUpKey = 0;
mYawKey = 0.f;
- mPitchKey = 0;
+ mPitchKey = 0.f;
}
//-----------------------------------------------------------------------------
@@ -3172,6 +3172,7 @@ void LLAgent::updateCamera()
mFollowCam.copyParams(*current_cam);
mFollowCam.setSubjectPositionAndRotation( mAvatarObject->getRenderPosition(), avatarRotationForFollowCam );
mFollowCam.update();
+ LLViewerJoystick::getInstance()->setCameraNeedsUpdate(true);
}
else
{
@@ -4249,7 +4250,7 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani
{
if(avatar_animate)
{
- // Remove any pitch from the avatar
+ // Remove any pitch from the avatar
LLVector3 at = mFrameAgent.getAtAxis();
at.mV[VZ] = 0.f;
at.normalize();
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 09400b3a88..99a9bdd8e6 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -475,7 +475,7 @@ private:
S32 mLeftKey;
S32 mUpKey;
F32 mYawKey;
- S32 mPitchKey;
+ F32 mPitchKey;
//--------------------------------------------------------------------
// Movement from user input
@@ -490,7 +490,7 @@ public:
void moveLeftNudge(S32 direction);
void moveUp(S32 direction);
void moveYaw(F32 mag, bool reset_view = true);
- void movePitch(S32 direction);
+ void movePitch(F32 mag);
//--------------------------------------------------------------------
// Orbit
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 50d378335e..2cfa8d2a54 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -563,16 +563,32 @@ LLInventoryItem* LLAgentWearables::getWearableInventoryItem(EWearableType type,
return item;
}
-const LLWearable* LLAgentWearables::getWearableFromWearableItem(const LLUUID& item_id) const
+const LLWearable* LLAgentWearables::getWearableFromItemID(const LLUUID& item_id) const
{
for (S32 i=0; i < WT_COUNT; i++)
{
for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
{
- LLUUID curr_item_id = getWearableItemID((EWearableType)i, j);
- if (curr_item_id == item_id)
+ const LLWearable * curr_wearable = getWearable((EWearableType)i, j);
+ if (curr_wearable && (curr_wearable->getItemID() == item_id))
{
- return getWearable((EWearableType)i, j);
+ return curr_wearable;
+ }
+ }
+ }
+ return NULL;
+}
+
+const LLWearable* LLAgentWearables::getWearableFromAssetID(const LLUUID& asset_id) const
+{
+ for (S32 i=0; i < WT_COUNT; i++)
+ {
+ for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
+ {
+ const LLWearable * curr_wearable = getWearable((EWearableType)i, j);
+ if (curr_wearable && (curr_wearable->getAssetID() == asset_id))
+ {
+ return curr_wearable;
}
}
}
@@ -683,10 +699,19 @@ const LLUUID LLAgentWearables::getWearableItemID(EWearableType type, U32 index)
return LLUUID();
}
+const LLUUID LLAgentWearables::getWearableAssetID(EWearableType type, U32 index) const
+{
+ const LLWearable *wearable = getWearable(type,index);
+ if (wearable)
+ return wearable->getAssetID();
+ else
+ return LLUUID();
+}
+
// Warning: include_linked_items = TRUE makes this operation expensive.
BOOL LLAgentWearables::isWearingItem(const LLUUID& item_id, BOOL include_linked_items) const
{
- if (getWearableFromWearableItem(item_id) != NULL) return TRUE;
+ if (getWearableFromItemID(item_id) != NULL) return TRUE;
if (include_linked_items)
{
LLInventoryModel::item_array_t item_array;
@@ -696,8 +721,8 @@ BOOL LLAgentWearables::isWearingItem(const LLUUID& item_id, BOOL include_linked_
iter++)
{
LLViewerInventoryItem *linked_item = (*iter);
- const LLUUID &item_id = linked_item->getUUID();
- if (getWearableFromWearableItem(item_id) != NULL) return TRUE;
+ const LLUUID &linked_item_id = linked_item->getUUID();
+ if (getWearableFromItemID(linked_item_id) != NULL) return TRUE;
}
}
return FALSE;
@@ -1152,26 +1177,6 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
return LLUUID::null;
}
- LLDynamicArray<S32> wearables_to_include;
- getAllWearablesArray(wearables_to_include);
-
- LLDynamicArray<S32> attachments_to_include;
- mAvatarObject->getAllAttachmentsArray(attachments_to_include);
-
- return makeNewOutfitLinks(new_folder_name, wearables_to_include, attachments_to_include);
-}
-
-// Note: wearables_to_include should be a list of EWearableType types
-// attachments_to_include should be a list of attachment points
-LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name,
- const LLDynamicArray<S32>& wearables_to_include,
- const LLDynamicArray<S32>& attachments_to_include)
-{
- if (mAvatarObject.isNull())
- {
- return LLUUID::null;
- }
-
// First, make a folder in the My Outfits directory.
LLUUID parent_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_MY_OUTFITS);
LLUUID folder_id = gInventory.createNewCategory(
@@ -1180,8 +1185,8 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name,
new_folder_name);
LLAppearanceManager::shallowCopyCategory(LLAppearanceManager::getCOF(),folder_id, NULL);
-
-#if 0
+
+#if 0 // BAP - fix to go into rename state automatically after outfit is created.
LLViewerInventoryCategory *parent_category = gInventory.getCategory(parent_id);
if (parent_category)
{
@@ -1839,7 +1844,7 @@ void LLAgentWearables::userAttachMultipleAttachments(LLInventoryModel::item_arra
msg->nextBlockFast(_PREHASH_HeaderData);
msg->addUUIDFast(_PREHASH_CompoundMsgID, compound_msg_id );
msg->addU8Fast(_PREHASH_TotalObjects, obj_count );
- msg->addBOOLFast(_PREHASH_FirstDetachAll, true ); // BAP changing this doesn't seem to matter?
+ msg->addBOOLFast(_PREHASH_FirstDetachAll, false );
}
const LLInventoryItem* item = obj_item_array.get(i).get();
@@ -1882,6 +1887,16 @@ void LLAgentWearables::updateWearablesLoaded()
mWearablesLoaded = (itemUpdatePendingCount()==0);
}
+bool LLAgentWearables::canWearableBeRemoved(const LLWearable* wearable) const
+{
+ if (!wearable) return false;
+
+ EWearableType type = wearable->getType();
+ // Make sure the user always has at least one shape, skin, eyes, and hair type currently worn.
+ return !(((type == WT_SHAPE) || (type == WT_SKIN) || (type == WT_HAIR) || (type == WT_EYES))
+ && (getWearableCount(type) <= 1) );
+}
+
void LLAgentWearables::updateServer()
{
sendAgentWearablesUpdate();
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index 701ce7f05a..8b9d29342a 100644
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -75,20 +75,25 @@ public:
BOOL areWearablesLoaded() const;
void updateWearablesLoaded();
void checkWearablesLoaded() const;
+
+ // Note: False for shape, skin, eyes, and hair, unless you have MORE than 1.
+ bool canWearableBeRemoved(const LLWearable* wearable) const;
//--------------------------------------------------------------------
// Accessors
//--------------------------------------------------------------------
public:
- const LLUUID getWearableItemID(EWearableType type, U32 index /*= 0*/) const;
- const LLWearable* getWearableFromWearableItem(const LLUUID& item_id) const;
- LLInventoryItem* getWearableInventoryItem(EWearableType type, U32 index /*= 0*/);
+ const LLUUID getWearableItemID(EWearableType type, U32 index /*= 0*/) const;
+ const LLUUID getWearableAssetID(EWearableType type, U32 index /*= 0*/) const;
+ const LLWearable* getWearableFromItemID(const LLUUID& item_id) const;
+ const LLWearable* getWearableFromAssetID(const LLUUID& asset_id) const;
+ LLInventoryItem* getWearableInventoryItem(EWearableType type, U32 index /*= 0*/);
// MULTI-WEARABLE: assuming one per type.
- static BOOL selfHasWearable(EWearableType type);
- LLWearable* getWearable(const EWearableType type, U32 index /*= 0*/);
+ static BOOL selfHasWearable(EWearableType type);
+ LLWearable* getWearable(const EWearableType type, U32 index /*= 0*/);
const LLWearable* getWearable(const EWearableType type, U32 index /*= 0*/) const;
- U32 getWearableCount(const EWearableType type) const;
+ U32 getWearableCount(const EWearableType type) const;
//--------------------------------------------------------------------
@@ -159,9 +164,7 @@ public:
// Note: wearables_to_include should be a list of EWearableType types
// attachments_to_include should be a list of attachment points
LLUUID makeNewOutfitLinks(const std::string& new_folder_name);
- LLUUID makeNewOutfitLinks(const std::string& new_folder_name,
- const LLDynamicArray<S32>& wearables_to_include,
- const LLDynamicArray<S32>& attachments_to_include);
+
private:
void makeNewOutfitDone(S32 type, U32 index);
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 3831846e2e..cf8d852dfe 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -165,6 +165,8 @@ void LLOutfitObserver::done()
cb);
}
}
+ // BAP fixes a lag in display of created dir.
+ gInventory.notifyObservers();
}
else
{
@@ -495,11 +497,16 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory
}
else if (item->getActualType() == LLAssetType::AT_LINK_FOLDER)
{
- link_inventory_item(gAgent.getID(),
- item->getLinkedUUID(),
- dst_id,
- item->getName(),
- LLAssetType::AT_LINK_FOLDER, cb);
+ LLViewerInventoryCategory *catp = item->getLinkedCategory();
+ // Skip copying outfit links.
+ if (catp && catp->getPreferredType() != LLAssetType::AT_OUTFIT)
+ {
+ link_inventory_item(gAgent.getID(),
+ item->getLinkedUUID(),
+ dst_id,
+ item->getName(),
+ LLAssetType::AT_LINK_FOLDER, cb);
+ }
}
else
{
@@ -519,6 +526,9 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory
{
lldebugs << "rebuildCOFFromOutfit()" << llendl;
+ dumpCat(category,"start, source outfit");
+ dumpCat(getCOF(),"start, COF");
+
// Find all the wearables that are in the category's subtree.
LLInventoryModel::item_array_t items;
getCOFValidDescendents(category, items);
@@ -538,6 +548,8 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory
gInventory.collectDescendents(current_outfit_id, cof_cats, cof_items,
LLInventoryModel::EXCLUDE_TRASH);
+ //dumpCat(current_outfit_id,"COF before remove:");
+
if (items.count() > 0)
{
for (S32 i = 0; i < cof_items.count(); ++i)
@@ -547,15 +559,19 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory
gInventory.notifyObservers();
}
+ //dumpCat(current_outfit_id,"COF after remove:");
+
LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
LLAppearanceManager::shallowCopyCategory(category, current_outfit_id, link_waiter);
+ //dumpCat(current_outfit_id,"COF after shallow copy:");
+
// Create a link to the outfit that we wore.
LLViewerInventoryCategory* catp = gInventory.getCategory(category);
if (catp && catp->getPreferredType() == LLAssetType::AT_OUTFIT)
{
link_inventory_item(gAgent.getID(), category, current_outfit_id, catp->getName(),
- LLAssetType::AT_LINK_FOLDER, LLPointer<LLInventoryCallback>(NULL));
+ LLAssetType::AT_LINK_FOLDER, link_waiter);
}
}
@@ -628,6 +644,8 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder,
/* static */ void LLAppearanceManager::updateAppearanceFromCOF()
{
+ dumpCat(getCOF(),"COF, start");
+
bool follow_folder_links = true;
LLUUID current_outfit_id = getCOF();
@@ -921,3 +939,26 @@ void LLAppearanceManager::removeItemLinks(LLUUID& item_id, bool do_update)
LLAppearanceManager::updateAppearanceFromCOF();
}
}
+
+/* static */
+void LLAppearanceManager::dumpCat(const LLUUID& cat_id, std::string str)
+{
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ gInventory.collectDescendents(cat_id, cats, items, LLInventoryModel::EXCLUDE_TRASH);
+
+#if 0
+ llinfos << llendl;
+ llinfos << str << llendl;
+ S32 hitcount = 0;
+ for(S32 i=0; i<items.count(); i++)
+ {
+ LLViewerInventoryItem *item = items.get(i);
+ if (item)
+ hitcount++;
+ llinfos << i <<" "<< item->getName() <<llendl;
+ }
+#endif
+ llinfos << str << " count " << items.count() << llendl;
+}
+
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 2aa10e0bea..fe24696182 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -64,6 +64,9 @@ public:
// Remove COF entries
static void removeItemLinks(LLUUID& item_id, bool do_update = true);
+ // For debugging - could be moved elsewhere.
+ static void dumpCat(const LLUUID& cat_id, std::string str);
+
private:
static void getCOFValidDescendents(const LLUUID& category,
LLInventoryModel::item_array_t& items);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index a631314d5b..b4b30d0cde 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -180,6 +180,7 @@
#include "llimview.h"
#include "llviewerthrottle.h"
#include "llparcel.h"
+#include "llavatariconctrl.h"
// *FIX: These extern globals should be cleaned up.
// The globals either represent state/config/resource-storage of either
@@ -604,7 +605,8 @@ bool LLAppViewer::init()
// into the log files during normal startup until AFTER
// we run the "program crashed last time" error handler below.
//
-
+ LLFastTimer::reset();
+
// 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");
@@ -695,8 +697,12 @@ bool LLAppViewer::init()
LLUI::setupPaths();
LLTransUtil::parseStrings("strings.xml", default_trans_args);
LLTransUtil::parseLanguageStrings("language_settings.xml");
- LLWeb::initClass(); // do this after LLUI
+
+ // LLKeyboard relies on LLUI to know what some accelerator keys are called.
+ LLKeyboard::setStringTranslatorFunc( LLTrans::getKeyboardString );
+ LLWeb::initClass(); // do this after LLUI
+
// Provide the text fields with callbacks for opening Urls
LLUrlAction::setOpenURLCallback(&LLWeb::loadURL);
LLUrlAction::setOpenURLInternalCallback(&LLWeb::loadURLInternal);
@@ -1491,6 +1497,9 @@ bool LLAppViewer::cleanup()
sImageDecodeThread = NULL;
LLLocationHistory::getInstance()->save();
+
+ LLAvatarIconIDCache::getInstance()->save();
+
delete mFastTimerLogThread;
mFastTimerLogThread = NULL;
@@ -1830,8 +1839,18 @@ bool LLAppViewer::initConfiguration()
gSavedSettings.setString("VersionChannelName", LL_CHANNEL);
#ifndef LL_RELEASE_FOR_DOWNLOAD
- gSavedSettings.setBOOL("ShowConsoleWindow", TRUE);
- gSavedSettings.setBOOL("AllowMultipleViewers", TRUE);
+ // provide developer build only overrides for these control variables that are not
+ // persisted to settings.xml
+ LLControlVariable* c = gSavedSettings.getControl("ShowConsoleWindow");
+ if (c)
+ {
+ c->setValue(true, false);
+ }
+ c = gSavedSettings.getControl("AllowMultipleViewers");
+ if (c)
+ {
+ c->setValue(true, false);
+ }
#endif
//*FIX:Mani - Set default to disabling watchdog mainloop
diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp
index ed291c16a8..d34bcb4a68 100644
--- a/indra/newview/llappviewerlinux.cpp
+++ b/indra/newview/llappviewerlinux.cpp
@@ -188,7 +188,7 @@ static inline BOOL do_basic_glibc_backtrace()
for (i = 0; i < size; i++)
{
// the format of the StraceFile is very specific, to allow (kludgy) machine-parsing
- fprintf(StraceFile, "%-3d ", i);
+ fprintf(StraceFile, "%-3lu ", (unsigned long)i);
fprintf(StraceFile, "%-32s\t", "unknown");
fprintf(StraceFile, "%p ", stackarray[i]);
fprintf(StraceFile, "%s\n", strings[i]);
@@ -263,7 +263,7 @@ static inline BOOL do_elfio_glibc_backtrace()
for (btpos = 0; btpos < btsize; ++btpos)
{
// the format of the StraceFile is very specific, to allow (kludgy) machine-parsing
- fprintf(StraceFile, "%-3d ", btpos);
+ fprintf(StraceFile, "%-3ld ", (long)btpos);
int symidx;
for (symidx = 0; symidx < nSymNo; ++symidx)
{
@@ -354,7 +354,7 @@ bool LLAppViewerLinux::init()
bool LLAppViewerLinux::restoreErrorTrap()
{
- // *NOTE:Mani there is a case for implementing this or the mac.
+ // *NOTE:Mani there is a case for implementing this on the mac.
// Linux doesn't need it to my knowledge.
return true;
}
@@ -727,8 +727,26 @@ std::string LLAppViewerLinux::generateSerialNumber()
{
char serial_md5[MD5HEX_STR_SIZE];
serial_md5[0] = 0;
+ std::string best;
+ std::string uuiddir("/dev/disk/by-uuid/");
- // TODO
+ // trawl /dev/disk/by-uuid looking for a good-looking UUID to grab
+ std::string this_name;
+ BOOL wrap = FALSE;
+ while (gDirUtilp->getNextFileInDir(uuiddir, "*", this_name, wrap))
+ {
+ if (this_name.length() > best.length() ||
+ (this_name.length() == best.length() &&
+ this_name > best))
+ {
+ // longest (and secondarily alphabetically last) so far
+ best = this_name;
+ }
+ }
+
+ // we don't return the actual serial number, just a hash of it.
+ LLMD5 md5( reinterpret_cast<const unsigned char*>(best.c_str()) );
+ md5.hex_digest(serial_md5);
return serial_md5;
}
diff --git a/indra/newview/llappviewerlinux.h b/indra/newview/llappviewerlinux.h
index 365fcfeb6b..230c0dc24b 100644
--- a/indra/newview/llappviewerlinux.h
+++ b/indra/newview/llappviewerlinux.h
@@ -33,9 +33,12 @@
#ifndef LL_LLAPPVIEWERLINUX_H
#define LL_LLAPPVIEWERLINUX_H
-#if LL_DBUS_ENABLED
extern "C" {
# include <glib.h>
+}
+
+#if LL_DBUS_ENABLED
+extern "C" {
# include <glib-object.h>
# include <dbus/dbus-glib.h>
}
diff --git a/indra/newview/llappviewerlinux_api_dbus.cpp b/indra/newview/llappviewerlinux_api_dbus.cpp
index ee160d0151..da67493e67 100644
--- a/indra/newview/llappviewerlinux_api_dbus.cpp
+++ b/indra/newview/llappviewerlinux_api_dbus.cpp
@@ -41,9 +41,9 @@ extern "C" {
#include "apr_dso.h"
}
-#define DEBUGMSG(...) lldebugs << llformat(__VA_ARGS__) << llendl
-#define INFOMSG(...) llinfos << llformat(__VA_ARGS__) << llendl
-#define WARNMSG(...) llwarns << llformat(__VA_ARGS__) << llendl
+#define DEBUGMSG(...) do { lldebugs << llformat(__VA_ARGS__) << llendl; } while(0)
+#define INFOMSG(...) do { llinfos << llformat(__VA_ARGS__) << llendl; } while(0)
+#define WARNMSG(...) do { llwarns << llformat(__VA_ARGS__) << llendl; } while(0)
#define LL_DBUS_SYM(REQUIRED, DBUSSYM, RTN, ...) RTN (*ll##DBUSSYM)(__VA_ARGS__) = NULL
#include "llappviewerlinux_api_dbus_syms_raw.inc"
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 2b3939d92f..1282e437f2 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -159,15 +159,7 @@ bool LLAppViewerMacOSX::initParseCommandLine(LLCommandLineParser& clp)
clp.addOptionDesc("psn", NULL, 1, "MacOSX process serial number");
clp.setCustomParser(parse_psn);
- // First parse the command line, not often used on the mac.
- if(clp.parseCommandLine(gArgC, gArgV) == false)
- {
- return false;
- }
-
- // Now read in the args from arguments txt.
- // Succesive calls to clp.parse... will NOT override earlier
- // options.
+ // First read in the args from arguments txt.
const char* filename = "arguments.txt";
llifstream ifs(filename, llifstream::binary);
if (!ifs.is_open())
@@ -180,7 +172,14 @@ bool LLAppViewerMacOSX::initParseCommandLine(LLCommandLineParser& clp)
{
return false;
}
-
+
+ // Then parse the user's command line, so that any --url arg can appear last
+ // Succesive calls to clp.parse... will NOT override earlier options.
+ if(clp.parseCommandLine(gArgC, gArgV) == false)
+ {
+ return false;
+ }
+
// Get the user's preferred language string based on the Mac OS localization mechanism.
// To add a new localization:
// go to the "Resources" section of the project
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 827ae5855b..cd3963050f 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -539,7 +539,7 @@ void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)
gVFS->removeFile(content["new_asset"].asUUID(),
LLAssetType::AT_NOTECARD);
}
-
+ nc->setAssetId(content["new_asset"].asUUID());
nc->refreshFromInventory();
}
break;
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 2b5e2369bb..2f67401301 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -255,6 +255,7 @@ void LLAvatarActions::inviteToGroup(const LLUUID& id)
LLFloaterGroupPicker* widget = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(id));
if (widget)
{
+ widget->removeNoneOption();
widget->center();
widget->setPowersMask(GP_MEMBER_INVITE);
widget->setSelectGroupCallback(boost::bind(callback_invite_to_group, _1, id));
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 1d5fa9ffa7..3e411583ac 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -50,7 +50,94 @@
static LLDefaultChildRegistry::Register<LLAvatarIconCtrl> r("avatar_icon");
-LLAvatarIconCtrl::avatar_image_map_t LLAvatarIconCtrl::sImagesCache;
+bool LLAvatarIconIDCache::LLAvatarIconIDCacheItem::expired()
+{
+ const F64 SEC_PER_DAY_PLUS_HOUR = (24.0 + 1.0) * 60.0 * 60.0;
+ F64 delta = LLDate::now().secondsSinceEpoch() - cached_time.secondsSinceEpoch();
+ if (delta > SEC_PER_DAY_PLUS_HOUR)
+ return true;
+ return false;
+}
+
+void LLAvatarIconIDCache::load ()
+{
+ llinfos << "Loading avatar icon id cache." << llendl;
+
+ // build filename for each user
+ std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
+ llifstream file(resolved_filename);
+
+ if (!file.is_open())
+ return;
+
+ // add each line in the file to the list
+ int uuid_len = UUID_STR_LENGTH-1;
+ std::string line;
+ while (std::getline(file, line))
+ {
+ LLUUID avatar_id;
+ LLUUID icon_id;
+ LLDate date;
+
+ std::string avatar_id_str = line.substr(0,uuid_len);
+ std::string icon_id_str = line.substr(uuid_len,uuid_len);
+
+ std::string date_str = line.substr(uuid_len*2, line.length()-uuid_len*2);
+
+ if(!avatar_id.set(avatar_id_str) || !icon_id.set(icon_id_str) || !date.fromString(date_str))
+ continue;
+
+ LLAvatarIconIDCacheItem item = {icon_id,date};
+ mCache[avatar_id] = item;
+ }
+
+ file.close();
+
+}
+
+void LLAvatarIconIDCache::save ()
+{
+ std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
+
+ // open a file for writing
+ llofstream file (resolved_filename);
+ if (!file.is_open())
+ {
+ llwarns << "can't open avatar icons cache file\"" << mFilename << "\" for writing" << llendl;
+ return;
+ }
+
+ for(std::map<LLUUID,LLAvatarIconIDCacheItem>::iterator it = mCache.begin();it!=mCache.end();++it)
+ {
+ if(!it->second.expired())
+ {
+ file << it->first << it->second.icon_id << it->second.cached_time << std::endl;
+ }
+ }
+
+ file.close();
+}
+
+LLUUID* LLAvatarIconIDCache::get (const LLUUID& avatar_id)
+{
+ std::map<LLUUID,LLAvatarIconIDCacheItem>::iterator it = mCache.find(avatar_id);
+ if(it==mCache.end())
+ return 0;
+ if(it->second.expired())
+ return 0;
+ return &it->second.icon_id;
+}
+
+void LLAvatarIconIDCache::add (const LLUUID& avatar_id,const LLUUID& icon_id)
+{
+ LLAvatarIconIDCacheItem item = {icon_id,LLDate::now()};
+ mCache[avatar_id] = item;
+}
+
+void LLAvatarIconIDCache::remove (const LLUUID& avatar_id)
+{
+ mCache.erase(avatar_id);
+}
LLAvatarIconCtrl::Params::Params()
@@ -161,18 +248,13 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
// an avatar.
// Check if cache already contains image_id for that avatar
- avatar_image_map_t::iterator it = sImagesCache.find(mAvatarId);
- if (it != sImagesCache.end())
- {
- updateFromCache(it->second);
- }
- else
+
+ if (!updateFromCache())
{
- app->addObserver(value.asUUID(), this);
- app->sendAvatarPropertiesRequest(value.asUUID());
+ app->addObserver(mAvatarId, this);
+ app->sendAvatarPropertiesRequest(mAvatarId);
}
}
-
}
else
{
@@ -182,12 +264,18 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
gCacheName->get(mAvatarId, FALSE, boost::bind(&LLAvatarIconCtrl::nameUpdatedCallback, this, _1, _2, _3, _4));
}
-void LLAvatarIconCtrl::updateFromCache(LLAvatarIconCtrl::LLImagesCacheItem data)
+bool LLAvatarIconCtrl::updateFromCache()
{
+ LLUUID* icon_id_ptr = LLAvatarIconIDCache::getInstance()->get(mAvatarId);
+ if(!icon_id_ptr)
+ return false;
+
+ const LLUUID& icon_id = *icon_id_ptr;
+
// Update the avatar
- if (data.image_id.notNull())
+ if (icon_id.notNull())
{
- LLIconCtrl::setValue(data.image_id);
+ LLIconCtrl::setValue(icon_id);
}
else
{
@@ -224,6 +312,7 @@ void LLAvatarIconCtrl::updateFromCache(LLAvatarIconCtrl::LLImagesCacheItem data)
setToolTip((LLStringExplicit)"");
}
}
+ return true;
}
//virtual
@@ -239,10 +328,8 @@ void LLAvatarIconCtrl::processProperties(void* data, EAvatarProcessorType type)
return;
}
- LLAvatarIconCtrl::LLImagesCacheItem data(avatar_data->image_id, avatar_data->flags);
-
- updateFromCache(data);
- sImagesCache.insert(std::pair<LLUUID, LLAvatarIconCtrl::LLImagesCacheItem>(mAvatarId, data));
+ LLAvatarIconIDCache::getInstance()->add(mAvatarId,avatar_data->image_id);
+ updateFromCache();
}
}
}
diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h
index 49e304a521..77390eb233 100644
--- a/indra/newview/llavatariconctrl.h
+++ b/indra/newview/llavatariconctrl.h
@@ -37,6 +37,35 @@
#include "llavatarpropertiesprocessor.h"
#include "llviewermenu.h"
+class LLAvatarIconIDCache: public LLSingleton<LLAvatarIconIDCache>
+{
+public:
+ struct LLAvatarIconIDCacheItem
+ {
+ LLUUID icon_id;
+ LLDate cached_time;
+
+ bool expired();
+ };
+
+ LLAvatarIconIDCache():mFilename("avatar_icons_cache.txt")
+ {
+ }
+
+ void load ();
+ void save ();
+
+ LLUUID* get (const LLUUID& id);
+ void add (const LLUUID& avatar_id,const LLUUID& icon_id);
+
+ void remove (const LLUUID& id);
+protected:
+
+
+ std::string mFilename;
+ std::map<LLUUID,LLAvatarIconIDCacheItem> mCache;//we cache only LLUID and time
+};
+
class LLAvatarIconCtrl
: public LLIconCtrl, public LLAvatarPropertiesObserver
{
@@ -82,19 +111,8 @@ protected:
LLHandle<LLView> mPopupMenuHandle;
bool mDrawTooltip;
- struct LLImagesCacheItem
- {
- LLUUID image_id;
- U32 flags;
-
- LLImagesCacheItem(LLUUID image_id_, U32 flags_) : image_id(image_id_), flags(flags_) {}
- };
-
- typedef std::map<LLUUID, LLAvatarIconCtrl::LLImagesCacheItem> avatar_image_map_t;
-
- static avatar_image_map_t sImagesCache;
- void updateFromCache(LLAvatarIconCtrl::LLImagesCacheItem data);
+ bool updateFromCache();
};
#endif // LL_LLAVATARICONCTRL_H
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 51545bcc07..4179d7a58d 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -33,6 +33,7 @@
#include "llviewerprecompiledheaders.h"
+#include "llavataractions.h"
#include "llavatarlistitem.h"
#include "llfloaterreg.h"
@@ -49,6 +50,7 @@ LLAvatarListItem::LLAvatarListItem()
mStatus(NULL),
mSpeakingIndicator(NULL),
mInfoBtn(NULL),
+ mProfileBtn(NULL),
mContextMenu(NULL),
mAvatarId(LLUUID::null)
{
@@ -63,10 +65,14 @@ BOOL LLAvatarListItem::postBuild()
mSpeakingIndicator = getChild<LLOutputMonitorCtrl>("speaking_indicator");
mInfoBtn = getChild<LLButton>("info_btn");
+ mProfileBtn = getChild<LLButton>("profile_btn");
mInfoBtn->setVisible(false);
mInfoBtn->setClickedCallback(boost::bind(&LLAvatarListItem::onInfoBtnClick, this));
+ mProfileBtn->setVisible(false);
+ mProfileBtn->setClickedCallback(boost::bind(&LLAvatarListItem::onProfileBtnClick, this));
+
/*
if(!p.buttons.profile)
{
@@ -104,6 +110,7 @@ void LLAvatarListItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
childSetVisible("hovered_icon", true);
mInfoBtn->setVisible(true);
+ mProfileBtn->setVisible(true);
LLPanel::onMouseEnter(x, y, mask);
}
@@ -112,6 +119,7 @@ void LLAvatarListItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
childSetVisible("hovered_icon", false);
mInfoBtn->setVisible(false);
+ mProfileBtn->setVisible(false);
LLPanel::onMouseLeave(x, y, mask);
}
@@ -171,6 +179,11 @@ void LLAvatarListItem::onInfoBtnClick()
*/
}
+void LLAvatarListItem::onProfileBtnClick()
+{
+ LLAvatarActions::showProfile(mAvatarId);
+}
+
void LLAvatarListItem::showStatus(bool show_status)
{
// *HACK: dirty hack until we can determine correct avatar status (EXT-1076).
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index bde9250e4a..871441b2d3 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -66,6 +66,7 @@ public:
const std::string getAvatarName() const;
void onInfoBtnClick();
+ void onProfileBtnClick();
void showSpeakingIndicator(bool show) { mSpeakingIndicator->setVisible(show); }
void showInfoBtn(bool show_info_btn) {mInfoBtn->setVisible(show_info_btn); }
@@ -82,6 +83,7 @@ private:
LLOutputMonitorCtrl* mSpeakingIndicator;
LLButton* mInfoBtn;
+ LLButton* mProfileBtn;
ContextMenu* mContextMenu;
LLUUID mAvatarId;
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 8771611b1c..0ff8ca7d26 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -87,6 +87,7 @@ BOOL LLBottomTray::postBuild()
mMovementPanel = getChild<LLPanel>("movement_panel");
mGestureCombo = getChild<LLComboBox>("Gesture");
mCamPanel = getChild<LLPanel>("cam_panel");
+ mSnapshotPanel = getChild<LLPanel>("snapshot_panel");
setRightMouseDownCallback(boost::bind(&LLBottomTray::showBottomTrayContextMenu,this, _2, _3,_4));
return TRUE;
@@ -212,7 +213,7 @@ void LLBottomTray::setVisible(BOOL visible)
LLView* viewp = *child_it;
std::string name = viewp->getName();
- if ("chat_bar" == name || "movement_panel" == name || "cam_panel" == name)
+ if ("chat_bar" == name || "movement_panel" == name || "cam_panel" == name || "snapshot_panel" == name)
continue;
else
{
@@ -266,3 +267,8 @@ void LLBottomTray::showCameraButton(BOOL visible)
{
mCamPanel->setVisible(visible);
}
+
+void LLBottomTray::showSnapshotButton(BOOL visible)
+{
+ mSnapshotPanel->setVisible(visible);
+}
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index b25dec7b92..4724c5ecef 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -76,6 +76,7 @@ public:
void showGestureButton(BOOL visible);
void showMoveButton(BOOL visible);
void showCameraButton(BOOL visible);
+ void showSnapshotButton(BOOL visible);
private:
@@ -100,6 +101,7 @@ protected:
LLMenuGL* mBottomTrayContextMenu;
LLPanel* mMovementPanel;
LLPanel* mCamPanel;
+ LLPanel* mSnapshotPanel;
LLComboBox* mGestureCombo;
};
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index e3440ee779..2b7bd83ca3 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -682,7 +682,11 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
{
std::string notifyMsg = notification->getMessage();
if (!notifyMsg.empty())
+ {
floater->addHistoryLine(notifyMsg,LLUIColorTable::instance().getColor("SystemChatColor"));
+
+ LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, notifyMsg);
+ }
}
}
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 25620c2aed..63b9fd8e66 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -59,6 +59,7 @@ static const F32 AUTO_SCROLL_RATE_ACCEL = 120.f;
static const S32 msg_left_offset = 30;
static const S32 msg_right_offset = 10;
+static const S32 msg_height_pad = 2;
//static LLDefaultChildRegistry::Register<LLChatItemsContainerCtrl> t2("chat_items_container");
@@ -178,14 +179,14 @@ void LLNearbyChatToastPanel::setMessage (const LLChat& chat_msg)
void LLNearbyChatToastPanel::snapToMessageHeight ()
{
LLChatMsgBox* text_box = getChild<LLChatMsgBox>("msg_text", false);
- S32 new_height = text_box->getTextPixelHeight();
+ S32 new_height = text_box->getTextPixelHeight() + msg_height_pad;
LLRect panel_rect = getRect();
S32 caption_height = 0;
LLPanel* caption = getChild<LLPanel>("msg_caption", false);
caption_height = caption->getRect().getHeight();
- panel_rect.setLeftTopAndSize( panel_rect.mLeft, panel_rect.mTop, panel_rect.getWidth() , caption_height + new_height);
+ panel_rect.setLeftTopAndSize( panel_rect.mLeft, panel_rect.mTop, panel_rect.getWidth(), caption_height + new_height);
reshape( getRect().getWidth(), caption_height + new_height, 1);
diff --git a/indra/newview/llchatmsgbox.cpp b/indra/newview/llchatmsgbox.cpp
index 6eaafc9059..12626e3b43 100644
--- a/indra/newview/llchatmsgbox.cpp
+++ b/indra/newview/llchatmsgbox.cpp
@@ -59,7 +59,7 @@ public:
/*virtual*/ S32 getWidth(S32 first_char, S32 num_chars) const
{
- return mEditor->getDocumentPanel()->getRect().getWidth();
+ return mEditor->getDocumentView()->getRect().getWidth();
}
/*virtual*/ F32 draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect)
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 23664fa6d6..340b0fa22c 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -763,15 +763,14 @@ bool LLChicletPanel::addChiclet(LLChiclet* chiclet, S32 index)
if(mScrollArea->addChild(chiclet))
{
S32 offset = 0;
- // Do not scroll chiclets if chiclets are scrolled right and new
- // chiclet is added to the beginning of the list
- if(canScrollLeft())
+
+ // if index == 0 and chickelt list isn't empty insert chiclet before first in the list
+ // without scrolling, so other visible chicklets aren't change screen position
+ if (0 == index && !mChicletList.empty())
{
- offset = - (chiclet->getRequiredRect().getWidth() + getChicletPadding());
- if(0 == index)
- {
- offset += getChiclet(0)->getRect().mLeft;
- }
+ offset = getChiclet(0)->getRect().mLeft
+ - (chiclet->getRequiredRect().getWidth()
+ + getChicletPadding());
}
mChicletList.insert(mChicletList.begin() + index, chiclet);
@@ -1128,6 +1127,25 @@ BOOL LLChicletPanel::handleScrollWheel(S32 x, S32 y, S32 clicks)
return TRUE;
}
+bool LLChicletPanel::isAnyIMFloaterDoked()
+{
+ bool res = false;
+ for (chiclet_list_t::iterator it = mChicletList.begin(); it
+ != mChicletList.end(); it++)
+ {
+ LLIMFloater* im_floater = LLFloaterReg::findTypedInstance<LLIMFloater>(
+ "impanel", (*it)->getSessionId());
+ if (im_floater != NULL && im_floater->getVisible()
+ && !im_floater->isMinimized() && im_floater->isDocked())
+ {
+ res = true;
+ break;
+ }
+ }
+
+ return res;
+}
+
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index ef47b54333..458bc73bc4 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -752,6 +752,8 @@ protected:
S32 getScrollingOffset() { return mScrollingOffset; }
+ bool isAnyIMFloaterDoked();
+
protected:
chiclet_list_t mChicletList;
@@ -818,7 +820,10 @@ T* LLChicletPanel::createChiclet(const LLUUID& session_id /*= LLUUID::null*/, S3
return NULL;
}
- scrollToChiclet(chiclet);
+ if (!isAnyIMFloaterDoked())
+ {
+ scrollToChiclet(chiclet);
+ }
chiclet->setSessionId(session_id);
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index f56359afc3..21e17cc207 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -369,7 +369,7 @@ void LLDrawPoolWater::shade()
LLVector3 light_dir;
LLColor3 light_color;
- if (gSky.getSunDirection().mV[2] > NIGHTTIME_ELEVATION_COS)
+ if (gSky.getSunDirection().mV[2] > LLSky::NIGHTTIME_ELEVATION_COS)
{
light_dir = gSky.getSunDirection();
light_dir.normVec();
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index 2467356018..e2d6bcee8f 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -57,7 +57,20 @@ public:
{
return start_offset;
}
- /*virtual*/ S32 getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const { return getEnd() - getStart(); }
+ /*virtual*/ S32 getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const
+ {
+ // require full line to ourselves
+ if (line_offset == 0)
+ {
+ // print all our text
+ return getEnd() - getStart();
+ }
+ else
+ {
+ // wait for next line
+ return 0;
+ }
+ }
/*virtual*/ F32 draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect)
{
F32 right_x;
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index b0ae13348b..4246cbc27f 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -280,6 +280,11 @@ void LLFace::setTexture(LLViewerTexture* tex)
mTexture = tex ;
}
+void LLFace::dirtyTexture()
+{
+ gPipeline.markTextured(getDrawable());
+}
+
void LLFace::switchTexture(LLViewerTexture* new_texture)
{
if(mTexture == new_texture)
@@ -295,7 +300,7 @@ void LLFace::switchTexture(LLViewerTexture* new_texture)
getViewerObject()->changeTEImage(mTEOffset, new_texture) ;
setTexture(new_texture) ;
- gPipeline.markTextured(getDrawable());
+ dirtyTexture();
}
void LLFace::setTEOffset(const S32 te_offset)
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index f6ffefcb7c..d734b327d9 100644
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
@@ -90,6 +90,7 @@ public:
U16 getGeomStart() const { return mGeomIndex; } // index into draw pool
void setTexture(LLViewerTexture* tex) ;
void switchTexture(LLViewerTexture* new_texture);
+ void dirtyTexture();
LLXformMatrix* getXform() const { return mXform; }
BOOL hasGeometry() const { return mGeomCount > 0; }
LLVector3 getPositionAgent() const;
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 2be8ac4a0e..2ab17d6220 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -496,7 +496,7 @@ void LLFastTimerView::draw()
// Draw the history bars
if (LLFastTimer::getLastFrameIndex() >= 0)
{
- LLLocalClipRect clip(LLRect(xleft, ytop - margin, getRect().getWidth() - margin, margin));
+ LLLocalClipRect clip(LLRect(xleft, ytop, getRect().getWidth() - margin, margin));
U64 totalticks;
if (!LLFastTimer::sPauseHistory)
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 48fcb6b6de..007c6b2c4c 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -164,33 +164,6 @@ private:
LLSLURLGetter mUrlGetter;
};
-class LLFavoritesToggleableMenu : public LLToggleableMenu
-{
-public:
- virtual BOOL handleHover(S32 x, S32 y, MASK mask)
- {
- if (fb)
- {
- fb->handleHover(x, y, mask);
- }
-
- return LLToggleableMenu::handleHover(x, y, mask);
- }
-
- void initFavoritesBarPointer(LLFavoritesBarCtrl* fb) { this->fb = fb; }
-
-protected:
- LLFavoritesToggleableMenu(const LLToggleableMenu::Params& p):
- LLToggleableMenu(p)
- {
- }
-
- friend class LLUICtrlFactory;
-
-private:
- LLFavoritesBarCtrl* fb;
-};
-
/**
* This class is needed to override LLMenuItemCallGL default handleToolTip function and
* show SLURL as button tooltip.
@@ -221,6 +194,18 @@ public:
return LLMenuItemCallGL::handleMouseUp(x, y, mask);
}
+ virtual BOOL handleHover(S32 x, S32 y, MASK mask)
+ {
+ if (fb)
+ {
+ fb->handleHover(x, y, mask);
+ }
+
+ return TRUE;
+ }
+
+ void initFavoritesBarPointer(LLFavoritesBarCtrl* fb) { this->fb = fb; }
+
protected:
LLFavoriteLandmarkMenuItem(const LLMenuItemCallGL::Params& p) : LLMenuItemCallGL(p) {}
@@ -228,6 +213,36 @@ protected:
private:
LLSLURLGetter mUrlGetter;
+ LLFavoritesBarCtrl* fb;
+};
+
+/**
+ * This class was introduced just for fixing the following issue:
+ * EXT-836 Nav bar: Favorites overflow menu passes left-mouse click through.
+ * We must explicitly handle drag and drop event by returning TRUE
+ * because otherwise LLToolDragAndDrop will initiate drag and drop operation
+ * with the world.
+ */
+class LLFavoriteLandmarkToggleableMenu : public LLToggleableMenu
+{
+public:
+ virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg)
+ {
+ *accept = ACCEPT_NO;
+ return TRUE;
+ }
+
+protected:
+ LLFavoriteLandmarkToggleableMenu(const LLToggleableMenu::Params& p):
+ LLToggleableMenu(p)
+ {
+ }
+
+ friend class LLUICtrlFactory;
};
/**
@@ -312,8 +327,8 @@ LLFavoritesBarCtrl::LLFavoritesBarCtrl(const LLFavoritesBarCtrl::Params& p)
boost::bind(&LLFavoritesBarCtrl::doToSelected, this, _2));
// Add this if we need to selectively enable items
- //LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Favorites.EnableSelected",
- // boost::bind(&LLFavoritesBarCtrl::enableSelected, this, _2));
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Favorites.EnableSelected",
+ boost::bind(&LLFavoritesBarCtrl::enableSelected, this, _2));
gInventory.addObserver(this);
}
@@ -433,7 +448,7 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y)
saveItemsOrder(mItems);
- LLFavoritesToggleableMenu* menu = (LLFavoritesToggleableMenu*) mPopupMenuHandle.get();
+ LLToggleableMenu* menu = (LLToggleableMenu*) mPopupMenuHandle.get();
if (menu && menu->getVisible())
{
@@ -794,7 +809,7 @@ void LLFavoritesBarCtrl::showDropDownMenu()
{
if (mPopupMenuHandle.isDead())
{
- LLFavoritesToggleableMenu::Params menu_p;
+ LLToggleableMenu::Params menu_p;
menu_p.name("favorites menu");
menu_p.can_tear_off(false);
menu_p.visible(false);
@@ -802,12 +817,11 @@ void LLFavoritesBarCtrl::showDropDownMenu()
menu_p.max_scrollable_items = 10;
menu_p.preferred_width = DROP_DOWN_MENU_WIDTH;
- LLFavoritesToggleableMenu* menu = LLUICtrlFactory::create<LLFavoritesToggleableMenu>(menu_p);
- menu->initFavoritesBarPointer(this);
+ LLToggleableMenu* menu = LLUICtrlFactory::create<LLFavoriteLandmarkToggleableMenu>(menu_p);
mPopupMenuHandle = menu->getHandle();
}
- LLFavoritesToggleableMenu* menu = (LLFavoritesToggleableMenu*)mPopupMenuHandle.get();
+ LLToggleableMenu* menu = (LLToggleableMenu*)mPopupMenuHandle.get();
if(menu)
{
@@ -873,6 +887,7 @@ void LLFavoritesBarCtrl::showDropDownMenu()
item_params.on_click.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
LLFavoriteLandmarkMenuItem *menu_item = LLUICtrlFactory::create<LLFavoriteLandmarkMenuItem>(item_params);
+ menu_item->initFavoritesBarPointer(this);
menu_item->setRightMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this,item->getUUID(),_1,_2,_3,_4));
menu_item->LLUICtrl::setMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonMouseDown, this, item->getUUID(), _1, _2, _3, _4));
menu_item->LLUICtrl::setMouseUpCallback(boost::bind(&LLFavoritesBarCtrl::onButtonMouseUp, this, item->getUUID(), _1, _2, _3, _4));
@@ -951,6 +966,18 @@ void copy_slurl_to_clipboard_cb(std::string& slurl)
}
+bool LLFavoritesBarCtrl::enableSelected(const LLSD& userdata)
+{
+ std::string param = userdata.asString();
+
+ if (param == std::string("can_paste"))
+ {
+ return isClipboardPasteable();
+ }
+
+ return false;
+}
+
void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata)
{
std::string action = userdata.asString();
@@ -1072,6 +1099,7 @@ void LLFavoritesBarCtrl::pastFromClipboard() const
void LLFavoritesBarCtrl::onButtonMouseDown(LLUUID id, LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
{
mDragItemId = id;
+ mStartDrag = TRUE;
S32 screenX, screenY;
localPointToScreen(x, y, &screenX, &screenY);
@@ -1081,6 +1109,7 @@ void LLFavoritesBarCtrl::onButtonMouseDown(LLUUID id, LLUICtrl* ctrl, S32 x, S32
void LLFavoritesBarCtrl::onButtonMouseUp(LLUUID id, LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
{
+ mStartDrag = FALSE;
mDragItemId = LLUUID::null;
}
@@ -1095,7 +1124,7 @@ void LLFavoritesBarCtrl::onEndDrag()
BOOL LLFavoritesBarCtrl::handleHover(S32 x, S32 y, MASK mask)
{
- if (mDragItemId != LLUUID::null)
+ if (mDragItemId != LLUUID::null && mStartDrag)
{
S32 screenX, screenY;
localPointToScreen(x, y, &screenX, &screenY);
@@ -1106,6 +1135,8 @@ BOOL LLFavoritesBarCtrl::handleHover(S32 x, S32 y, MASK mask)
DAD_LANDMARK, mDragItemId,
LLToolDragAndDrop::SOURCE_LIBRARY);
+ mStartDrag = FALSE;
+
return LLToolDragAndDrop::getInstance()->handleHover(x, y, mask);
}
}
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 97117c3b4a..ea2a3d08e2 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -81,10 +81,12 @@ protected:
void onButtonRightClick(LLUUID id,LLView* button,S32 x,S32 y,MASK mask);
void onButtonMouseDown(LLUUID id, LLUICtrl* button, S32 x, S32 y, MASK mask);
+ void onOverflowMenuItemMouseDown(LLUUID id, LLUICtrl* item, S32 x, S32 y, MASK mask);
void onButtonMouseUp(LLUUID id, LLUICtrl* button, S32 x, S32 y, MASK mask);
void onEndDrag();
+ bool enableSelected(const LLSD& userdata);
void doToSelected(const LLSD& userdata);
BOOL isClipboardPasteable() const;
void pastFromClipboard() const;
@@ -149,6 +151,7 @@ private:
LLUICtrl* mLastTab;
LLUUID mDragItemId;
+ BOOL mStartDrag;
LLInventoryModel::item_array_t mItems;
BOOL mTabsHighlightEnabled;
diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp
index c062e6ccf2..55b7ed0c99 100644
--- a/indra/newview/llfloateranimpreview.cpp
+++ b/indra/newview/llfloateranimpreview.cpp
@@ -426,8 +426,8 @@ void LLFloaterAnimPreview::resetMotion()
LLUUID base_id = mIDList[childGetValue("preview_base_anim").asString()];
avatarp->deactivateAllMotions();
- avatarp->startMotion(base_id, BASE_ANIM_TIME_OFFSET);
avatarp->startMotion(mMotionID, 0.0f);
+ avatarp->startMotion(base_id, BASE_ANIM_TIME_OFFSET);
childSetValue("playback_slider", 0.0f);
// Set pose
@@ -638,10 +638,10 @@ void LLFloaterAnimPreview::onCommitBaseAnim(LLUICtrl* ctrl, void* data)
BOOL paused = avatarp->areAnimationsPaused();
// stop all other possible base motions
- avatarp->stopMotion(ANIM_AGENT_STAND, TRUE);
- avatarp->stopMotion(ANIM_AGENT_WALK, TRUE);
- avatarp->stopMotion(ANIM_AGENT_SIT, TRUE);
- avatarp->stopMotion(ANIM_AGENT_HOVER, TRUE);
+ avatarp->stopMotion(previewp->mIDList["Standing"], TRUE);
+ avatarp->stopMotion(previewp->mIDList["Walking"], TRUE);
+ avatarp->stopMotion(previewp->mIDList["Sitting"], TRUE);
+ avatarp->stopMotion(previewp->mIDList["Flying"], TRUE);
previewp->resetMotion();
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index da2a4d9d93..262dc1804d 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -33,6 +33,7 @@
#include "llviewerprecompiledheaders.h"
#include "llfloaterauction.h"
+#include "llfloaterregioninfo.h"
#include "lldir.h"
#include "llgl.h"
@@ -56,6 +57,8 @@
#include "llviewercontrol.h"
#include "llui.h"
#include "llrender.h"
+#include "llsdutil.h"
+#include "llsdutil_math.h"
///----------------------------------------------------------------------------
/// Local function declarations, constants, enums, and typedefs
@@ -77,7 +80,9 @@ LLFloaterAuction::LLFloaterAuction(const LLSD& key)
{
// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_auction.xml");
mCommitCallbackRegistrar.add("ClickSnapshot", boost::bind(&LLFloaterAuction::onClickSnapshot, this));
- mCommitCallbackRegistrar.add("ClickOK", boost::bind(&LLFloaterAuction::onClickOK, this));
+ mCommitCallbackRegistrar.add("ClickSellToAnyone", boost::bind(&LLFloaterAuction::onClickSellToAnyone, this));
+ mCommitCallbackRegistrar.add("ClickStartAuction", boost::bind(&LLFloaterAuction::onClickStartAuction, this));
+ mCommitCallbackRegistrar.add("ClickResetParcel", boost::bind(&LLFloaterAuction::onClickResetParcel, this));
}
// Destroys the object
@@ -97,6 +102,8 @@ void LLFloaterAuction::onOpen(const LLSD& key)
void LLFloaterAuction::initialize()
{
+ mParcelUpdateCapUrl.clear();
+
mParcelp = LLViewerParcelMgr::getInstance()->getParcelSelection();
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
LLParcel* parcelp = mParcelp->getParcel();
@@ -104,10 +111,23 @@ void LLFloaterAuction::initialize()
{
mParcelHost = region->getHost();
mParcelID = parcelp->getLocalID();
+ mParcelUpdateCapUrl = region->getCapability("ParcelPropertiesUpdate");
childSetText("parcel_text", parcelp->getName());
childEnable("snapshot_btn");
- childEnable("ok_btn");
+ childEnable("reset_parcel_btn");
+ childEnable("start_auction_btn");
+
+ LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate();
+ if (panel)
+ { // Only enable "Sell to Anyone" on Teen grid or if we don't know the ID yet
+ U32 estate_id = panel->getEstateID();
+ childSetEnabled("sell_to_anyone_btn", (estate_id == ESTATE_TEEN || estate_id == 0));
+ }
+ else
+ { // Don't have the panel up, so don't know if we're on the teen grid or not. Default to enabling it
+ childEnable("sell_to_anyone_btn");
+ }
}
else
{
@@ -122,8 +142,11 @@ void LLFloaterAuction::initialize()
}
mParcelID = -1;
childSetEnabled("snapshot_btn", false);
- childSetEnabled("ok_btn", false);
+ childSetEnabled("reset_parcel_btn", false);
+ childSetEnabled("sell_to_anyone_btn", false);
+ childSetEnabled("start_auction_btn", false);
}
+
mImageID.setNull();
mImage = NULL;
}
@@ -205,7 +228,7 @@ void LLFloaterAuction::onClickSnapshot(void* data)
}
// static
-void LLFloaterAuction::onClickOK(void* data)
+void LLFloaterAuction::onClickStartAuction(void* data)
{
LLFloaterAuction* self = (LLFloaterAuction*)(data);
@@ -244,11 +267,264 @@ void LLFloaterAuction::onClickOK(void* data)
msg->sendReliable(self->mParcelHost);
// clean up floater, and get out
- self->mImageID.setNull();
- self->mImage = NULL;
- self->mParcelID = -1;
- self->mParcelHost.invalidate();
- self->closeFloater();
+ self->cleanupAndClose();
+}
+
+
+void LLFloaterAuction::cleanupAndClose()
+{
+ mImageID.setNull();
+ mImage = NULL;
+ mParcelID = -1;
+ mParcelHost.invalidate();
+ closeFloater();
+}
+
+
+
+// static glue
+void LLFloaterAuction::onClickResetParcel(void* data)
+{
+ LLFloaterAuction* self = (LLFloaterAuction*)(data);
+ if (self)
+ {
+ self->doResetParcel();
+ }
+}
+
+
+// Reset all the values for the parcel in preparation for a sale
+void LLFloaterAuction::doResetParcel()
+{
+ LLParcel* parcelp = mParcelp->getParcel();
+ LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
+
+ if (parcelp
+ && region
+ && !mParcelUpdateCapUrl.empty())
+ {
+ LLSD body;
+ std::string empty;
+
+ // request new properties update from simulator
+ U32 message_flags = 0x01;
+ body["flags"] = ll_sd_from_U32(message_flags);
+
+ // Set all the default parcel properties for auction
+ body["local_id"] = parcelp->getLocalID();
+
+ U32 parcel_flags = PF_ALLOW_LANDMARK |
+ PF_ALLOW_FLY |
+ PF_CREATE_GROUP_OBJECTS |
+ PF_ALLOW_ALL_OBJECT_ENTRY |
+ PF_ALLOW_GROUP_OBJECT_ENTRY |
+ PF_ALLOW_GROUP_SCRIPTS |
+ PF_RESTRICT_PUSHOBJECT |
+ PF_SOUND_LOCAL |
+ PF_ALLOW_VOICE_CHAT |
+ PF_USE_ESTATE_VOICE_CHAN;
+
+ body["parcel_flags"] = ll_sd_from_U32(parcel_flags);
+
+ // Build a parcel name like "Ahern (128,128) PG 4032m"
+ std::ostringstream parcel_name;
+ LLVector3 center_point( parcelp->getCenterpoint() );
+ center_point.snap(0); // Get rid of fractions
+ parcel_name << region->getName()
+ << " ("
+ << (S32) center_point.mV[VX]
+ << ","
+ << (S32) center_point.mV[VY]
+ << ") "
+ << region->getSimAccessString()
+ << " "
+ << parcelp->getArea()
+ << "m";
+
+ std::string new_name(parcel_name.str().c_str());
+ body["name"] = new_name;
+ childSetText("parcel_text", new_name); // Set name in dialog as well, since it won't get updated otherwise
+
+ body["sale_price"] = (S32) 0;
+ body["description"] = empty;
+ body["music_url"] = empty;
+ body["media_url"] = empty;
+ body["media_desc"] = empty;
+ body["media_type"] = std::string("none/none");
+ body["media_width"] = (S32) 0;
+ body["media_height"] = (S32) 0;
+ body["auto_scale"] = (S32) 0;
+ body["media_loop"] = (S32) 0;
+ body["obscure_media"] = (S32) 0;
+ body["obscure_music"] = (S32) 0;
+ body["media_id"] = LLUUID::null;
+ body["group_id"] = MAINTENANCE_GROUP_ID; // Use maintenance group
+ body["pass_price"] = (S32) 10; // Defaults to $10
+ body["pass_hours"] = 0.0f;
+ body["category"] = (U8) LLParcel::C_NONE;
+ body["auth_buyer_id"] = LLUUID::null;
+ body["snapshot_id"] = LLUUID::null;
+ body["user_location"] = ll_sd_from_vector3( LLVector3::zero );
+ body["user_look_at"] = ll_sd_from_vector3( LLVector3::zero );
+ body["landing_type"] = (U8) LLParcel::L_DIRECT;
+
+ llinfos << "Sending parcel update to reset for auction via capability to: "
+ << mParcelUpdateCapUrl << llendl;
+ LLHTTPClient::post(mParcelUpdateCapUrl, body, new LLHTTPClient::Responder());
+
+ // Send a message to clear the object return time
+ LLMessageSystem *msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_ParcelSetOtherCleanTime);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_ParcelData);
+ msg->addS32Fast(_PREHASH_LocalID, parcelp->getLocalID());
+ msg->addS32Fast(_PREHASH_OtherCleanTime, 5); // 5 minute object auto-return
+
+ msg->sendReliable(region->getHost());
+
+ // Clear the access lists
+ clearParcelAccessLists(parcelp, region);
+ }
+}
+
+
+
+void LLFloaterAuction::clearParcelAccessLists(LLParcel* parcel, LLViewerRegion* region)
+{
+ if (!region || !parcel) return;
+
+ LLUUID transactionUUID;
+ transactionUUID.generate();
+
+ LLMessageSystem* msg = gMessageSystem;
+
+ // Clear access list
+ // parcel->mAccessList.clear();
+
+ msg->newMessageFast(_PREHASH_ParcelAccessListUpdate);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
+ msg->nextBlockFast(_PREHASH_Data);
+ msg->addU32Fast(_PREHASH_Flags, AL_ACCESS);
+ msg->addS32(_PREHASH_LocalID, parcel->getLocalID() );
+ msg->addUUIDFast(_PREHASH_TransactionID, transactionUUID);
+ msg->addS32Fast(_PREHASH_SequenceID, 1); // sequence_id
+ msg->addS32Fast(_PREHASH_Sections, 0); // num_sections
+
+ // pack an empty block since there will be no data
+ msg->nextBlockFast(_PREHASH_List);
+ msg->addUUIDFast(_PREHASH_ID, LLUUID::null );
+ msg->addS32Fast(_PREHASH_Time, 0 );
+ msg->addU32Fast(_PREHASH_Flags, 0 );
+
+ msg->sendReliable( region->getHost() );
+
+ // Send message for empty ban list
+ //parcel->mBanList.clear();
+ msg->newMessageFast(_PREHASH_ParcelAccessListUpdate);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
+ msg->nextBlockFast(_PREHASH_Data);
+ msg->addU32Fast(_PREHASH_Flags, AL_BAN);
+ msg->addS32(_PREHASH_LocalID, parcel->getLocalID() );
+ msg->addUUIDFast(_PREHASH_TransactionID, transactionUUID);
+ msg->addS32Fast(_PREHASH_SequenceID, 1); // sequence_id
+ msg->addS32Fast(_PREHASH_Sections, 0); // num_sections
+
+ // pack an empty block since there will be no data
+ msg->nextBlockFast(_PREHASH_List);
+ msg->addUUIDFast(_PREHASH_ID, LLUUID::null );
+ msg->addS32Fast(_PREHASH_Time, 0 );
+ msg->addU32Fast(_PREHASH_Flags, 0 );
+
+ msg->sendReliable( region->getHost() );
+}
+
+
+
+// static - 'Sell to Anyone' clicked, throw up a confirmation dialog
+void LLFloaterAuction::onClickSellToAnyone(void* data)
+{
+ LLFloaterAuction* self = (LLFloaterAuction*)(data);
+ if (self)
+ {
+ LLParcel* parcelp = self->mParcelp->getParcel();
+
+ // Do a confirmation
+ S32 sale_price = parcelp->getArea(); // Selling for L$1 per meter
+ S32 area = parcelp->getArea();
+
+ LLSD args;
+ args["LAND_SIZE"] = llformat("%d", area);
+ args["SALE_PRICE"] = llformat("%d", sale_price);
+ args["NAME"] = "Anyone";
+
+ LLNotification::Params params("ConfirmLandSaleChange"); // Re-use existing dialog
+ params.substitutions(args)
+ .functor.function(boost::bind(&LLFloaterAuction::onSellToAnyoneConfirmed, self, _1, _2));
+
+ params.name("ConfirmLandSaleToAnyoneChange");
+
+ // ask away
+ LLNotifications::instance().add(params);
+ }
+}
+
+
+// Sell confirmation clicked
+bool LLFloaterAuction::onSellToAnyoneConfirmed(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ if (option == 0)
+ {
+ doSellToAnyone();
+ }
+
+ return false;
+}
+
+
+
+// Reset all the values for the parcel in preparation for a sale
+void LLFloaterAuction::doSellToAnyone()
+{
+ LLParcel* parcelp = mParcelp->getParcel();
+ LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
+
+ if (parcelp
+ && region
+ && !mParcelUpdateCapUrl.empty())
+ {
+ LLSD body;
+ std::string empty;
+
+ // request new properties update from simulator
+ U32 message_flags = 0x01;
+ body["flags"] = ll_sd_from_U32(message_flags);
+
+ // Set all the default parcel properties for auction
+ body["local_id"] = parcelp->getLocalID();
+
+ // Set 'for sale' flag
+ U32 parcel_flags = parcelp->getParcelFlags() | PF_FOR_SALE;
+ // Ensure objects not included
+ parcel_flags &= ~PF_FOR_SALE_OBJECTS;
+ body["parcel_flags"] = ll_sd_from_U32(parcel_flags);
+
+ body["sale_price"] = parcelp->getArea(); // Sell for L$1 per square meter
+ body["auth_buyer_id"] = LLUUID::null; // To anyone
+
+ llinfos << "Sending parcel update to sell to anyone for L$1 via capability to: "
+ << mParcelUpdateCapUrl << llendl;
+ LLHTTPClient::post(mParcelUpdateCapUrl, body, new LLHTTPClient::Responder());
+
+ // clean up floater, and get out
+ cleanupAndClose();
+ }
}
diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h
index 1acc08057c..c599af782d 100644
--- a/indra/newview/llfloaterauction.h
+++ b/indra/newview/llfloaterauction.h
@@ -45,6 +45,8 @@
// Class which holds the functionality to start auctions.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLParcelSelection;
+class LLParcel;
+class LLViewerRegion;
class LLFloaterAuction : public LLFloater
{
@@ -62,16 +64,28 @@ private:
void initialize();
static void onClickSnapshot(void* data);
- static void onClickOK(void* data);
+ static void onClickResetParcel(void* data);
+ static void onClickSellToAnyone(void* data); // Sell to anyone clicked
+ bool onSellToAnyoneConfirmed(const LLSD& notification, const LLSD& response); // Sell confirmation clicked
+ static void onClickStartAuction(void* data);
/*virtual*/ BOOL postBuild();
+
+ void doResetParcel();
+ void doSellToAnyone();
+ void clearParcelAccessLists( LLParcel* parcel, LLViewerRegion* region );
+ void cleanupAndClose();
+
private:
+
LLTransactionID mTransactionID;
LLAssetID mImageID;
LLPointer<LLViewerTexture> mImage;
LLSafeHandle<LLParcelSelection> mParcelp;
S32 mParcelID;
LLHost mParcelHost;
+
+ std::string mParcelUpdateCapUrl; // "ParcelPropertiesUpdate" capability
};
diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp
index 890d863db7..ccfe7d4b64 100644
--- a/indra/newview/llfloateravatarpicker.cpp
+++ b/indra/newview/llfloateravatarpicker.cpp
@@ -69,7 +69,7 @@ LLFloaterAvatarPicker* LLFloaterAvatarPicker::show(callback_t callback,
// Default constructor
LLFloaterAvatarPicker::LLFloaterAvatarPicker(const LLSD& key)
: LLFloater(key),
- mResultsReturned(FALSE),
+ mNumResultsReturned(0),
mCallback(NULL),
mCallbackUserdata(NULL),
mNearMeListComplete(FALSE),
@@ -314,7 +314,7 @@ void LLFloaterAvatarPicker::find()
getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching"));
childSetEnabled("Select", FALSE);
- mResultsReturned = FALSE;
+ mNumResultsReturned = 0;
}
void LLFloaterAvatarPicker::setAllowMultiple(BOOL allow_multiple)
@@ -349,9 +349,10 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*
LLScrollListCtrl* search_results = floater->getChild<LLScrollListCtrl>("SearchResults");
// clear "Searching" label on first results
- search_results->deleteAllItems();
-
- floater->mResultsReturned = TRUE;
+ if (floater->mNumResultsReturned++ == 0)
+ {
+ search_results->deleteAllItems();
+ }
BOOL found_one = FALSE;
S32 num_new_rows = msg->getNumberOfBlocks("Data");
diff --git a/indra/newview/llfloateravatarpicker.h b/indra/newview/llfloateravatarpicker.h
index f3b9aefb9c..85aacb68a5 100644
--- a/indra/newview/llfloateravatarpicker.h
+++ b/indra/newview/llfloateravatarpicker.h
@@ -76,7 +76,7 @@ private:
virtual BOOL handleKeyHere(KEY key, MASK mask);
LLUUID mQueryID;
- BOOL mResultsReturned;
+ int mNumResultsReturned;
BOOL mNearMeListComplete;
BOOL mCloseOnSelect;
diff --git a/indra/newview/llfloaterbuycurrency.cpp b/indra/newview/llfloaterbuycurrency.cpp
index 5c4b8552a6..e160cd01be 100644
--- a/indra/newview/llfloaterbuycurrency.cpp
+++ b/indra/newview/llfloaterbuycurrency.cpp
@@ -175,48 +175,54 @@ void LLFloaterBuyCurrencyUI::updateUI()
bool hasError = mManager.hasError();
mManager.updateUI(!hasError && !mManager.buying());
- // section zero: title area
- {
- childSetVisible("info_buying", false);
- childSetVisible("info_cannot_buy", false);
- childSetVisible("info_need_more", false);
- if (hasError)
- {
- childSetVisible("info_cannot_buy", true);
- }
- else if (mHasTarget)
- {
- childSetVisible("info_need_more", true);
- }
- else
- {
- childSetVisible("info_buying", true);
- }
- }
-
- // error section
+ // hide most widgets - we'll turn them on as needed next
+ childHide("info_buying");
+ childHide("info_cannot_buy");
+ childHide("info_need_more");
+ childHide("purchase_warning_repurchase");
+ childHide("purchase_warning_notenough");
+ childHide("contacting");
+ childHide("buy_action");
+
if (hasError)
{
+ // display an error from the server
childHide("normal_background");
childShow("error_background");
+ childShow("info_cannot_buy");
childShow("cannot_buy_message");
- childShow("error_web");
+ childHide("balance_label");
+ childHide("balance_amount");
+ childHide("buying_label");
+ childHide("buying_amount");
+ childHide("total_label");
+ childHide("total_amount");
+
+ LLTextBox* message = getChild<LLTextBox>("cannot_buy_message");
+ if (message)
+ {
+ message->setText(mManager.errorMessage());
+ }
+
+ childSetVisible("error_web", !mManager.errorURI().empty());
}
else
{
+ // display the main Buy L$ interface
childShow("normal_background");
childHide("error_background");
childHide("cannot_buy_message");
childHide("error_web");
- }
- // currency
- childSetVisible("contacting", false);
- childSetVisible("buy_action", false);
- childSetVisible("buy_action_unknown", false);
-
- if (!hasError)
- {
+ if (mHasTarget)
+ {
+ childShow("info_need_more");
+ }
+ else
+ {
+ childShow("info_buying");
+ }
+
if (mManager.buying())
{
childSetVisible("contacting", true);
@@ -229,10 +235,6 @@ void LLFloaterBuyCurrencyUI::updateUI()
childSetTextArg("buy_action", "[NAME]", mTargetName);
childSetTextArg("buy_action", "[PRICE]", llformat("%d",mTargetPrice));
}
- else
- {
- childSetVisible("buy_action_unknown", true);
- }
}
S32 balance = gStatusBar->getBalance();
@@ -250,8 +252,6 @@ void LLFloaterBuyCurrencyUI::updateUI()
childShow("total_amount");
childSetTextArg("total_amount", "[AMT]", llformat("%d", total));
- childSetVisible("purchase_warning_repurchase", false);
- childSetVisible("purchase_warning_notenough", false);
if (mHasTarget)
{
if (total >= mTargetPrice)
@@ -264,24 +264,8 @@ void LLFloaterBuyCurrencyUI::updateUI()
}
}
}
- else
- {
- childHide("step_1");
- childHide("balance_label");
- childHide("balance_amount");
- childHide("buying_label");
- childHide("buying_amount");
- childHide("total_label");
- childHide("total_amount");
- childHide("purchase_warning_repurchase");
- childHide("purchase_warning_notenough");
- }
-
- childHide("getting_data");
- if (!mManager.canBuy() && !hasError)
- {
- childShow("getting_data");
- }
+
+ childSetVisible("getting_data", !mManager.canBuy() && !hasError);
}
void LLFloaterBuyCurrencyUI::onClickBuy()
@@ -297,7 +281,7 @@ void LLFloaterBuyCurrencyUI::onClickCancel()
void LLFloaterBuyCurrencyUI::onClickErrorWeb()
{
- LLWeb::loadURLExternal(getString("account_website"));
+ LLWeb::loadURLExternal(mManager.errorURI());
closeFloater();
}
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 0511ec1063..db20b11efd 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -39,7 +39,6 @@
// Viewer includes
#include "lljoystickbutton.h"
-#include "llfirsttimetipmanager.h"
#include "llviewercontrol.h"
#include "llbottomtray.h"
#include "llagent.h"
@@ -54,10 +53,6 @@ const F32 CAMERA_BUTTON_DELAY = 0.0f;
#define CONTROLS "controls"
-void show_tip(LLFirstTimeTipsManager::EFirstTimeTipType tipType, LLView* anchorView)
-{
- LLFirstTimeTipsManager::showTipsFor(tipType, anchorView, LLFirstTimeTipsManager::TPA_POS_RIGHT_ALIGN_TOP);
-}
//
// Member functions
//
@@ -88,7 +83,6 @@ void LLFloaterCamera::update()
{
ECameraControlMode mode = determineMode();
if (mode != mCurrMode) setMode(mode);
- show_tip(mMode2TipType[mode], this);
}
@@ -129,12 +123,11 @@ void LLFloaterCamera::onOpen(const LLSD& key)
anchor_panel, this,
getDockTongue(), LLDockControl::TOP));
- show_tip(mMode2TipType[mCurrMode], this);
}
LLFloaterCamera::LLFloaterCamera(const LLSD& val)
-: LLDockableFloater(NULL, false, val),
+: LLDockableFloater(NULL, val),
mCurrMode(CAMERA_CTRL_MODE_ORBIT),
mPrevMode(CAMERA_CTRL_MODE_ORBIT)
{
@@ -149,8 +142,6 @@ BOOL LLFloaterCamera::postBuild()
mZoom = getChild<LLJoystickCameraZoom>("zoom");
mTrack = getChild<LLJoystickCameraTrack>(PAN);
- initMode2TipTypeMap();
-
assignButton2Mode(CAMERA_CTRL_MODE_ORBIT, "orbit_btn");
assignButton2Mode(CAMERA_CTRL_MODE_PAN, "pan_btn");
assignButton2Mode(CAMERA_CTRL_MODE_FREE_CAMERA, "freecamera_btn");
@@ -236,7 +227,6 @@ void LLFloaterCamera::onClickBtn(ECameraControlMode mode)
switchMode(mode);
- show_tip(mMode2TipType[mode], this);
}
void LLFloaterCamera::assignButton2Mode(ECameraControlMode mode, const std::string& button_name)
@@ -247,15 +237,6 @@ void LLFloaterCamera::assignButton2Mode(ECameraControlMode mode, const std::stri
mMode2Button[mode] = button;
}
-void LLFloaterCamera::initMode2TipTypeMap()
-{
- mMode2TipType[CAMERA_CTRL_MODE_ORBIT] = LLFirstTimeTipsManager::FTT_CAMERA_ORBIT_MODE;
- mMode2TipType[CAMERA_CTRL_MODE_PAN] = LLFirstTimeTipsManager::FTT_CAMERA_PAN_MODE;
- mMode2TipType[CAMERA_CTRL_MODE_FREE_CAMERA] = LLFirstTimeTipsManager::FTT_CAMERA_FREE_MODE;
- mMode2TipType[CAMERA_CTRL_MODE_AVATAR_VIEW] = LLFirstTimeTipsManager::FTT_AVATAR_FREE_MODE;
-}
-
-
void LLFloaterCamera::updateState()
{
//updating buttons
@@ -305,7 +286,7 @@ void LLFloaterCamera::updateState()
//-------------LLFloaterCameraPresets------------------------
LLFloaterCameraPresets::LLFloaterCameraPresets(const LLSD& key):
-LLDockableFloater(NULL, false, key)
+LLDockableFloater(NULL, key)
{}
BOOL LLFloaterCameraPresets::postBuild()
@@ -330,17 +311,14 @@ void LLFloaterCameraPresets::onClickCameraPresets(LLUICtrl* ctrl, const LLSD& pa
if ("rear_view" == name)
{
- LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_REAR, ctrl);
gAgent.switchCameraPreset(CAMERA_PRESET_REAR_VIEW);
}
else if ("group_view" == name)
{
- LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_GROUP);
gAgent.switchCameraPreset(CAMERA_PRESET_GROUP_VIEW);
}
else if ("front_view" == name)
{
- LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_FRONT);
gAgent.switchCameraPreset(CAMERA_PRESET_FRONT_VIEW);
}
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 020cae7e82..69df861a20 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -35,8 +35,6 @@
#include "lldockablefloater.h"
-#include "llfirsttimetipmanager.h"
-
class LLJoystickCameraRotate;
class LLJoystickCameraZoom;
class LLJoystickCameraTrack;
@@ -105,13 +103,11 @@ private:
void onClickBtn(ECameraControlMode mode);
void assignButton2Mode(ECameraControlMode mode, const std::string& button_name);
- void initMode2TipTypeMap();
-
+
ECameraControlMode mPrevMode;
ECameraControlMode mCurrMode;
std::map<ECameraControlMode, LLButton*> mMode2Button;
- std::map<ECameraControlMode, LLFirstTimeTipsManager::EFirstTimeTipType> mMode2TipType;
};
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index e0fe87f9ae..1300103423 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -211,25 +211,16 @@ void LLFloaterGesture::buildGestureList()
std::string key_string = LLKeyboard::stringFromKey(gesture->mKey);
std::string buffer;
+ if (gesture->mKey == KEY_NONE)
{
- if (gesture->mKey == KEY_NONE)
- {
- buffer = "---";
- key_string = "~~~"; // alphabetize to end
- }
- else
- {
- if (gesture->mMask & MASK_CONTROL) buffer.append("Ctrl-");
- if (gesture->mMask & MASK_ALT) buffer.append("Alt-");
- if (gesture->mMask & MASK_SHIFT) buffer.append("Shift-");
- if ((gesture->mMask & (MASK_CONTROL|MASK_ALT|MASK_SHIFT)) &&
- (key_string[0] == '-' || key_string[0] == '='))
- {
- buffer.append(" ");
- }
- buffer.append(key_string);
- }
+ buffer = "---";
+ key_string = "~~~"; // alphabetize to end
}
+ else
+ {
+ buffer = LLKeyboard::stringFromAccelerator( gesture->mMask, gesture->mKey );
+ }
+
element["columns"][1]["column"] = "shortcut";
element["columns"][1]["value"] = buffer;
element["columns"][1]["font"]["name"] = "SANSSERIF";
diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp
index 3648898f28..45af515a86 100644
--- a/indra/newview/llfloatergroups.cpp
+++ b/indra/newview/llfloatergroups.cpp
@@ -89,15 +89,6 @@ BOOL LLFloaterGroupPicker::postBuild()
list_ctrl->setContextMenu(LLScrollListCtrl::MENU_GROUP);
}
- // Remove group "none" from list. Group "none" is added in init_group_list().
- // Some UI elements use group "none", we need to manually delete it here.
- // Group "none" ID is LLUUID:null.
- LLCtrlListInterface* group_list = list_ctrl->getListInterface();
- if(group_list)
- {
- group_list->selectByValue(LLUUID::null);
- group_list->operateOnSelection(LLCtrlListInterface::OP_DELETE);
- }
childSetAction("OK", onBtnOK, this);
@@ -110,6 +101,20 @@ BOOL LLFloaterGroupPicker::postBuild()
return TRUE;
}
+void LLFloaterGroupPicker::removeNoneOption()
+{
+ // Remove group "none" from list. Group "none" is added in init_group_list().
+ // Some UI elements use group "none", we need to manually delete it here.
+ // Group "none" ID is LLUUID:null.
+ LLCtrlListInterface* group_list = getChild<LLScrollListCtrl>("group list")->getListInterface();
+ if(group_list)
+ {
+ group_list->selectByValue(LLUUID::null);
+ group_list->operateOnSelection(LLCtrlListInterface::OP_DELETE);
+ }
+}
+
+
void LLFloaterGroupPicker::onBtnOK(void* userdata)
{
LLFloaterGroupPicker* self = (LLFloaterGroupPicker*)userdata;
diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h
index 489238356d..ce3a470a23 100644
--- a/indra/newview/llfloatergroups.h
+++ b/indra/newview/llfloatergroups.h
@@ -72,6 +72,9 @@ public:
static LLFloaterGroupPicker* findInstance(const LLSD& seed);
static LLFloaterGroupPicker* createInstance(const LLSD& seed);
+ // for cases like inviting avatar to group we don't want the none option
+ void removeNoneOption();
+
protected:
void ok();
static void onBtnOK(void* userdata);
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 3c3508b65c..9947cdc217 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -47,7 +47,7 @@
#include "llradiogroup.h"
#include "lluictrlfactory.h"
#include "llwindow.h"
-#include "llslider.h"
+#include "llsliderctrl.h"
LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key)
: LLFloater(key)
@@ -91,8 +91,8 @@ void LLFloaterHardwareSettings::refreshEnabledState()
{
S32 min_tex_mem = LLViewerTextureList::getMinVideoRamSetting();
S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting();
- getChild<LLSlider>("GrapicsCardTextureMemory")->setMinValue(min_tex_mem);
- getChild<LLSlider>("GrapicsCardTextureMemory")->setMinValue(max_tex_mem);
+ getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMinValue(min_tex_mem);
+ getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMaxValue(max_tex_mem);
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") ||
!gGLManager.mHasVertexBufferObject)
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 116286329c..d9cd929606 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -1491,7 +1491,8 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)
{
LLFolderViewFolder::Params p;
p.name = new_listener->getDisplayName();
- p.icon = new_listener->getIcon();
+ p.icon = LLUI::getUIImage("Inv_FolderClosed");
+ p.icon_open = LLUI::getUIImage("Inv_FolderOpen");
p.root = mFolders;
p.listener = new_listener;
LLFolderViewFolder* folderp = LLUICtrlFactory::create<LLFolderViewFolder>(p);
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index a378a511b5..c1031ee437 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -105,7 +105,7 @@ public:
// LLFloaterLand
//---------------------------------------------------------------------------
-void send_parcel_select_objects(S32 parcel_local_id, S32 return_type,
+void send_parcel_select_objects(S32 parcel_local_id, U32 return_type,
uuid_list_t* return_ids = NULL)
{
LLMessageSystem *msg = gMessageSystem;
@@ -123,7 +123,7 @@ void send_parcel_select_objects(S32 parcel_local_id, S32 return_type,
msg->addUUIDFast(_PREHASH_SessionID,gAgent.getSessionID());
msg->nextBlockFast(_PREHASH_ParcelData);
msg->addS32Fast(_PREHASH_LocalID, parcel_local_id);
- msg->addS32Fast(_PREHASH_ReturnType, return_type);
+ msg->addU32Fast(_PREHASH_ReturnType, return_type);
// Throw all return ids into the packet.
// TODO: Check for too many ids.
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index eac1b65f7d..0c9a759f32 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -30,7 +30,6 @@
* $/LicenseInfo$
*/
-#include <string>
#include "llviewerprecompiledheaders.h"
// self include
@@ -52,13 +51,6 @@
#include "llviewermenu.h"
//
-// Constants
-//
-const F32 MAP_SCALE_MIN = 64;
-const F32 MAP_SCALE_MID = 172;
-const F32 MAP_SCALE_MAX = 512;
-
-//
// Member functions
//
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 0330a8c692..e15fdd3e35 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -1522,6 +1522,7 @@ bool LLPanelEstateInfo::addAllowedGroup(const LLSD& notification, const LLSD& re
LLFloaterGroupPicker* widget = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
if (widget)
{
+ widget->removeNoneOption();
widget->setSelectGroupCallback(boost::bind(&LLPanelEstateInfo::addAllowedGroup2, this, _1));
if (parent_floater)
{
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index 1ec869da73..70a3ad5252 100644
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -143,6 +143,7 @@ BOOL LLFloaterReporter::postBuild()
LLViewerRegion *regionp = gAgent.getRegion();
if (regionp)
{
+ childSetText("sim_field", regionp->getName());
pos -= regionp->getOriginGlobal();
}
setPosBox(pos);
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 43d31aa30a..2d8ccd1aef 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -47,7 +47,7 @@
#include "llviewerwindow.h"
// defined in llfloaterland.cpp
-void send_parcel_select_objects(S32 parcel_local_id, S32 return_type,
+void send_parcel_select_objects(S32 parcel_local_id, U32 return_type,
uuid_list_t* return_ids = NULL);
enum Badge { BADGE_OK, BADGE_NOTE, BADGE_WARN, BADGE_ERROR };
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 320647ff1a..e00b352c9b 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -417,6 +417,11 @@ void LLFloaterTools::refresh()
LLResMgr::getInstance()->getIntegerString(prim_count_string, LLSelectMgr::getInstance()->getSelection()->getObjectCount());
childSetTextArg("prim_count", "[COUNT]", prim_count_string);
+ // disable the object and prim counts if nothing selected
+ bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty();
+ childSetEnabled("obj_count", have_selection);
+ childSetEnabled("prim_count", have_selection);
+
// Refresh child tabs
mPanelPermissions->refresh();
mPanelObject->refresh();
@@ -1060,7 +1065,7 @@ void LLFloaterTools::getMediaState()
return;
}
- bool editable = (first_object->permModify());// && selectedMediaEditable());
+ bool editable = (first_object->permModify() || selectedMediaEditable());
// Media settings
U8 has_media = (U8)0;
@@ -1114,7 +1119,7 @@ void LLFloaterTools::getMediaState()
// Media data is valid
if(media_data_get!=default_media_data)
{
- //TODO: get Meida title
+ //TODO: get media title
//media_title = media_data_get->getTile();
//LLFloaterMediaSettings::getInstance()->mIdenticalValidMedia = true;
media_title = media_data_get.getHomeURL();
@@ -1149,7 +1154,7 @@ void LLFloaterTools::getMediaState()
// Media data is valid
if(media_data_get!=default_media_data)
{
- //TODO: get Meida title
+ //TODO: get media title
//media_title = media_data_get->getTile();
media_title = media_data_get.getHomeURL();
}
diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h
index ffccf93943..59acef6071 100644
--- a/indra/newview/llfloatertools.h
+++ b/indra/newview/llfloatertools.h
@@ -114,7 +114,6 @@ private:
void refreshMedia();
void getMediaState();
void updateMediaSettings();
- void getMeidaState();
static bool deleteMediaConfirm(const LLSD& notification, const LLSD& response);
static bool multipleFacesSelectedConfirm(const LLSD& notification, const LLSD& response);
static void setObjectType( LLPCode pcode );
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index 98ca33c9cc..de0b995f8f 100644
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -56,8 +56,13 @@
#include "llfilepicker.h"
#include "lldraghandle.h"
#include "lllayoutstack.h"
+#include "lltooltip.h"
#include "llviewermenu.h"
#include "llrngwriter.h"
+#include "llfloater.h" // superclass
+#include "llfloaterreg.h"
+#include "llscrollcontainer.h" // scroll container for overlapping elements
+#include "lllivefile.h" // live file poll/stat/reload
// Boost (for linux/unix command-line execv)
#include <boost/tokenizer.hpp>
@@ -65,6 +70,8 @@
// External utility
#include <string>
+#include <list>
+#include <map>
#if LL_DARWIN
#include <CoreFoundation/CFURL.h>
@@ -74,6 +81,7 @@
static const S32 PRIMARY_FLOATER = 1;
static const S32 SECONDARY_FLOATER = 2;
+class LLOverlapPanel;
static LLDefaultChildRegistry::Register<LLOverlapPanel> register_overlap_panel("overlap_panel");
static std::string get_xui_dir()
@@ -82,6 +90,134 @@ static std::string get_xui_dir()
return gDirUtilp->getSkinBaseDir() + delim + "default" + delim + "xui" + delim;
}
+// Forward declarations to avoid header dependencies
+class LLEventTimer;
+class LLColor;
+class LLScrollListCtrl;
+class LLComboBox;
+class LLButton;
+class LLLineEditor;
+class LLXmlTreeNode;
+class LLFloaterUIPreview;
+class LLFadeEventTimer;
+
+class LLLocalizationResetForcer;
+class LLGUIPreviewLiveFile;
+class LLFadeEventTimer;
+class LLPreviewedFloater;
+
+// Implementation of custom overlapping element display panel
+class LLOverlapPanel : public LLPanel
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Params() {}
+ };
+ LLOverlapPanel(Params p = Params()) : LLPanel(p),
+ mSpacing(10),
+ // mClickedElement(NULL),
+ mLastClickedElement(NULL)
+ {
+ mOriginalWidth = getRect().getWidth();
+ mOriginalHeight = getRect().getHeight();
+ }
+ virtual void draw();
+
+ typedef std::map<LLView*, std::list<LLView*> > OverlapMap;
+ OverlapMap mOverlapMap; // map, of XUI element to a list of XUI elements it overlaps
+
+ // LLView *mClickedElement;
+ LLView *mLastClickedElement;
+ int mOriginalWidth, mOriginalHeight, mSpacing;
+};
+
+
+class LLFloaterUIPreview : public LLFloater
+{
+public:
+ // Setup
+ LLFloaterUIPreview(const LLSD& key);
+ virtual ~LLFloaterUIPreview();
+
+ std::string getLocStr(S32 ID); // fetches the localization string based on what is selected in the drop-down menu
+ void displayFloater(BOOL click, S32 ID, bool save = false); // needs to be public so live file can call it when it finds an update
+
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onClose(bool app_quitting);
+
+ void refreshList(); // refresh list (empty it out and fill it up from scratch)
+ void addFloaterEntry(const std::string& path); // add a single file's entry to the list of floaters
+
+ static BOOL containerType(LLView* viewp); // check if the element is a container type and tree traverses need to look at its children
+
+public:
+ LLPreviewedFloater* mDisplayedFloater; // the floater which is currently being displayed
+ LLPreviewedFloater* mDisplayedFloater_2; // the floater which is currently being displayed
+ LLGUIPreviewLiveFile* mLiveFile; // live file for checking for updates to the currently-displayed XML file
+ LLOverlapPanel* mOverlapPanel; // custom overlapping elements panel
+ // BOOL mHighlightingDiffs; // bool for whether localization diffs are being highlighted or not
+ BOOL mHighlightingOverlaps; // bool for whether overlapping elements are being highlighted
+
+ // typedef std::map<std::string,std::pair<std::list<std::string>,std::list<std::string> > > DiffMap; // this version copies the lists etc., and thus is bad memory-wise
+ typedef std::list<std::string> StringList;
+ typedef boost::shared_ptr<StringList> StringListPtr;
+ typedef std::map<std::string, std::pair<StringListPtr,StringListPtr> > DiffMap;
+ DiffMap mDiffsMap; // map, of filename to pair of list of changed element paths and list of errors
+
+private:
+ // XUI elements for this floater
+ LLScrollListCtrl* mFileList; // scroll list control for file list
+ LLLineEditor* mEditorPathTextBox; // text field for path to editor executable
+ LLLineEditor* mEditorArgsTextBox; // text field for arguments to editor executable
+ LLLineEditor* mDiffPathTextBox; // text field for path to diff file
+ LLButton* mDisplayFloaterBtn; // button to display primary floater
+ LLButton* mDisplayFloaterBtn_2; // button to display secondary floater
+ LLButton* mEditFloaterBtn; // button to edit floater
+ LLButton* mExecutableBrowseButton; // button to browse for executable
+ LLButton* mCloseOtherButton; // button to close primary displayed floater
+ LLButton* mCloseOtherButton_2; // button to close secondary displayed floater
+ LLButton* mDiffBrowseButton; // button to browse for diff file
+ LLButton* mToggleHighlightButton; // button to toggle highlight of files/elements with diffs
+ LLButton* mToggleOverlapButton; // button to togle overlap panel/highlighting
+ LLComboBox* mLanguageSelection; // combo box for primary language selection
+ LLComboBox* mLanguageSelection_2; // combo box for secondary language selection
+ LLScrollContainer* mOverlapScrollView; // overlapping elements scroll container
+ S32 mLastDisplayedX, mLastDisplayedY; // stored position of last floater so the new one opens up in the same place
+ std::string mDelim; // the OS-specific delimiter character (/ or \) (*TODO: this shouldn't be needed, right?)
+
+ std::string mSavedEditorPath; // stored editor path so closing this floater doesn't reset it
+ std::string mSavedEditorArgs; // stored editor args so closing this floater doesn't reset it
+ std::string mSavedDiffPath; // stored diff file path so closing this floater doesn't reset it
+
+ // Internal functionality
+ static void popupAndPrintWarning(std::string& warning); // pop up a warning
+ std::string getLocalizedDirectory(); // build and return the path to the XUI directory for the currently-selected localization
+ void scanDiffFile(LLXmlTreeNode* file_node); // scan a given XML node for diff entries and highlight them in its associated file
+ void highlightChangedElements(); // look up the list of elements to highlight and highlight them in the current floater
+ void highlightChangedFiles(); // look up the list of changed files to highlight and highlight them in the scroll list
+ void findOverlapsInChildren(LLView* parent); // fill the map below with element overlap information
+ static BOOL overlapIgnorable(LLView* viewp); // check it the element can be ignored for overlap/localization purposes
+
+ // check if two elements overlap using their rectangles
+ // used instead of llrect functions because by adding a few pixels of leeway I can cut down drastically on the number of overlaps
+ BOOL elementOverlap(LLView* view1, LLView* view2);
+
+ // Button/drop-down action listeners (self explanatory)
+ void onClickDisplayFloater(S32 id);
+ void onClickSaveFloater(S32 id);
+ void onClickSaveAll(S32 id);
+ void onClickEditFloater();
+ void onClickBrowseForEditor();
+ void onClickBrowseForDiffs();
+ void onClickToggleDiffHighlighting();
+ void onClickToggleOverlapping();
+ void onClickCloseDisplayedFloater(S32 id);
+ void onLanguageComboSelect(LLUICtrl* ctrl);
+ void onClickExportSchema();
+ void onClickShowRectangles(const LLSD& data);
+};
+
//----------------------------------------------------------------------------
// Local class declarations
// Reset object to ensure that when we change the current language setting for preview purposes,
@@ -137,11 +273,17 @@ public:
}
virtual void draw();
BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
+ BOOL handleToolTip(S32 x, S32 y, MASK mask);
BOOL selectElement(LLView* parent, int x, int y, int depth); // select element to display its overlappers
LLFloaterUIPreview* mFloaterUIPreview;
+
+ // draw widget outlines
+ static bool sShowRectangles;
};
+bool LLPreviewedFloater::sShowRectangles = false;
+
//----------------------------------------------------------------------------
// Localization reset forcer -- ensures that when localization is temporarily changed for previewed floater, it is reset
@@ -257,7 +399,6 @@ LLFloaterUIPreview::LLFloaterUIPreview(const LLSD& key)
mHighlightingOverlaps(FALSE),
mLastDisplayedX(0),
mLastDisplayedY(0)
-
{
// called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ui_preview.xml");
}
@@ -317,6 +458,8 @@ BOOL LLFloaterUIPreview::postBuild()
main_panel_tmp->getChild<LLButton>("save_all_floaters")->setClickedCallback(boost::bind(&LLFloaterUIPreview::onClickSaveAll, this, PRIMARY_FLOATER));
getChild<LLButton>("export_schema")->setClickedCallback(boost::bind(&LLFloaterUIPreview::onClickExportSchema, this));
+ getChild<LLUICtrl>("show_rectangles")->setCommitCallback(
+ boost::bind(&LLFloaterUIPreview::onClickShowRectangles, this, _2));
// get pointers to text fields
mEditorPathTextBox = editor_panel_tmp->getChild<LLLineEditor>("executable_path_field");
@@ -438,6 +581,10 @@ void LLFloaterUIPreview::onClickExportSchema()
gViewerWindow->setCursor(UI_CURSOR_ARROW);
}
+void LLFloaterUIPreview::onClickShowRectangles(const LLSD& data)
+{
+ LLPreviewedFloater::sShowRectangles = data.asBoolean();
+}
// Close click handler -- delete my displayed floater if it exists
void LLFloaterUIPreview::onClose(bool app_quitting)
@@ -1357,6 +1504,73 @@ void LLFloaterUIPreview::onClickCloseDisplayedFloater(S32 caller_id)
}
+void append_view_tooltip(LLView* tooltip_view, std::string *tooltip_msg)
+{
+ LLRect rect = tooltip_view->getRect();
+ LLRect parent_rect = tooltip_view->getParent()->getRect();
+ S32 left = rect.mLeft;
+ // invert coordinate system for XUI top-left layout
+ S32 top = parent_rect.getHeight() - rect.mTop;
+ if (!tooltip_msg->empty())
+ {
+ tooltip_msg->append("\n");
+ }
+ std::string msg = llformat("%s %d, %d (%d x %d)",
+ tooltip_view->getName().c_str(),
+ left,
+ top,
+ rect.getWidth(),
+ rect.getHeight() );
+ tooltip_msg->append( msg );
+}
+
+BOOL LLPreviewedFloater::handleToolTip(S32 x, S32 y, MASK mask)
+{
+ if (!sShowRectangles)
+ {
+ return LLFloater::handleToolTip(x, y, mask);
+ }
+
+ S32 screen_x, screen_y;
+ localPointToScreen(x, y, &screen_x, &screen_y);
+ std::string tooltip_msg;
+ LLView* tooltip_view = this;
+ LLView::tree_iterator_t end_it = endTreeDFS();
+ for (LLView::tree_iterator_t it = beginTreeDFS(); it != end_it; ++it)
+ {
+ LLView* viewp = *it;
+ LLRect screen_rect;
+ viewp->localRectToScreen(viewp->getLocalRect(), &screen_rect);
+ if (!(viewp->getVisible()
+ && screen_rect.pointInRect(screen_x, screen_y)))
+ {
+ it.skipDescendants();
+ }
+ // only report xui names for LLUICtrls, not the various container LLViews
+
+ else if (dynamic_cast<LLUICtrl*>(viewp))
+ {
+ // if we are in a new part of the tree (not a descendent of current tooltip_view)
+ // then push the results for tooltip_view and start with a new potential view
+ // NOTE: this emulates visiting only the leaf nodes that meet our criteria
+
+ if (tooltip_view != this
+ && !viewp->hasAncestor(tooltip_view))
+ {
+ append_view_tooltip(tooltip_view, &tooltip_msg);
+ }
+ tooltip_view = viewp;
+ }
+ }
+
+ append_view_tooltip(tooltip_view, &tooltip_msg);
+
+ LLToolTipMgr::instance().show(LLToolTip::Params()
+ .message(tooltip_msg)
+ .max_width(400));
+ return TRUE;
+}
+
BOOL LLPreviewedFloater::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
selectElement(this,x,y,0);
@@ -1415,7 +1629,22 @@ void LLPreviewedFloater::draw()
{
LLView::sDrawPreviewHighlights = TRUE;
}
+
+ // If we're looking for truncations, draw debug rects for the displayed
+ // floater only.
+ bool old_debug_rects = LLView::sDebugRects;
+ bool old_show_names = LLView::sDebugRectsShowNames;
+ if (sShowRectangles)
+ {
+ LLView::sDebugRects = true;
+ LLView::sDebugRectsShowNames = false;
+ }
+
LLFloater::draw();
+
+ LLView::sDebugRects = old_debug_rects;
+ LLView::sDebugRectsShowNames = old_show_names;
+
if(mFloaterUIPreview->mHighlightingOverlaps)
{
LLView::sDrawPreviewHighlights = FALSE;
@@ -1635,3 +1864,9 @@ void LLOverlapPanel::draw()
mLastClickedElement = LLView::sPreviewClickedElement;
}
}
+
+void LLFloaterUIPreviewUtil::registerFloater()
+{
+ LLFloaterReg::add("ui_preview", "floater_ui_preview.xml",
+ &LLFloaterReg::build<LLFloaterUIPreview>);
+}
diff --git a/indra/newview/llfloateruipreview.h b/indra/newview/llfloateruipreview.h
index 2a98c90727..2a31b2df59 100644
--- a/indra/newview/llfloateruipreview.h
+++ b/indra/newview/llfloateruipreview.h
@@ -37,137 +37,10 @@
#ifndef LL_LLUIPREVIEW_H
#define LL_LLUIPREVIEW_H
-#include "llfloater.h" // superclass
-#include "llscrollcontainer.h" // scroll container for overlapping elements
-#include "lllivefile.h" // live file poll/stat/reload
-#include <list>
-#include <map>
-
-// Forward declarations to avoid header dependencies
-class LLEventTimer;
-class LLColor;
-class LLScrollListCtrl;
-class LLComboBox;
-class LLButton;
-class LLLineEditor;
-class LLXmlTreeNode;
-class LLFloaterUIPreview;
-class LLFadeEventTimer;
-
-class LLLocalizationResetForcer;
-class LLGUIPreviewLiveFile;
-class LLFadeEventTimer;
-class LLPreviewedFloater;
-
-// Implementation of custom overlapping element display panel
-class LLOverlapPanel : public LLPanel
+namespace LLFloaterUIPreviewUtil
{
-public:
- struct Params : public LLInitParam::Block<Params, LLPanel::Params>
- {
- Params() {}
- };
- LLOverlapPanel(Params p = Params()) : LLPanel(p),
- mSpacing(10),
- // mClickedElement(NULL),
- mLastClickedElement(NULL)
- {
- mOriginalWidth = getRect().getWidth();
- mOriginalHeight = getRect().getHeight();
- }
- virtual void draw();
-
- typedef std::map<LLView*, std::list<LLView*> > OverlapMap;
- OverlapMap mOverlapMap; // map, of XUI element to a list of XUI elements it overlaps
-
- // LLView *mClickedElement;
- LLView *mLastClickedElement;
- int mOriginalWidth, mOriginalHeight, mSpacing;
-};
-
-
-class LLFloaterUIPreview : public LLFloater
-{
-public:
- // Setup
- LLFloaterUIPreview(const LLSD& key);
- virtual ~LLFloaterUIPreview();
-
- std::string getLocStr(S32 ID); // fetches the localization string based on what is selected in the drop-down menu
- void displayFloater(BOOL click, S32 ID, bool save = false); // needs to be public so live file can call it when it finds an update
-
- /*virtual*/ BOOL postBuild();
- /*virtual*/ void onClose(bool app_quitting);
-
- void refreshList(); // refresh list (empty it out and fill it up from scratch)
- void addFloaterEntry(const std::string& path); // add a single file's entry to the list of floaters
-
- static BOOL containerType(LLView* viewp); // check if the element is a container type and tree traverses need to look at its children
-
-public:
- LLPreviewedFloater* mDisplayedFloater; // the floater which is currently being displayed
- LLPreviewedFloater* mDisplayedFloater_2; // the floater which is currently being displayed
- LLGUIPreviewLiveFile* mLiveFile; // live file for checking for updates to the currently-displayed XML file
- LLOverlapPanel* mOverlapPanel; // custom overlapping elements panel
- // BOOL mHighlightingDiffs; // bool for whether localization diffs are being highlighted or not
- BOOL mHighlightingOverlaps; // bool for whether overlapping elements are being highlighted
-
- // typedef std::map<std::string,std::pair<std::list<std::string>,std::list<std::string> > > DiffMap; // this version copies the lists etc., and thus is bad memory-wise
- typedef std::list<std::string> StringList;
- typedef boost::shared_ptr<StringList> StringListPtr;
- typedef std::map<std::string, std::pair<StringListPtr,StringListPtr> > DiffMap;
- DiffMap mDiffsMap; // map, of filename to pair of list of changed element paths and list of errors
-
-private:
- // XUI elements for this floater
- LLScrollListCtrl* mFileList; // scroll list control for file list
- LLLineEditor* mEditorPathTextBox; // text field for path to editor executable
- LLLineEditor* mEditorArgsTextBox; // text field for arguments to editor executable
- LLLineEditor* mDiffPathTextBox; // text field for path to diff file
- LLButton* mDisplayFloaterBtn; // button to display primary floater
- LLButton* mDisplayFloaterBtn_2; // button to display secondary floater
- LLButton* mEditFloaterBtn; // button to edit floater
- LLButton* mExecutableBrowseButton; // button to browse for executable
- LLButton* mCloseOtherButton; // button to close primary displayed floater
- LLButton* mCloseOtherButton_2; // button to close secondary displayed floater
- LLButton* mDiffBrowseButton; // button to browse for diff file
- LLButton* mToggleHighlightButton; // button to toggle highlight of files/elements with diffs
- LLButton* mToggleOverlapButton; // button to togle overlap panel/highlighting
- LLComboBox* mLanguageSelection; // combo box for primary language selection
- LLComboBox* mLanguageSelection_2; // combo box for secondary language selection
- LLScrollContainer* mOverlapScrollView; // overlapping elements scroll container
- S32 mLastDisplayedX, mLastDisplayedY; // stored position of last floater so the new one opens up in the same place
- std::string mDelim; // the OS-specific delimiter character (/ or \) (*TODO: this shouldn't be needed, right?)
-
- std::string mSavedEditorPath; // stored editor path so closing this floater doesn't reset it
- std::string mSavedEditorArgs; // stored editor args so closing this floater doesn't reset it
- std::string mSavedDiffPath; // stored diff file path so closing this floater doesn't reset it
-
- // Internal functionality
- static void popupAndPrintWarning(std::string& warning); // pop up a warning
- std::string getLocalizedDirectory(); // build and return the path to the XUI directory for the currently-selected localization
- void scanDiffFile(LLXmlTreeNode* file_node); // scan a given XML node for diff entries and highlight them in its associated file
- void highlightChangedElements(); // look up the list of elements to highlight and highlight them in the current floater
- void highlightChangedFiles(); // look up the list of changed files to highlight and highlight them in the scroll list
- void findOverlapsInChildren(LLView* parent); // fill the map below with element overlap information
- static BOOL overlapIgnorable(LLView* viewp); // check it the element can be ignored for overlap/localization purposes
-
- // check if two elements overlap using their rectangles
- // used instead of llrect functions because by adding a few pixels of leeway I can cut down drastically on the number of overlaps
- BOOL elementOverlap(LLView* view1, LLView* view2);
+ void registerFloater();
+}
- // Button/drop-down action listeners (self explanatory)
- void onClickDisplayFloater(S32 id);
- void onClickSaveFloater(S32 id);
- void onClickSaveAll(S32 id);
- void onClickEditFloater();
- void onClickBrowseForEditor();
- void onClickBrowseForDiffs();
- void onClickToggleDiffHighlighting();
- void onClickToggleOverlapping();
- void onClickCloseDisplayedFloater(S32 id);
- void onLanguageComboSelect(LLUICtrl* ctrl);
- void onClickExportSchema();
-};
#endif // LL_LLUIPREVIEW_H
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index d653d44f8c..b7e8835fb8 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -49,6 +49,7 @@
#include "llfirstuse.h"
#include "llfloaterreg.h" // getTypedInstance()
#include "llfocusmgr.h"
+#include "llinventorymodel.h"
#include "lllandmarklist.h"
#include "lllineeditor.h"
#include "llregionhandle.h"
@@ -57,7 +58,7 @@
#include "lltabcontainer.h"
#include "lltextbox.h"
#include "lltracker.h"
-#include "llinventorymodel.h"
+#include "lltrans.h"
#include "llviewerinventory.h" // LLViewerInventoryItem
#include "llviewermenu.h"
#include "llviewerregion.h"
@@ -151,7 +152,6 @@ LLFloaterWorldMap::LLFloaterWorldMap(const LLSD& key)
mFriendObserver(NULL),
mCompletingRegionName(""),
mWaitingForTracker(FALSE),
- mExactMatch(FALSE),
mIsClosing(FALSE),
mSetToUserPosition(TRUE),
mTrackedLocation(0,0,0),
@@ -903,7 +903,6 @@ void LLFloaterWorldMap::clearLocationSelection(BOOL clear_ui)
}
LLWorldMap::getInstance()->mIsTrackingCommit = FALSE;
mCompletingRegionName = "";
- mExactMatch = FALSE;
}
@@ -1163,7 +1162,6 @@ void LLFloaterWorldMap::onLocationCommit()
LLStringUtil::toLower(str);
mCompletingRegionName = str;
LLWorldMap::getInstance()->mIsTrackingCommit = TRUE;
- mExactMatch = FALSE;
if (str.length() >= 3)
{
LLWorldMap::getInstance()->sendNamedRegionRequest(str);
@@ -1418,11 +1416,10 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("search_results");
list->operateOnAll(LLCtrlListInterface::OP_DELETE);
- LLSD selected_value = list->getSelectedValue();
-
S32 name_length = mCompletingRegionName.length();
- BOOL match_found = FALSE;
+ LLSD match;
+
S32 num_results = 0;
std::map<U64, LLSimInfo*>::const_iterator it;
for (it = LLWorldMap::getInstance()->mSimInfoMap.begin(); it != LLWorldMap::getInstance()->mSimInfoMap.end(); ++it)
@@ -1434,15 +1431,11 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
if (sim_name_lower.substr(0, name_length) == mCompletingRegionName)
{
- if (LLWorldMap::getInstance()->mIsTrackingCommit)
+ if (sim_name_lower == mCompletingRegionName)
{
- if (sim_name_lower == mCompletingRegionName)
- {
- selected_value = sim_name;
- match_found = TRUE;
- }
+ match = sim_name;
}
-
+
LLSD value;
value["id"] = sim_name;
value["columns"][0]["column"] = "sim_name";
@@ -1451,29 +1444,24 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
num_results++;
}
}
-
- list->selectByValue(selected_value);
if (found_null_sim)
{
mCompletingRegionName = "";
}
- if (match_found)
- {
- mExactMatch = TRUE;
- childSetFocus("search_results");
- onCommitSearchResult();
- }
- else if (!mExactMatch && num_results > 0)
+ // if match found, highlight it and go
+ if (!match.isUndefined())
{
- list->selectFirstItem(); // select first item by default
+ list->selectByValue(match);
childSetFocus("search_results");
onCommitSearchResult();
}
- else if (num_results == 0)
+
+ // if we found nothing, say "none"
+ if (num_results == 0)
{
- list->setCommentText(std::string("None found."));
+ list->setCommentText(LLTrans::getString("worldmap_results_none_found"));
list->operateOnAll(LLCtrlListInterface::OP_DESELECT);
}
}
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h
index 6d5b7543d4..20a8e6d321 100644
--- a/indra/newview/llfloaterworldmap.h
+++ b/indra/newview/llfloaterworldmap.h
@@ -174,7 +174,6 @@ protected:
std::string mCompletingRegionName;
std::string mLastRegionName;
BOOL mWaitingForTracker;
- BOOL mExactMatch;
BOOL mIsClosing;
BOOL mSetToUserPosition;
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index ee5fba5ace..2b1dd83d72 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -125,6 +125,8 @@ LLFolderViewItem::LLFolderViewItem(LLFolderViewItem::Params p)
mLabel(p.name),
mRoot(p.root),
mCreationDate(p.creation_date),
+ mIcon(p.icon),
+ mIconOpen(p.icon_open),
mListener(p.listener),
mArrowImage(p.folder_arrow_image),
mBoxImage(p.selection_image)
@@ -598,6 +600,11 @@ BOOL LLFolderViewItem::handleRightMouseDown( S32 x, S32 y, MASK mask )
BOOL LLFolderViewItem::handleMouseDown( S32 x, S32 y, MASK mask )
{
+ if (LLView::childrenHandleMouseDown(x, y, mask))
+ {
+ return TRUE;
+ }
+
// No handler needed for focus lost since this class has no
// state that depends on it.
gFocusMgr.setMouseCapture( this );
@@ -717,6 +724,11 @@ BOOL LLFolderViewItem::handleScrollWheel(S32 x, S32 y, S32 clicks)
BOOL LLFolderViewItem::handleMouseUp( S32 x, S32 y, MASK mask )
{
+ if (LLView::childrenHandleMouseUp(x, y, mask))
+ {
+ return TRUE;
+ }
+
// if mouse hasn't moved since mouse down...
if ( pointInView(x, y) && mSelectPending )
{
@@ -893,11 +905,15 @@ void LLFolderViewItem::draw()
mDragAndDropTarget = FALSE;
}
-
- if(mIcon)
- {
- mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ // First case is used for open folders
+ if (!mIconOpen.isNull() && (llabs(mControlLabelRotation) > 80))
+ {
+ mIconOpen->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
}
+ else if(mIcon)
+ {
+ mIcon->draw(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight());
+ }
if (!mLabel.empty())
{
diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h
index e9aab560c8..09c97662d9 100644
--- a/indra/newview/llfolderviewitem.h
+++ b/indra/newview/llfolderviewitem.h
@@ -96,6 +96,7 @@ public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
Optional<LLUIImage*> icon;
+ Optional<LLUIImage*> icon_open; // used for folders
Optional<LLFolderView*> root;
Optional<LLFolderViewEventListener*> listener;
@@ -143,6 +144,7 @@ protected:
std::string mLabelSuffix;
LLUIImagePtr mIcon;
std::string mStatusText;
+ LLUIImagePtr mIconOpen;
BOOL mHasVisibleChildren;
S32 mIndentation;
S32 mNumDescendantsSelected;
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
index 4caef8e000..ae869d9ac4 100644
--- a/indra/newview/llgrouplist.cpp
+++ b/indra/newview/llgrouplist.cpp
@@ -315,7 +315,7 @@ void LLGroupListItem::setActive(bool active)
// rebuild the text. This will cause problems if the text contains
// hyperlinks, as their styles will be wrong.
std::string text = mGroupNameBox->getText();
- mGroupNameBox->clear();
+ mGroupNameBox->setText(LLStringUtil::null);// *HACK: replace with clear() when it's fixed.
mGroupNameBox->appendText(text, false, style_params);
}
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 3e449e2c82..680106c7bb 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -40,9 +40,11 @@
#include "llbottomtray.h"
#include "llchannelmanager.h"
#include "llchiclet.h"
+#include "llfloaterchat.h"
#include "llfloaterreg.h"
#include "llimview.h"
#include "lllineeditor.h"
+#include "lllogchat.h"
#include "llpanelimcontrolpanel.h"
#include "llscreenchannel.h"
#include "lltrans.h"
@@ -90,16 +92,6 @@ void LLIMFloater::onClose(bool app_quitting)
gIMMgr->removeSession(mSessionID);
}
-void LLIMFloater::setMinimized(BOOL minimize)
-{
- if(!isDocked())
- {
- setVisible(!minimize);
- }
-
- LLFloater::setMinimized(minimize);
-}
-
/* static */
void LLIMFloater::newIMCallback(const LLSD& data){
@@ -203,6 +195,12 @@ BOOL LLIMFloater::postBuild()
setTitle(LLIMModel::instance().getName(mSessionID));
setDocked(true);
+ if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
+ {
+ LLLogChat::loadHistory(getTitle(), &chatFromLogFile, (void *)this);
+ }
+
+
return LLDockableFloater::postBuild();
}
@@ -316,13 +314,19 @@ void LLIMFloater::setVisible(BOOL visible)
bool LLIMFloater::toggle(const LLUUID& session_id)
{
LLIMFloater* floater = LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
- if (floater && floater->getVisible())
+ if (floater && floater->getVisible() && floater->isDocked())
{
// clicking on chiclet to close floater just hides it to maintain existing
// scroll/text entry state
floater->setVisible(false);
return false;
}
+ else if(floater && !floater->isDocked())
+ {
+ floater->setVisible(TRUE);
+ floater->setFocus(TRUE);
+ return true;
+ }
else
{
// ensure the list of messages is updated when floater is made visible
@@ -419,3 +423,37 @@ void LLIMFloater::setTyping(BOOL typing)
{
}
+void LLIMFloater::chatFromLogFile(LLLogChat::ELogLineType type, std::string line, void* userdata)
+{
+ if (!userdata) return;
+
+ LLIMFloater* self = (LLIMFloater*) userdata;
+ std::string message = line;
+ S32 im_log_option = gSavedPerAccountSettings.getS32("IMLogOptions");
+ switch (type)
+ {
+ case LLLogChat::LOG_EMPTY:
+ // add warning log enabled message
+ if (im_log_option!=LOG_CHAT)
+ {
+ message = LLTrans::getString("IM_logging_string");
+ }
+ break;
+ case LLLogChat::LOG_END:
+ // add log end message
+ if (im_log_option!=LOG_CHAT)
+ {
+ message = LLTrans::getString("IM_logging_string");
+ }
+ break;
+ case LLLogChat::LOG_LINE:
+ // just add normal lines from file
+ break;
+ default:
+ // nothing
+ break;
+ }
+
+ self->mHistoryEditor->appendText(message, true, LLStyle::Params().color(LLUIColorTable::instance().getColor("ChatHistoryTextColor")));
+ self->mHistoryEditor->blockUndo();
+}
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index f85a941be3..5276013568 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -34,6 +34,7 @@
#define LL_IMFLOATER_H
#include "lldockablefloater.h"
+#include "lllogchat.h"
class LLLineEditor;
class LLPanelChatControlPanel;
@@ -59,7 +60,6 @@ public:
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
// override LLFloater's minimization according to EXT-1216
- /*virtual*/ void setMinimized(BOOL minimize);
// Make IM conversion visible and update the message history
static LLIMFloater* show(const LLUUID& session_id);
@@ -91,7 +91,10 @@ private:
static void* createPanelGroupControl(void* userdata);
// gets a rect that bounds possible positions for the LLIMFloater on a screen (EXT-1111)
void getAllowedRect(LLRect& rect);
-
+
+ static void chatFromLogFile(LLLogChat::ELogLineType type, std::string line, void* userdata);
+
+
LLPanelChatControlPanel* mControlPanel;
LLUUID mSessionID;
S32 mLastMessageIndex;
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 4435bba0ed..0ff3bd24e9 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -1013,33 +1013,28 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,
(void *)this);
}
- if ( !mSessionInitialized )
+ //*TODO we probably need the same "awaiting message" thing in LLIMFloater
+ LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(mSessionUUID);
+ if (!im_session)
{
- if ( !LLIMModel::instance().sendStartSession(
- mSessionUUID,
- mOtherParticipantUUID,
- mSessionInitialTargetIDs,
- mDialog) )
- {
- //we don't need to need to wait for any responses
- //so we're already initialized
- mSessionInitialized = TRUE;
- mSessionStartMsgPos = 0;
- }
- else
- {
- //locally echo a little "starting session" message
- LLUIString session_start = sSessionStartString;
+ llerror("im session with id " + mSessionUUID.asString() + " does not exist!", 0);
+ return;
+ }
- session_start.setArg("[NAME]", getTitle());
- mSessionStartMsgPos =
- mHistoryEditor->getWText().length();
+ mSessionInitialized = im_session->mSessionInitialized;
+ if (!mSessionInitialized)
+ {
+ //locally echo a little "starting session" message
+ LLUIString session_start = sSessionStartString;
- addHistoryLine(
- session_start,
- LLUIColorTable::instance().getColor("SystemChatColor"),
- false);
- }
+ session_start.setArg("[NAME]", getTitle());
+ mSessionStartMsgPos =
+ mHistoryEditor->getWText().length();
+
+ addHistoryLine(
+ session_start,
+ LLUIColorTable::instance().getColor("SystemChatColor"),
+ false);
}
}
@@ -1162,8 +1157,12 @@ void LLFloaterIMPanel::draw()
childSetEnabled("start_call_btn", enable_connect);
childSetEnabled("send_btn", !childGetValue("chat_editor").asString().empty());
+ LLPointer<LLSpeaker> self_speaker;
LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionUUID);
- LLPointer<LLSpeaker> self_speaker = speaker_mgr->findSpeaker(gAgent.getID());
+ if (speaker_mgr)
+ {
+ self_speaker = speaker_mgr->findSpeaker(gAgent.getID());
+ }
if(!mTextIMPossible)
{
mInputEditor->setEnabled(FALSE);
@@ -1342,25 +1341,6 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4
mHistoryEditor->appendText(utf8msg, prepend_newline, LLStyle::Params().color(color));
mHistoryEditor->blockUndo();
- S32 im_log_option = gSavedPerAccountSettings.getS32("IMLogOptions");
- if (log_to_file && (im_log_option!=LOG_CHAT))
- {
- std::string histstr;
- if (gSavedPerAccountSettings.getBOOL("LogTimestamp"))
- histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + name + separator_string + utf8msg;
- else
- histstr = name + separator_string + utf8msg;
-
- if(im_log_option==LOG_BOTH_TOGETHER)
- {
- LLLogChat::saveHistory(std::string("chat"),histstr);
- }
- else
- {
- LLLogChat::saveHistory(getTitle(),histstr);
- }
- }
-
if (!isInVisibleChain())
{
mNumUnreadMessages++;
@@ -1650,6 +1630,8 @@ void LLFloaterIMPanel::sendMsg()
LLWString text = mInputEditor->getConvertedText();
if(!text.empty())
{
+ // store sent line in history, duplicates will get filtered
+ if (mInputEditor) mInputEditor->updateHistory();
// Truncate and convert to UTF8 for transport
std::string utf8_text = wstring_to_utf8str(text);
utf8_text = utf8str_truncate(utf8_text, MAX_MSG_BUF_SIZE - 1);
@@ -1751,8 +1733,9 @@ void LLFloaterIMPanel::setTyping(BOOL typing)
// Will send typing state after a short delay.
mSentTypingState = FALSE;
}
-
- speaker_mgr->setSpeakerTyping(gAgent.getID(), TRUE);
+
+ if (speaker_mgr)
+ speaker_mgr->setSpeakerTyping(gAgent.getID(), TRUE);
}
else
{
@@ -1762,7 +1745,8 @@ void LLFloaterIMPanel::setTyping(BOOL typing)
sendTypingState(FALSE);
mSentTypingState = TRUE;
}
- speaker_mgr->setSpeakerTyping(gAgent.getID(), FALSE);
+ if (speaker_mgr)
+ speaker_mgr->setSpeakerTyping(gAgent.getID(), FALSE);
}
mTyping = typing;
@@ -1822,7 +1806,11 @@ void LLFloaterIMPanel::removeTypingIndicator(const LLIMInfo* im_info)
mHistoryEditor->removeTextFromEnd(chars_to_remove);
if (im_info)
{
- LLIMModel::getInstance()->getSpeakerManager(mSessionUUID)->setSpeakerTyping(im_info->mFromID, FALSE);
+ LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionUUID);
+ if (speaker_mgr)
+ {
+ speaker_mgr->setSpeakerTyping(im_info->mFromID, FALSE);
+ }
}
}
}
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index b5ac3526d2..4478a62ea3 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -86,6 +86,7 @@ LLIMMgr* gIMMgr = NULL;
//
// *FIXME: make these all either UIStrings or Strings
+const static std::string IM_SEPARATOR(": ");
std::map<LLUUID, LLIMModel::LLIMSession*> LLIMModel::sSessionsMap;
@@ -119,14 +120,16 @@ LLIMModel::LLIMModel()
}
-LLIMModel::LLIMSession::LLIMSession( const LLUUID& session_id, const std::string& name, const EInstantMessage& type, const LLUUID& other_participant_id )
+LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string& name, const EInstantMessage& type, const LLUUID& other_participant_id, const std::vector<LLUUID>& ids)
: mSessionID(session_id),
mName(name),
mType(type),
mNumUnread(0),
mOtherParticipantID(other_participant_id),
+ mInitialTargetIDs(ids),
mVoiceChannel(NULL),
- mSpeakers(NULL)
+ mSpeakers(NULL),
+ mSessionInitialized(false)
{
if (IM_NOTHING_SPECIAL == type || IM_SESSION_P2P_INVITE == type)
{
@@ -140,6 +143,14 @@ LLIMModel::LLIMSession::LLIMSession( const LLUUID& session_id, const std::string
// All participants will be added to the list of people we've recently interacted with.
mSpeakers->addListener(&LLRecentPeople::instance(), "add");
+
+ if (!LLIMModel::getInstance()->sendStartSession(mSessionID, mOtherParticipantID,
+ mInitialTargetIDs, mType))
+ {
+ //we don't need to wait for any responses
+ //so we're already initialized
+ mSessionInitialized = true;
+ }
}
LLIMModel::LLIMSession::~LLIMSession()
@@ -186,11 +197,18 @@ void LLIMModel::updateSessionID(const LLUUID& old_session_id, const LLUUID& new_
session->mSessionID = new_session_id;
session->mVoiceChannel->updateSessionID(new_session_id);
- //*TODO set session initialized flag here? (IB)
+ session->mSessionInitialized = true;
sSessionsMap.erase(old_session_id);
sSessionsMap[new_session_id] = session;
}
+
+ //*TODO remove this "floater" stuff when Communicate Floater is gone
+ LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(old_session_id);
+ if (floater)
+ {
+ floater->sessionInitReplyReceived(new_session_id);
+ }
}
void LLIMModel::testMessages()
@@ -219,7 +237,7 @@ void LLIMModel::testMessages()
}
-bool LLIMModel::newSession(LLUUID session_id, std::string name, EInstantMessage type, LLUUID other_participant_id)
+bool LLIMModel::newSession(LLUUID session_id, std::string name, EInstantMessage type, LLUUID other_participant_id, const std::vector<LLUUID>& ids)
{
if (is_in_map(sSessionsMap, session_id))
{
@@ -227,7 +245,7 @@ bool LLIMModel::newSession(LLUUID session_id, std::string name, EInstantMessage
return false;
}
- LLIMSession* session = new LLIMSession(session_id, name, type, other_participant_id);
+ LLIMSession* session = new LLIMSession(session_id, name, type, other_participant_id, ids);
sSessionsMap[session_id] = session;
LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, name, other_participant_id);
@@ -303,9 +321,34 @@ bool LLIMModel::addToHistory(LLUUID session_id, std::string from, std::string ut
}
-
-bool LLIMModel::addMessage(LLUUID session_id, std::string from, LLUUID from_id, std::string utf8_text) {
+//*TODO rewrite chat history persistence using LLSD serialization (IB)
+bool LLIMModel::logToFile(const LLUUID& session_id, const std::string& from, const std::string& utf8_text)
+{
+ S32 im_log_option = gSavedPerAccountSettings.getS32("IMLogOptions");
+ if (im_log_option != LOG_CHAT)
+ {
+ std::string histstr;
+ if (gSavedPerAccountSettings.getBOOL("LogTimestamp"))
+ histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + from + IM_SEPARATOR + utf8_text;
+ else
+ histstr = from + IM_SEPARATOR + utf8_text;
+
+ if(im_log_option == LOG_BOTH_TOGETHER)
+ {
+ LLLogChat::saveHistory(std::string("chat"), histstr);
+ return true;
+ }
+ else
+ {
+ LLLogChat::saveHistory(LLIMModel::getInstance()->getName(session_id), histstr);
+ return true;
+ }
+ }
+ return false;
+}
+//*TODO add const qualifier and pass by references (IB)
+bool LLIMModel::addMessage(LLUUID session_id, std::string from, LLUUID from_id, std::string utf8_text, bool log2file /* = true */) {
LLIMSession* session = findIMSession(session_id);
if (!session)
@@ -315,10 +358,8 @@ bool LLIMModel::addMessage(LLUUID session_id, std::string from, LLUUID from_id,
}
addToHistory(session_id, from, utf8_text);
+ if (log2file) logToFile(session_id, from, utf8_text);
- std::string agent_name;
- LLAgentUI::buildFullname(agent_name);
-
session->mNumUnread++;
// notify listeners
@@ -527,7 +568,7 @@ void LLIMModel::sendMessage(const std::string& utf8_text,
// Do we have to replace the /me's here?
std::string from;
LLAgentUI::buildFullname(from);
- LLIMModel::instance().addToHistory(im_session_id, from, utf8_text);
+ LLIMModel::getInstance()->addMessage(im_session_id, from, gAgentID, utf8_text);
//local echo for the legacy communicate panel
std::string history_echo;
@@ -1194,7 +1235,7 @@ LLIMMgr::LLIMMgr() :
static bool registered_dialog = false;
if (!registered_dialog)
{
- LLFloaterReg::add("incoming_call", "floater_incoming_call.xml.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
+ LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
registered_dialog = true;
}
@@ -1432,12 +1473,15 @@ LLUUID LLIMMgr::addP2PSession(const std::string& name,
{
LLUUID session_id = addSession(name, IM_NOTHING_SPECIAL, other_participant_id);
- LLVoiceChannelP2P* voice_channel = (LLVoiceChannelP2P*) LLIMModel::getInstance()->getSpeakerManager(session_id);
- if (voice_channel)
+ LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(session_id);
+ if (speaker_mgr)
{
- voice_channel->setSessionHandle(voice_session_handle, caller_uri);
+ LLVoiceChannelP2P* voice_channel = dynamic_cast<LLVoiceChannelP2P*>(speaker_mgr->getVoiceChannel());
+ if (voice_channel)
+ {
+ voice_channel->setSessionHandle(voice_session_handle, caller_uri);
+ }
}
-
return session_id;
}
@@ -1472,9 +1516,12 @@ LLUUID LLIMMgr::addSession(
if (!LLIMModel::getInstance()->findIMSession(session_id))
{
- LLIMModel::instance().newSession(session_id, name, dialog, other_participant_id);
+ LLIMModel::getInstance()->newSession(session_id, name, dialog, other_participant_id, ids);
}
+ LLIMFloater::show(session_id);
+
+ //*TODO remove this "floater" thing when Communicate Floater's gone
LLFloaterIMPanel* floater = findFloaterBySession(session_id);
if(!floater)
{
@@ -1487,19 +1534,17 @@ LLUUID LLIMMgr::addSession(
dialog,
TRUE,
ids);
+ }
- if ( !floater ) return LLUUID::null;
-
- noteOfflineUsers(floater, ids);
+ noteOfflineUsers(session_id, floater, ids);
- // Only warn for regular IMs - not group IMs
- if( dialog == IM_NOTHING_SPECIAL )
- {
- noteMutedUsers(floater, ids);
- }
+ // Only warn for regular IMs - not group IMs
+ if( dialog == IM_NOTHING_SPECIAL )
+ {
+ noteMutedUsers(session_id, floater, ids);
}
- floater->setInputFocus(TRUE);
- LLIMFloater::show(session_id);
+
+
return session_id;
}
@@ -1865,18 +1910,25 @@ LLFloaterIMPanel* LLIMMgr::createFloater(
}
void LLIMMgr::noteOfflineUsers(
+ const LLUUID& session_id,
LLFloaterIMPanel* floater,
const LLDynamicArray<LLUUID>& ids)
{
S32 count = ids.count();
if(count == 0)
{
- floater->addHistoryLine(LLTrans::getString("only_user_message"), LLUIColorTable::instance().getColor("SystemChatColor"));
+ const std::string& only_user = LLTrans::getString("only_user_message");
+ if (floater)
+ {
+ floater->addHistoryLine(only_user, LLUIColorTable::instance().getColor("SystemChatColor"));
+ }
+ LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, only_user);
}
else
{
const LLRelationship* info = NULL;
LLAvatarTracker& at = LLAvatarTracker::instance();
+ LLIMModel* im_model = LLIMModel::getInstance();
for(S32 i = 0; i < count; ++i)
{
info = at.getBuddyInfo(ids.get(i));
@@ -1887,13 +1939,19 @@ void LLIMMgr::noteOfflineUsers(
LLUIString offline = LLTrans::getString("offline_message");
offline.setArg("[FIRST]", first);
offline.setArg("[LAST]", last);
- floater->addHistoryLine(offline, LLUIColorTable::instance().getColor("SystemChatColor"));
+
+ if (floater)
+ {
+ floater->addHistoryLine(offline, LLUIColorTable::instance().getColor("SystemChatColor"));
+ }
+
+ im_model->addMessage(session_id, SYSTEM_FROM, LLUUID::null, offline);
}
}
}
}
-void LLIMMgr::noteMutedUsers(LLFloaterIMPanel* floater,
+void LLIMMgr::noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* floater,
const LLDynamicArray<LLUUID>& ids)
{
// Don't do this if we don't have a mute list.
@@ -1906,12 +1964,18 @@ void LLIMMgr::noteMutedUsers(LLFloaterIMPanel* floater,
S32 count = ids.count();
if(count > 0)
{
+ LLIMModel* im_model = LLIMModel::getInstance();
+
for(S32 i = 0; i < count; ++i)
{
if( ml->isMuted(ids.get(i)) )
{
LLUIString muted = LLTrans::getString("muted_message");
+
+ //*TODO remove this "floater" thing when Communicate Floater's gone
floater->addHistoryLine(muted);
+
+ im_model->addMessage(session_id, SYSTEM_FROM, LLUUID::null, muted);
break;
}
}
@@ -1938,17 +2002,6 @@ void LLIMMgr::processIMTypingCore(const LLIMInfo* im_info, BOOL typing)
}
}
-void LLIMMgr::updateFloaterSessionID(
- const LLUUID& old_session_id,
- const LLUUID& new_session_id)
-{
- LLFloaterIMPanel* floater = findFloaterBySession(old_session_id);
- if (floater)
- {
- floater->sessionInitReplyReceived(new_session_id);
- }
-}
-
class LLViewerChatterBoxSessionStartReply : public LLHTTPNode
{
public:
@@ -1977,9 +2030,6 @@ public:
if ( success )
{
session_id = body["session_id"].asUUID();
- gIMMgr->updateFloaterSessionID(
- temp_session_id,
- session_id);
LLIMModel::getInstance()->updateSessionID(temp_session_id, session_id);
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 9a94d01bb2..df28c16bb1 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -53,18 +53,21 @@ public:
struct LLIMSession
{
LLIMSession(const LLUUID& session_id, const std::string& name,
- const EInstantMessage& type, const LLUUID& other_participant_id);
+ const EInstantMessage& type, const LLUUID& other_participant_id, const std::vector<LLUUID>& ids);
virtual ~LLIMSession();
LLUUID mSessionID;
std::string mName;
EInstantMessage mType;
LLUUID mOtherParticipantID;
+ std::vector<LLUUID> mInitialTargetIDs;
S32 mNumUnread;
std::list<LLSD> mMsgs;
LLVoiceChannel* mVoiceChannel;
LLIMSpeakerMgr* mSpeakers;
+
+ bool mSessionInitialized;
};
@@ -88,11 +91,16 @@ public:
boost::signals2::connection addChangedCallback( boost::function<void (const LLSD& data)> cb );
- bool newSession(LLUUID session_id, std::string name, EInstantMessage type, LLUUID other_participant_id);
+ bool newSession(LLUUID session_id, std::string name, EInstantMessage type, LLUUID other_participant_id,
+ const std::vector<LLUUID>& ids = std::vector<LLUUID>());
bool clearSession(LLUUID session_id);
std::list<LLSD> getMessages(LLUUID session_id, int start_index = 0);
- bool addMessage(LLUUID session_id, std::string from, LLUUID other_participant_id, std::string utf8_text);
+
+ bool addMessage(LLUUID session_id, std::string from, LLUUID other_participant_id, std::string utf8_text, bool log2file = true);
bool addToHistory(LLUUID session_id, std::string from, std::string utf8_text);
+
+ bool logToFile(const LLUUID& session_id, const std::string& from, const std::string& utf8_text);
+
//used to get the name of the session, for use as the title
//currently just the other avatar name
const std::string& getName(const LLUUID& session_id) const;
@@ -223,12 +231,6 @@ public:
const std::string& session_handle = LLStringUtil::null,
const std::string& session_uri = LLStringUtil::null);
- //Updates a given session's session IDs. Does not open,
- //create or do anything new. If the old session doesn't
- //exist, then nothing happens.
- void updateFloaterSessionID(const LLUUID& old_session_id,
- const LLUUID& new_session_id);
-
void processIMTypingStart(const LLIMInfo* im_info);
void processIMTypingStop(const LLIMInfo* im_info);
@@ -293,8 +295,8 @@ private:
// prints a simple message if they are not online. Used to help
// reduce 'hello' messages to the linden employees unlucky enough
// to have their calling card in the default inventory.
- void noteOfflineUsers(LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
- void noteMutedUsers(LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
+ void noteOfflineUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
+ void noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
void processIMTypingCore(const LLIMInfo* im_info, BOOL typing);
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 4046c893c1..44dd11dd86 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -39,7 +39,6 @@
#include "llavataractions.h"
#include "llavatarpropertiesprocessor.h"
#include "llcallingcard.h"
-#include "lldateutil.h" // ageFromDate()
#include "llfloaterreporter.h"
#include "llfloaterworldmap.h"
#include "llmutelist.h"
@@ -109,10 +108,11 @@ private:
void onClickPay();
void onClickBlock();
void onClickReport();
+ void onClickZoomIn();
+ void onClickFindOnMap();
bool onVisibleFindOnMap();
bool onVisibleGodMode();
void onClickMuteVolume();
- void onFindOnMap();
void onVolumeChange(const LLSD& data);
// Callback for gCacheName to look up avatar name
@@ -196,7 +196,8 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
mCommitCallbackRegistrar.add("InspectAvatar.Pay", boost::bind(&LLInspectAvatar::onClickPay, this));
mCommitCallbackRegistrar.add("InspectAvatar.Block", boost::bind(&LLInspectAvatar::onClickBlock, this));
mCommitCallbackRegistrar.add("InspectAvatar.Report", boost::bind(&LLInspectAvatar::onClickReport, this));
- mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap", boost::bind(&LLInspectAvatar::onFindOnMap, this));
+ mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap", boost::bind(&LLInspectAvatar::onClickFindOnMap, this));
+ mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this));
mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap", boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));
mVisibleCallbackRegistrar.add("InspectAvatar.VisibleGodMode", boost::bind(&LLInspectAvatar::onVisibleGodMode, this));
@@ -274,6 +275,11 @@ void LLInspectAvatar::onOpen(const LLSD& data)
mAvatarID = data["avatar_id"];
mPartnerID = LLUUID::null;
+ BOOL self = mAvatarID == gAgent.getID();
+
+ getChild<LLUICtrl>("gear_self_btn")->setVisible(self);
+ getChild<LLUICtrl>("gear_btn")->setVisible(!self);
+
// Position the inspector relative to the mouse cursor
// Similar to how tooltips are positioned
// See LLToolTipMgr::createToolTip
@@ -352,7 +358,7 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data)
{
LLStringUtil::format_map_t args;
args["[BORN_ON]"] = data->born_on;
- args["[AGE]"] = LLDateUtil::ageFromDate(data->born_on);
+ args["[AGE]"] = data->born_on;
args["[SL_PROFILE]"] = data->about_text;
args["[RW_PROFILE"] = data->fl_about_text;
args["[ACCTTYPE]"] = LLAvatarPropertiesProcessor::accountType(data);
@@ -476,7 +482,6 @@ void LLInspectAvatar::onClickViewProfile()
// hide inspector when showing profile
setFocus(FALSE);
LLAvatarActions::showProfile(mAvatarID);
-
}
bool LLInspectAvatar::onVisibleFindOnMap()
@@ -521,8 +526,13 @@ void LLInspectAvatar::onClickReport()
LLFloaterReporter::showFromObject(mAvatarID);
}
+void LLInspectAvatar::onClickZoomIn()
+{
+ handle_zoom_to_object(mAvatarID);
+ closeFloater();
+}
-void LLInspectAvatar::onFindOnMap()
+void LLInspectAvatar::onClickFindOnMap()
{
gFloaterWorldMap->trackAvatar(mAvatarID, mAvatarName);
LLFloaterReg::showInstance("world_map");
diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp
index 8c38e785e9..cdb3a10dfc 100644
--- a/indra/newview/llinspectobject.cpp
+++ b/indra/newview/llinspectobject.cpp
@@ -109,6 +109,7 @@ private:
void onClickSit();
void onClickOpen();
void onClickMoreInfo();
+ void onClickZoomIn();
private:
LLUUID mObjectID;
@@ -132,6 +133,7 @@ LLInspectObject::LLInspectObject(const LLSD& sd)
mCommitCallbackRegistrar.add("InspectObject.Sit", boost::bind(&LLInspectObject::onClickSit, this));
mCommitCallbackRegistrar.add("InspectObject.Open", boost::bind(&LLInspectObject::onClickOpen, this));
mCommitCallbackRegistrar.add("InspectObject.MoreInfo", boost::bind(&LLInspectObject::onClickMoreInfo, this));
+ mCommitCallbackRegistrar.add("InspectObject.ZoomIn", boost::bind(&LLInspectObject::onClickZoomIn, this));
}
@@ -554,6 +556,12 @@ void LLInspectObject::onClickMoreInfo()
closeFloater();
}
+void LLInspectObject::onClickZoomIn()
+{
+ handle_look_at_selection("zoom");
+ closeFloater();
+}
+
//////////////////////////////////////////////////////////////////////////////
// LLInspectObjectUtil
//////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index e5cf8ccf66..1880a574a7 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -120,38 +120,38 @@ bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& respon
std::string ICON_NAME[ICON_NAME_COUNT] =
{
- "inv_item_texture.tga",
- "inv_item_sound.tga",
- "inv_item_callingcard_online.tga",
- "inv_item_callingcard_offline.tga",
- "inv_item_landmark.tga",
- "inv_item_landmark_visited.tga",
- "inv_item_script.tga",
- "inv_item_clothing.tga",
- "inv_item_object.tga",
- "inv_item_object_multi.tga",
- "inv_item_notecard.tga",
- "inv_item_skin.tga",
- "inv_item_snapshot.tga",
-
- "inv_item_shape.tga",
- "inv_item_skin.tga",
- "inv_item_hair.tga",
- "inv_item_eyes.tga",
- "inv_item_shirt.tga",
- "inv_item_pants.tga",
- "inv_item_shoes.tga",
- "inv_item_socks.tga",
- "inv_item_jacket.tga",
- "inv_item_gloves.tga",
- "inv_item_undershirt.tga",
- "inv_item_underpants.tga",
- "inv_item_skirt.tga",
+ "Inv_Texture",
+ "Inv_Sound",
+ "Inv_CallingCard",
+ "Inv_CallingCard",
+ "Inv_Landmark",
+ "Inv_Landmark",
+ "Inv_Script",
+ "Inv_Clothing",
+ "Inv_Object",
+ "Inv_Object",
+ "Inv_Notecard",
+ "Inv_Skin",
+ "Inv_Snapshot",
+
+ "Inv_BodyShape",
+ "Inv_Skin",
+ "Inv_Hair",
+ "Inv_Eye",
+ "Inv_Shirt",
+ "Inv_Pants",
+ "Inv_Shoe",
+ "Inv_Socks",
+ "Inv_Jacket",
+ "Inv_Gloves",
+ "Inv_Undershirt",
+ "Inv_Underpants",
+ "Inv_Skirt",
"inv_item_alpha.tga",
"inv_item_tattoo.tga",
- "inv_item_animation.tga",
- "inv_item_gesture.tga",
+ "Inv_Animation",
+ "Inv_Gesture",
"inv_item_linkitem.tga",
"inv_item_linkfolder.tga"
@@ -2099,81 +2099,8 @@ LLUIImagePtr LLFolderBridge::getIcon() const
LLUIImagePtr LLFolderBridge::getIcon(LLAssetType::EType preferred_type)
{
- if (preferred_type >= LLAssetType::AT_FOLDER_ENSEMBLE_START &&
- preferred_type <= LLAssetType::AT_FOLDER_ENSEMBLE_END)
- {
- LLUIImage* icon = LLUI::getUIImage(LLFolderType::lookupIconName(preferred_type));
- if (icon)
- return icon;
- }
-
- const char* control = NULL;
- switch(preferred_type)
- {
- case LLAssetType::AT_TEXTURE:
- control = "inv_folder_texture.tga";
- break;
- case LLAssetType::AT_SOUND:
- control = "inv_folder_sound.tga";
- break;
- case LLAssetType::AT_CALLINGCARD:
- control = "inv_folder_callingcard.tga";
- break;
- case LLAssetType::AT_LANDMARK:
- control = "inv_folder_landmark.tga";
- break;
- case LLAssetType::AT_SCRIPT:
- case LLAssetType::AT_LSL_TEXT:
- control = "inv_folder_script.tga";
- break;
- case LLAssetType::AT_OBJECT:
- control = "inv_folder_object.tga";
- break;
- case LLAssetType::AT_NOTECARD:
- control = "inv_folder_notecard.tga";
- break;
- case LLAssetType::AT_CATEGORY:
- control = "inv_folder_plain_closed.tga";
- break;
- case LLAssetType::AT_CLOTHING:
- control = "inv_folder_clothing.tga";
- break;
- case LLAssetType::AT_BODYPART:
- control = "inv_folder_bodypart.tga";
- break;
- case LLAssetType::AT_TRASH:
- control = "inv_folder_trash.tga";
- break;
- case LLAssetType::AT_SNAPSHOT_CATEGORY:
- control = "inv_folder_snapshot.tga";
- break;
- case LLAssetType::AT_LOST_AND_FOUND:
- control = "inv_folder_lostandfound.tga";
- break;
- case LLAssetType::AT_ANIMATION:
- control = "inv_folder_animation.tga";
- break;
- case LLAssetType::AT_GESTURE:
- control = "inv_folder_gesture.tga";
- break;
- case LLAssetType::AT_FAVORITE:
- //TODO - need icon
- control = "inv_folder_plain_closed.tga";
- break;
- case LLAssetType::AT_OUTFIT:
- control = "inv_folder_outfit.tga";
- break;
- case LLAssetType::AT_CURRENT_OUTFIT:
- control = "inv_folder_current_outfit.tga";
- break;
- case LLAssetType::AT_MY_OUTFITS:
- control = "inv_folder_my_outfits.tga";
- break;
- default:
- control = "inv_folder_plain_closed.tga";
- break;
- }
- return LLUI::getUIImage(control);
+ // we only have one folder image now
+ return LLUI::getUIImage("Inv_FolderClosed");
}
BOOL LLFolderBridge::renameItem(const std::string& new_name)
@@ -2389,6 +2316,8 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
LLUUID trash_id = model->findCategoryUUIDForType(LLAssetType::AT_TRASH);
LLUUID lost_and_found_id = model->findCategoryUUIDForType(LLAssetType::AT_LOST_AND_FOUND);
+ mItems.clear(); //adding code to clear out member Items (which means Items should not have other data here at this point)
+ mDisabledItems.clear(); //adding code to clear out disabled members from previous
if (lost_and_found_id == mUUID)
{
// This is the lost+found folder.
@@ -4494,7 +4423,7 @@ void LLWearableBridge::onEditOnAvatar(void* user_data)
void LLWearableBridge::editOnAvatar()
{
- const LLWearable* wearable = gAgentWearables.getWearableFromWearableItem(mUUID);
+ const LLWearable* wearable = gAgentWearables.getWearableFromItemID(mUUID);
if( wearable )
{
// Set the tab to the right wearable.
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index b4d3f4575b..7ec8d3d003 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -131,6 +131,13 @@ BOOL LLInventoryFilter::check(LLFolderViewItem* item)
&& (mFilterSubString.size() == 0 || mSubStringMatchOffset != std::string::npos)
&& ((listener->getPermissionMask() & mFilterOps.mPermissions) == mFilterOps.mPermissions)
&& (listener->getCreationDate() >= earliest && listener->getCreationDate() <= mFilterOps.mMaxDate);
+
+ BOOL is_folder = (dynamic_cast<LLFolderViewFolder*>(item) != NULL);
+ if (is_folder && mFilterOps.mShowFolderState == LLInventoryFilter::SHOW_ALL_FOLDERS)
+ {
+ passed = TRUE;
+ }
+
return passed;
}
diff --git a/indra/newview/lllandmarkactions.cpp b/indra/newview/lllandmarkactions.cpp
index 0542199fc1..7c759e22a8 100644
--- a/indra/newview/lllandmarkactions.cpp
+++ b/indra/newview/lllandmarkactions.cpp
@@ -131,16 +131,36 @@ public:
}
};
+static void fetch_landmarks(LLInventoryModel::cat_array_t& cats,
+ LLInventoryModel::item_array_t& items,
+ LLInventoryCollectFunctor& add)
+{
+ // Look in "My Favorites"
+ LLUUID favorites_folder_id =
+ gInventory.findCategoryUUIDForType(LLAssetType::AT_FAVORITE);
+ gInventory.collectDescendentsIf(favorites_folder_id,
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ add);
+
+ // Look in "Landmarks"
+ LLUUID landmarks_folder_id =
+ gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
+ gInventory.collectDescendentsIf(landmarks_folder_id,
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ add);
+}
+
LLInventoryModel::item_array_t LLLandmarkActions::fetchLandmarksByName(std::string& name, BOOL use_substring)
{
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
- LLFetchLandmarksByName fetchLandmarks(name, use_substring);
- gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
- cats,
- items,
- LLInventoryModel::EXCLUDE_TRASH,
- fetchLandmarks);
+ LLFetchLandmarksByName by_name(name, use_substring);
+ fetch_landmarks(cats, items, by_name);
+
return items;
}
@@ -151,17 +171,15 @@ bool LLLandmarkActions::landmarkAlreadyExists()
}
+// *TODO: This could be made more efficient by only fetching the FIRST
+// landmark that meets the criteria
LLViewerInventoryItem* LLLandmarkActions::findLandmarkForGlobalPos(const LLVector3d &pos)
{
// Determine whether there are landmarks pointing to the current parcel.
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
LLFetchlLandmarkByPos is_current_pos_landmark(pos);
- gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
- cats,
- items,
- LLInventoryModel::EXCLUDE_TRASH,
- is_current_pos_landmark);
+ fetch_landmarks(cats, items, is_current_pos_landmark);
if(items.empty())
{
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 16a10dc502..a3296dbffc 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -159,7 +159,9 @@ LLLocationInputCtrl::Params::Params()
add_landmark_image_selected("add_landmark_image_selected"),
add_landmark_button("add_landmark_button"),
add_landmark_hpad("add_landmark_hpad", 0),
- info_button("info_button")
+ info_button("info_button"),
+ add_landmark_tool_tip("add_landmark_tool_tip"),
+ edit_landmark_tool_tip("edit_landmark_tool_tip")
{
}
@@ -170,7 +172,9 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
mLocationContextMenu(NULL),
mAddLandmarkBtn(NULL),
mLandmarkImageOn(NULL),
- mLandmarkImageOff(NULL)
+ mLandmarkImageOff(NULL),
+ mAddLandmarkTooltip(p.add_landmark_tool_tip),
+ mEditLandmarkTooltip(p.edit_landmark_tool_tip)
{
// Lets replace default LLLineEditor with LLLocationLineEditor
// to make needed escaping while copying and cutting url
@@ -261,9 +265,6 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
mAddLandmarkObserver = new LLAddLandmarkObserver(this);
gInventory.addObserver(mRemoveLandmarkObserver);
gInventory.addObserver(mAddLandmarkObserver);
-
- mAddLandmarkTooltip = LLTrans::getString("location_ctrl_add_landmark");
- mEditLandmarkTooltip = LLTrans::getString("location_ctrl_edit_landmark");
}
LLLocationInputCtrl::~LLLocationInputCtrl()
diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h
index c74a294ca3..cd5c482005 100644
--- a/indra/newview/lllocationinputctrl.h
+++ b/indra/newview/lllocationinputctrl.h
@@ -66,6 +66,8 @@ public:
Optional<S32> add_landmark_hpad;
Optional<LLButton::Params> add_landmark_button,
info_button;
+ Optional<std::string> add_landmark_tool_tip;
+ Optional<std::string> edit_landmark_tool_tip;
Params();
};
diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp
index 14a8b7cb59..c99e67be3f 100644
--- a/indra/newview/llmaniprotate.cpp
+++ b/indra/newview/llmaniprotate.cpp
@@ -1234,9 +1234,9 @@ LLVector3 LLManipRotate::getConstraintAxis()
else
{
#ifndef LL_RELEASE_FOR_DOWNLOAD
- llerrs << "Got bogus hit part in LLManipRotate::getConstraintAxis():" << mManipPart << llendl
+ llerrs << "Got bogus hit part in LLManipRotate::getConstraintAxis():" << mManipPart << llendl;
#else
- llwarns << "Got bogus hit part in LLManipRotate::getConstraintAxis():" << mManipPart << llendl
+ llwarns << "Got bogus hit part in LLManipRotate::getConstraintAxis():" << mManipPart << llendl;
#endif
axis.mV[0] = 1.f;
}
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index d8f00ec370..1bbcc3f98e 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -44,9 +44,7 @@
#include "llvoavatarself.h" // to check gAgent.getAvatarObject()->isSitting()
#include "llbottomtray.h"
#include "llbutton.h"
-#include "llfirsttimetipmanager.h"
#include "llfloaterreg.h"
-#include "llfloaterfirsttimetip.h"
#include "lljoystickbutton.h"
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
@@ -54,6 +52,7 @@
#include "llselectmgr.h"
#include "llviewerparcelmgr.h"
#include "llviewerregion.h"
+#include "lltooltip.h"
//
// Constants
@@ -71,7 +70,7 @@ const std::string BOTTOM_TRAY_BUTTON_NAME = "movement_btn";
// protected
LLFloaterMove::LLFloaterMove(const LLSD& key)
-: LLDockableFloater(NULL, false, key),
+: LLDockableFloater(NULL, key),
mForwardButton(NULL),
mBackwardButton(NULL),
mTurnLeftButton(NULL),
@@ -305,7 +304,6 @@ void LLFloaterMove::setMovementMode(const EMovementMode mode)
showModeButtons(!bHideModeButtons);
- showQuickTips(mode);
}
void LLFloaterMove::updateButtonsWithMovementMode(const EMovementMode newMode)
@@ -464,6 +462,11 @@ void LLFloaterMove::enableInstance(BOOL bEnable)
if (instance)
{
instance->setEnabled(bEnable);
+
+ if (gAgent.getFlying())
+ {
+ instance->showModeButtons(FALSE);
+ }
}
}
@@ -487,8 +490,6 @@ void LLFloaterMove::onOpen(const LLSD& key)
anchor_panel, this,
getDockTongue(), LLDockControl::TOP));
- showQuickTips(mCurrentMode);
-
sUpdateFlyingStatus();
}
@@ -500,20 +501,6 @@ void LLFloaterMove::setDocked(bool docked, bool pop_on_undock/* = true*/)
updateHeight(show_mode_buttons);
}
-void LLFloaterMove::showQuickTips(const EMovementMode mode)
-{
- LLFirstTimeTipsManager::EFirstTimeTipType tipType = LLFirstTimeTipsManager::FTT_MOVE_WALK;
- switch (mode)
- {
- case MM_FLY: tipType = LLFirstTimeTipsManager::FTT_MOVE_FLY; break;
- case MM_RUN: tipType = LLFirstTimeTipsManager::FTT_MOVE_RUN; break;
- case MM_WALK: tipType = LLFirstTimeTipsManager::FTT_MOVE_WALK; break;
- default: llwarns << "Quick Tip type was not detected, FTT_MOVE_WALK will be used" << llendl;
- }
-
- LLFirstTimeTipsManager::showTipsFor(tipType, this, LLFirstTimeTipsManager::TPA_POS_LEFT_ALIGN_TOP);
-}
-
void LLFloaterMove::setModeButtonToggleState(const EMovementMode mode)
{
llassert_always(mModeControlButtonMap.end() != mModeControlButtonMap.find(mode));
@@ -610,6 +597,22 @@ void LLPanelStandStopFlying::setVisible(BOOL visible)
LLPanel::setVisible(visible);
}
+BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask)
+{
+ LLToolTipMgr::instance().unblockToolTips();
+
+ if (mStandButton->getVisible())
+ {
+ LLToolTipMgr::instance().show(mStandButton->getToolTip());
+ }
+ else if (mStopFlyingButton->getVisible())
+ {
+ LLToolTipMgr::instance().show(mStopFlyingButton->getToolTip());
+ }
+
+ return TRUE;
+}
+
//////////////////////////////////////////////////////////////////////////
// Private Section
//////////////////////////////////////////////////////////////////////////
@@ -635,7 +638,10 @@ void LLPanelStandStopFlying::onStandButtonClick()
gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
setFocus(FALSE); // EXT-482
- setVisible(FALSE);
+
+ BOOL fly = gAgent.getFlying();
+ mStopFlyingButton->setVisible(fly);
+ setVisible(fly);
}
void LLPanelStandStopFlying::onStopFlyingButtonClick()
diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h
index 584c7c494c..cbed36f10d 100644
--- a/indra/newview/llmoveview.h
+++ b/indra/newview/llmoveview.h
@@ -142,6 +142,7 @@ public:
// *HACK: due to hard enough to have this control aligned with "Move" button while resizing
// let update its position in each frame
/*virtual*/ void draw(){updatePosition(); LLPanel::draw();}
+ /*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
protected:
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index b47d6f4214..ff7f08bf97 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -530,6 +530,8 @@ void notify_automute_callback(const LLUUID& agent_id, const std::string& first_n
{
timp->addHistoryLine(message);
}
+
+ LLIMModel::getInstance()->addMessage(agent_id, SYSTEM_FROM, LLUUID::null, message);
}
LLChat auto_chat(message);
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index cc5f37b903..91862112a0 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -430,7 +430,7 @@ void LLNearbyChat::pinn_panel()
mEChatTearofState = CHAT_PINNED;
LLIconCtrl* tearoff_btn = mChatCaptionPanel->getChild<LLIconCtrl>("tearoff_btn",false);
- tearoff_btn->setValue("inv_item_landmark_visited.tga");
+ tearoff_btn->setValue("Inv_Landmark");
const LLRect& parent_rect = gViewerWindow->getRootView()->getRect();
@@ -451,7 +451,7 @@ void LLNearbyChat::float_panel()
mEChatTearofState = CHAT_UNPINNED;
LLIconCtrl* tearoff_btn = mChatCaptionPanel->getChild<LLIconCtrl>("tearoff_btn", false);
- tearoff_btn->setValue("inv_item_landmark.tga");
+ tearoff_btn->setValue("Inv_Landmark");
mResizeBar[LLResizeBar::BOTTOM]->setVisible(true);
mResizeBar[LLResizeBar::LEFT]->setVisible(true);
mResizeBar[LLResizeBar::RIGHT]->setVisible(true);
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 1d8789fde0..4f3bca50ff 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -192,7 +192,7 @@ BOOL LLNearbyChatBar::postBuild()
mChatBox->setKeystrokeCallback(&onChatBoxKeystroke, this);
mChatBox->setFocusLostCallback(boost::bind(&onChatBoxFocusLost, _1, this));
- mChatBox->setIgnoreArrowKeys(TRUE);
+ mChatBox->setIgnoreArrowKeys( FALSE );
mChatBox->setCommitOnFocusLost( FALSE );
mChatBox->setRevertOnEsc( FALSE );
mChatBox->setIgnoreTab(TRUE);
@@ -201,35 +201,8 @@ BOOL LLNearbyChatBar::postBuild()
mChatBox->setMaxTextLength(1023);
mChatBox->setEnableLineHistory(TRUE);
- // TODO: Initialization of the output monitor's params should be done via xml
- const S32 MONITOR_RIGHT_PAD = 2;
-
- LLRect monitor_rect = LLRect(0, 18, 18, 0);
- LLRect chatbox_rect = mChatBox->getRect();
-
- S32 monitor_height = monitor_rect.getHeight();
- monitor_rect.mLeft = chatbox_rect.getWidth() - monitor_rect.getWidth() - MONITOR_RIGHT_PAD;
- monitor_rect.mRight = chatbox_rect.getWidth() - MONITOR_RIGHT_PAD;
- monitor_rect.mBottom = (chatbox_rect.getHeight() / 2) - (monitor_height / 2);
- monitor_rect.mTop = monitor_rect.mBottom + monitor_height;
-
- LLOutputMonitorCtrl::Params monitor_params = LLOutputMonitorCtrl::Params();
- monitor_params.name = "output_monitor";
- monitor_params.draw_border(false);
- monitor_params.rect(monitor_rect);
- monitor_params.auto_update(true);
- monitor_params.speaker_id(gAgentID);
-
- LLView::Follows follows = LLView::Follows();
- follows.flags = FOLLOWS_RIGHT;
- monitor_params.follows = follows;
- mOutputMonitor = LLUICtrlFactory::create<LLOutputMonitorCtrl>(monitor_params);
- mChatBox->addChild(mOutputMonitor);
-
- // never show "muted" because you can't mute yourself
- mOutputMonitor->setIsMuted(false);
+ mOutputMonitor = getChild<LLOutputMonitorCtrl>("chat_zone_indicator");
mOutputMonitor->setVisible(FALSE);
-
mTalkBtn = getChild<LLTalkButton>("talk");
// Speak button should be initially disabled because
@@ -254,6 +227,12 @@ bool LLNearbyChatBar::instanceExists()
return LLBottomTray::instanceExists() && LLBottomTray::getInstance()->getNearbyChatBar() != NULL;
}
+void LLNearbyChatBar::draw()
+{
+ displaySpeakingIndicator();
+ LLPanel::draw();
+}
+
std::string LLNearbyChatBar::getCurrentChat()
{
return mChatBox ? mChatBox->getText() : LLStringUtil::null;
@@ -470,6 +449,36 @@ void LLNearbyChatBar::onChatBoxCommit()
gAgent.stopTyping();
}
+void LLNearbyChatBar::displaySpeakingIndicator()
+{
+ LLSpeakerMgr::speaker_list_t speaker_list;
+ LLUUID id;
+
+ id.setNull();
+ mSpeakerMgr.update(TRUE);
+ mSpeakerMgr.getSpeakerList(&speaker_list, FALSE);
+
+ for (LLSpeakerMgr::speaker_list_t::iterator i = speaker_list.begin(); i != speaker_list.end(); ++i)
+ {
+ LLPointer<LLSpeaker> s = *i;
+ if (s->mSpeechVolume > 0 || s->mStatus == LLSpeaker::STATUS_SPEAKING)
+ {
+ id = s->mID;
+ break;
+ }
+ }
+
+ if (!id.isNull())
+ {
+ mOutputMonitor->setVisible(TRUE);
+ mOutputMonitor->setSpeakerId(id);
+ }
+ else
+ {
+ mOutputMonitor->setVisible(FALSE);
+ }
+}
+
void LLNearbyChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate)
{
sendChatFromViewer(utf8str_to_wstring(utf8text), type, animate);
@@ -622,7 +631,6 @@ LLWString LLNearbyChatBar::stripChannelNumber(const LLWString &mesg, S32* channe
void LLNearbyChatBar::setPTTState(bool state)
{
mTalkBtn->setSpeakBtnToggleState(state);
- mOutputMonitor->setVisible(state);
}
void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel)
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 1b71ad69f2..d6827315f2 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -40,6 +40,7 @@
#include "llchiclet.h"
#include "llvoiceclient.h"
#include "lloutputmonitorctrl.h"
+#include "llfloateractivespeakers.h"
class LLGestureComboBox
: public LLComboBox
@@ -84,6 +85,8 @@ public:
LLLineEditor* getChatBox() { return mChatBox; }
+ virtual void draw();
+
std::string getCurrentChat();
virtual BOOL handleKeyHere( KEY key, MASK mask );
@@ -110,12 +113,15 @@ protected:
static LLWString stripChannelNumber(const LLWString &mesg, S32* channel);
EChatType processChatTypeTriggers(EChatType type, std::string &str);
+ void displaySpeakingIndicator();
+
// Which non-zero channel did we last chat on?
static S32 sLastSpecialChatChannel;
LLLineEditor* mChatBox;
LLTalkButton* mTalkBtn;
LLOutputMonitorCtrl* mOutputMonitor;
+ LLActiveSpeakerMgr mSpeakerMgr;
};
#endif
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index eb42e83994..59b19b6dcb 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -61,7 +61,7 @@ LLToastPanelBase* createToastPanel()
class LLNearbyChatScreenChannel: public LLScreenChannelBase
{
public:
- LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mActiveMessages = 0;};
+ LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mStopProcessing = false;};
void init (S32 channel_left, S32 channel_right);
@@ -75,6 +75,13 @@ public:
void onToastDestroyed (LLToast* toast);
void onToastFade (LLToast* toast);
+ void reshape (S32 width, S32 height, BOOL called_from_parent);
+
+ void redrawToasts()
+ {
+ arrangeToasts();
+ }
+
// hide all toasts from screen, but not remove them from a channel
virtual void hideToastsFromScreen()
{
@@ -93,6 +100,13 @@ public:
m_active_toasts.clear();
};
+ virtual void deleteAllChildren()
+ {
+ m_toast_pool.clear();
+ m_active_toasts.clear();
+ LLScreenChannelBase::deleteAllChildren();
+ }
+
protected:
void createOverflowToast(S32 bottom, F32 timer);
@@ -103,7 +117,7 @@ protected:
std::vector<LLToast*> m_active_toasts;
std::list<LLToast*> m_toast_pool;
- S32 mActiveMessages;
+ bool mStopProcessing;
};
void LLNearbyChatScreenChannel::init(S32 channel_left, S32 channel_right)
@@ -122,6 +136,7 @@ void LLNearbyChatScreenChannel::createOverflowToast(S32 bottom, F32 timer)
void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast)
{
+ mStopProcessing = true;
}
void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
@@ -161,7 +176,8 @@ bool LLNearbyChatScreenChannel::createPoolToast()
void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
{
//look in pool. if there is any message
-
+ if(mStopProcessing)
+ return;
if(m_toast_pool.empty())
{
@@ -204,35 +220,48 @@ void LLNearbyChatScreenChannel::arrangeToasts()
void LLNearbyChatScreenChannel::showToastsBottom()
{
- LLRect rect = getRect();
+ if(mStopProcessing)
+ return;
LLRect toast_rect;
S32 bottom = getRect().mBottom;
+ S32 margin = gSavedSettings.getS32("ToastMargin");
for(std::vector<LLToast*>::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
{
LLToast* toast = (*it);
- toast_rect = toast->getRect();
- toast_rect.setLeftTopAndSize(getRect().mLeft, bottom + toast_rect.getHeight()+gSavedSettings.getS32("ToastMargin"), toast_rect.getWidth() ,toast_rect.getHeight());
-
- toast->setRect(toast_rect);
+ S32 toast_top = bottom + toast->getRect().getHeight() + margin;
- if(toast->getRect().mTop > getRect().getHeight())
+ if(toast_top > gFloaterView->getRect().getHeight())
{
while(it!=m_active_toasts.end())
{
- (*it)->setVisible(FALSE);
- (*it)->stopTimer();
- m_toast_pool.push_back(*it);
+ toast->setVisible(FALSE);
+ toast->stopTimer();
+ m_toast_pool.push_back(toast);
it=m_active_toasts.erase(it);
}
break;
}
- toast->setVisible(TRUE);
- bottom = toast->getRect().mTop;
+ else
+ {
+ toast_rect = toast->getRect();
+ toast_rect.setLeftTopAndSize(getRect().mLeft , toast_top, toast_rect.getWidth() ,toast_rect.getHeight());
+
+ toast->setRect(toast_rect);
+
+ toast->setVisible(TRUE);
+ bottom = toast->getRect().mTop;
+ }
}
}
+void LLNearbyChatScreenChannel::reshape (S32 width, S32 height, BOOL called_from_parent)
+{
+ LLScreenChannelBase::reshape(width, height, called_from_parent);
+ arrangeToasts();
+}
+
//-----------------------------------------------------------------------------------------------
//LLNearbyChatHandler
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index bd6e6cd0cb..b6b433c28f 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -65,21 +65,30 @@
static LLDefaultChildRegistry::Register<LLNetMap> r1("net_map");
-const F32 MAP_SCALE_MIN = 64;
-const F32 MAP_SCALE_MID = 172;
-const F32 MAP_SCALE_MAX = 512;
const F32 MAP_SCALE_INCREMENT = 16;
const F32 MAP_MIN_PICK_DIST = 4;
const F32 MAX_PRIM_RADIUS = 256.0f; // Don't try to draw giant mega-prims on the mini map
-LLNetMap::LLNetMap (const Params & p) :
- LLUICtrl (p),
- mScale(128.0f),
+LLNetMap::LLNetMap (const Params & p)
+: LLUICtrl (p),
mBackgroundColor (p.bg_color()),
- mRotateMap(FALSE)
+ mScale( MAP_SCALE_MID ),
+ mPixelsPerMeter( MAP_SCALE_MID / REGION_WIDTH_METERS ),
+ mObjectMapTPM(0.f),
+ mObjectMapPixels(0.f),
+ mTargetPanX(0.f),
+ mTargetPanY(0.f),
+ mCurPanX(0.f),
+ mCurPanY(0.f),
+ mUpdateNow(FALSE),
+ mObjectImageCenterGlobal( gAgent.getCameraPositionGlobal() ),
+ mObjectRawImagep(),
+ mObjectImagep(),
+ mClosestAgentToCursor(),
+ mClosestAgentAtLastRightClick(),
+ mRotateMap(FALSE),
+ mToolTipMsg()
{
- mObjectImageCenterGlobal = gAgent.getCameraPositionGlobal();
- mPixelsPerMeter = mScale / REGION_WIDTH_METERS;
}
LLNetMap::~LLNetMap()
diff --git a/indra/newview/llnetmap.h b/indra/newview/llnetmap.h
index 821c348835..5ebdd13384 100644
--- a/indra/newview/llnetmap.h
+++ b/indra/newview/llnetmap.h
@@ -38,12 +38,17 @@
#include "v3math.h"
#include "v3dmath.h"
#include "v4color.h"
-#include "llimage.h"
+#include "llpointer.h"
class LLColor4U;
class LLCoordGL;
+class LLImageRaw;
class LLTextBox;
-class LLViewerTexture ;
+class LLViewerTexture;
+
+const F32 MAP_SCALE_MIN = 64.f;
+const F32 MAP_SCALE_MID = 172.f;
+const F32 MAP_SCALE_MAX = 512.f;
class LLNetMap : public LLUICtrl
{
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index d9cdf2e04f..8bac9937f0 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -222,7 +222,7 @@ void LLOutputMonitorCtrl::draw()
void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)
{
- if (speaker_id.isNull()) return;
+ if (speaker_id.isNull() || speaker_id == mSpeakerId) return;
mSpeakerId = speaker_id;
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index c543f85f22..3a3ea1fc3c 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -38,7 +38,6 @@
#include "llavatarconstants.h" // AVATAR_ONLINE
#include "llcallingcard.h"
#include "llcombobox.h"
-#include "lldateutil.h"
#include "llimview.h"
#include "lltexteditor.h"
#include "lltexturectrl.h"
@@ -448,7 +447,7 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
{
- childSetValue("register_date", LLDateUtil::ageFromDate(avatar_data->born_on));
+ childSetValue("register_date", avatar_data->born_on );
childSetValue("sl_description_edit", avatar_data->about_text);
childSetValue("fl_description_edit",avatar_data->fl_about_text);
childSetValue("2nd_life_pic", avatar_data->image_id);
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index 2b584910a3..206d8428be 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -54,6 +54,7 @@
#include "llsidetray.h"
#include "llaccordionctrltab.h"
+#include "llaccordionctrl.h"
static LLRegisterPanelClassWrapper<LLPanelGroup> t_panel_group("panel_group_info_sidetray");
@@ -100,14 +101,13 @@ void LLPanelGroupTab::handleClickHelp()
}
LLPanelGroup::LLPanelGroup()
-: LLPanel()
- ,LLGroupMgrObserver( LLUUID() )
- ,mAllowEdit(TRUE)
+: LLPanel(),
+ LLGroupMgrObserver( LLUUID() ),
+ mAllowEdit( TRUE )
{
// Set up the factory callbacks.
// Roles sub tabs
LLGroupMgr::getInstance()->addObserver(this);
-
}
@@ -210,9 +210,19 @@ void LLPanelGroup::reposButton(const std::string& name)
button->setRect(btn_rect);
}
-void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
+void LLPanelGroup::reposButtons()
{
- LLPanel::reshape(width, height, called_from_parent );
+ LLButton* button_refresh = findChild<LLButton>("btn_refresh");
+ LLButton* button_cancel = findChild<LLButton>("btn_cancel");
+
+ if(button_refresh && button_cancel && button_refresh->getVisible() && button_cancel->getVisible())
+ {
+ LLRect btn_refresh_rect = button_refresh->getRect();
+ LLRect btn_cancel_rect = button_cancel->getRect();
+ btn_refresh_rect.setLeftTopAndSize( btn_cancel_rect.mLeft + btn_cancel_rect.getWidth() + 2,
+ btn_refresh_rect.getHeight() + 2, btn_refresh_rect.getWidth(), btn_refresh_rect.getHeight());
+ button_refresh->setRect(btn_refresh_rect);
+ }
reposButton("btn_apply");
reposButton("btn_create");
@@ -220,6 +230,13 @@ void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
reposButton("btn_cancel");
}
+void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
+{
+ LLPanel::reshape(width, height, called_from_parent );
+
+ reposButtons();
+}
+
void LLPanelGroup::onBackBtnClick()
{
LLSideTrayPanelContainer* parent = dynamic_cast<LLSideTrayPanelContainer*>(getParent());
@@ -229,6 +246,7 @@ void LLPanelGroup::onBackBtnClick()
}
}
+
void LLPanelGroup::onBtnCreate()
{
LLPanelGroupGeneral* panel_general = findChild<LLPanelGroupGeneral>("group_general_tab_panel");
@@ -375,17 +393,23 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
getChild<LLUICtrl>("prepend_founded_by")->setVisible(!is_null_group_id);
+ LLAccordionCtrl* tab_ctrl = findChild<LLAccordionCtrl>("group_accordion");
+ if(tab_ctrl)
+ tab_ctrl->reset();
+
LLAccordionCtrlTab* tab_general = findChild<LLAccordionCtrlTab>("group_general_tab");
LLAccordionCtrlTab* tab_roles = findChild<LLAccordionCtrlTab>("group_roles_tab");
LLAccordionCtrlTab* tab_notices = findChild<LLAccordionCtrlTab>("group_notices_tab");
LLAccordionCtrlTab* tab_land = findChild<LLAccordionCtrlTab>("group_land_tab");
+
if(!tab_general || !tab_roles || !tab_notices || !tab_land)
return;
if(button_join)
button_join->setVisible(false);
+
if(is_null_group_id)//creating new group
{
if(!tab_general->getDisplayChildren())
@@ -404,7 +428,6 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
getChild<LLUICtrl>("group_name")->setVisible(false);
getChild<LLUICtrl>("group_name_editor")->setVisible(true);
-
}
else
{
@@ -424,6 +447,8 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
getChild<LLUICtrl>("group_name")->setVisible(true);
getChild<LLUICtrl>("group_name_editor")->setVisible(false);
}
+
+ reposButtons();
}
bool LLPanelGroup::apply(LLPanelGroupTab* tab)
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index f2118a7244..628e2389b6 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -104,6 +104,7 @@ protected:
static bool joinDlgCB(const LLSD& notification, const LLSD& response);
void reposButton(const std::string& name);
+ void reposButtons();
protected:
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 0331fad60c..1c2875bf46 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -186,7 +186,7 @@ BOOL LLPanelGroupGeneral::postBuild()
}
mIncompleteMemberDataStr = getString("incomplete_member_data_str");
-
+
// If the group_id is null, then we are creating a new group
if (mGroupID.isNull())
{
@@ -476,8 +476,15 @@ bool LLPanelGroupGeneral::confirmMatureApply(const LLSD& notification, const LLS
// If we got here it means they set a valid value
std::string mesg = "";
- apply(mesg);
- return false;
+ bool ret = apply(mesg);
+ if ( !mesg.empty() )
+ {
+ LLSD args;
+ args["MESSAGE"] = mesg;
+ LLNotifications::instance().add("GenericAlert", args);
+ }
+
+ return ret;
}
// static
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 1521c1113a..71486c908c 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -517,6 +517,8 @@ void LLPanelGroupSubTab::setGroupID(const LLUUID& id)
void LLPanelGroupSubTab::setSearchFilter(const std::string& filter)
{
+ if(mSearchFilter == filter)
+ return;
lldebugs << "LLPanelGroupSubTab::setSearchFilter() ==> '" << filter << "'" << llendl;
mSearchFilter = filter;
LLStringUtil::toLower(mSearchFilter);
@@ -1515,9 +1517,6 @@ void LLPanelGroupMembersSubTab::update(LLGroupChange gc)
return;
}
- // Rebuild the members list.
- mMembersList->deleteAllItems();
-
// Wait for both all data to be retrieved before displaying anything.
if ( gdatap->isMemberDataComplete()
&& gdatap->isRoleDataComplete()
@@ -1557,6 +1556,9 @@ void LLPanelGroupMembersSubTab::updateMembers()
{
mPendingMemberUpdate = FALSE;
+ // Rebuild the members list.
+ mMembersList->deleteAllItems();
+
lldebugs << "LLPanelGroupMembersSubTab::updateMembers()" << llendl;
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp
index e8a16859c7..76dcd89028 100644
--- a/indra/newview/llpanelmediasettingsgeneral.cpp
+++ b/indra/newview/llpanelmediasettingsgeneral.cpp
@@ -39,6 +39,7 @@
#include "llspinctrl.h"
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
+#include "llviewermedia.h"
#include "llsdutil.h"
#include "llselectmgr.h"
#include "llbutton.h"
@@ -68,11 +69,12 @@ LLPanelMediaSettingsGeneral::LLPanelMediaSettingsGeneral() :
mHomeURL( NULL ),
mCurrentURL( NULL ),
mAltImageEnable( NULL ),
- mParent( NULL )
+ mParent( NULL ),
+ mMediaEditable(false)
{
// build dialog from XML
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_general.xml");
- mCommitCallbackRegistrar.add("Media.ResetCurrentUrl", boost::bind(&LLPanelMediaSettingsGeneral::onBtnResetCurrentUrl, this));
+// mCommitCallbackRegistrar.add("Media.ResetCurrentUrl", boost::bind(&LLPanelMediaSettingsGeneral::onBtnResetCurrentUrl, this));
// mCommitCallbackRegistrar.add("Media.CommitHomeURL", boost::bind(&LLPanelMediaSettingsGeneral::onCommitHomeURL, this));
}
@@ -97,7 +99,7 @@ BOOL LLPanelMediaSettingsGeneral::postBuild()
// watch commit action for HOME URL
childSetCommitCallback( LLMediaEntry::HOME_URL_KEY, onCommitHomeURL, this);
-
+ childSetCommitCallback( "current_url_reset_btn",onBtnResetCurrentUrl, this);
// interrogates controls and updates widgets as required
updateMediaPreview();
updateCurrentURL();
@@ -162,7 +164,7 @@ void LLPanelMediaSettingsGeneral::draw()
// updateCurrentURL();
LLPermissions perm;
- bool user_can_press_reset = gFloaterTools->selectedMediaEditable();
+ bool user_can_press_reset = mMediaEditable;
// several places modify this widget so we must collect states in one place
if ( reset_button_is_active )
@@ -220,6 +222,7 @@ void LLPanelMediaSettingsGeneral::clearValues( void* userdata, bool editable)
void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_settings ,bool editable)
{
LLPanelMediaSettingsGeneral *self =(LLPanelMediaSettingsGeneral *)userdata;
+ self->mMediaEditable = editable;
//llinfos << "---------------" << llendl;
//llinfos << ll_pretty_print_sd(media_settings) << llendl;
@@ -230,7 +233,7 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_
{
if(LLFloaterMediaSettings::getInstance()->mMultipleMedia)
{
- self->clearValues(self, editable);
+ self->clearValues(self, self->mMediaEditable);
// only show multiple
self->mHomeURL ->setText(LLTrans::getString("Multiple Media"));
return;
@@ -241,7 +244,7 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_
{
if(LLFloaterMediaSettings::getInstance()->mMultipleValidMedia)
{
- self->clearValues(self, editable);
+ self->clearValues(self, self->mMediaEditable);
// only show multiple
self->mHomeURL ->setText(LLTrans::getString("Multiple Media"));
return;
@@ -298,7 +301,7 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_
static_cast< LLSpinCtrl* >( data_set[ i ].ctrl_ptr )->
setValue( media_settings[ base_key ].asInteger() );
- data_set[ i ].ctrl_ptr->setEnabled(editable);
+ data_set[ i ].ctrl_ptr->setEnabled(self->mMediaEditable);
data_set[ i ].ctrl_ptr->setTentative( media_settings[ tentative_key ].asBoolean() );
};
};
@@ -354,12 +357,12 @@ void LLPanelMediaSettingsGeneral::onCommitHomeURL( LLUICtrl* ctrl, void *userdat
self->updateMediaPreview();
}
-
////////////////////////////////////////////////////////////////////////////////
-void LLPanelMediaSettingsGeneral::onBtnResetCurrentUrl()
+// static
+void LLPanelMediaSettingsGeneral::onBtnResetCurrentUrl(LLUICtrl* ctrl, void *userdata)
{
- // TODO: reset home URL but need to consider permissions too
- //LLPanelMediaSettingsGeneral* self =(LLPanelMediaSettingsGeneral *)userdata;
+ LLPanelMediaSettingsGeneral* self =(LLPanelMediaSettingsGeneral *)userdata;
+ self->navigateHomeSelectedFace();
}
////////////////////////////////////////////////////////////////////////////////
@@ -399,3 +402,39 @@ void LLPanelMediaSettingsGeneral::setParent( LLFloaterMediaSettings* parent )
{
mParent = parent;
};
+
+bool LLPanelMediaSettingsGeneral::navigateHomeSelectedFace()
+{
+ // HACK: This is directly referencing an impl name. BAD!
+ // This can be removed when we have a truly generic media browser that only
+ // builds an impl based on the type of url it is passed.
+ struct functor_navigate_media : public LLSelectedTEGetFunctor< bool>
+ {
+ bool get( LLViewerObject* object, S32 face )
+ {
+ if ( object )
+ if ( object->getTE(face) )
+ if ( object->getTE(face)->getMediaData() )
+ {
+ if(object->permModify())
+ {
+ viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(object->getTE(face)->getMediaData()->getMediaID());
+ if(media_impl)
+ {
+ media_impl->navigateHome();
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ } functor_navigate_media;
+
+ bool all_face_media_navigated = false;
+ LLObjectSelectionHandle selected_objects =LLSelectMgr::getInstance()->getSelection();
+ selected_objects->getSelectedTEValue( &functor_navigate_media, all_face_media_navigated );
+
+ return all_face_media_navigated;
+}
+
diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h
index 5acfa39181..1b60909786 100644
--- a/indra/newview/llpanelmediasettingsgeneral.h
+++ b/indra/newview/llpanelmediasettingsgeneral.h
@@ -61,14 +61,16 @@ public:
static void initValues( void* userdata, const LLSD& media_settings ,bool editable);
static void clearValues( void* userdata, bool editable);
+ bool navigateHomeSelectedFace();
void updateMediaPreview();
void updateCurrentURL();
protected:
LLFloaterMediaSettings* mParent;
+ bool mMediaEditable;
private:
- void onBtnResetCurrentUrl();
+ static void onBtnResetCurrentUrl(LLUICtrl* ctrl, void *userdata);
static void onCommitHomeURL(LLUICtrl* ctrl, void *userdata );
LLComboBox* mControls;
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
index eb432335a1..8ed22ebbde 100644
--- a/indra/newview/llpanelplaceinfo.cpp
+++ b/indra/newview/llpanelplaceinfo.cpp
@@ -568,7 +568,8 @@ void LLPanelPlaceInfo::displayParcelInfo(const LLUUID& region_id,
void LLPanelPlaceInfo::displaySelectedParcelInfo(LLParcel* parcel,
LLViewerRegion* region,
- const LLVector3d& pos_global)
+ const LLVector3d& pos_global,
+ bool is_current_parcel)
{
if (!region || !parcel)
return;
@@ -799,6 +800,9 @@ void LLPanelPlaceInfo::displaySelectedParcelInfo(LLParcel* parcel,
processParcelInfo(parcel_data);
+ // TODO: If agent is in currently within the selected parcel
+ // show the "You Are Here" banner.
+
getChild<LLAccordionCtrlTab>("sales_tab")->setVisible(for_sale);
}
@@ -846,14 +850,17 @@ void LLPanelPlaceInfo::toggleLandmarkEditMode(BOOL enabled)
mTitle->setText(mCurrentTitle);
}
- mTitleEditor->setEnabled(enabled);
- mNotesEditor->setReadOnly(!enabled);
- mFolderCombo->setVisible(enabled);
- getChild<LLTextBox>("folder_lable")->setVisible(enabled);
-
- // HACK: To change the text color in a text editor
- // when it was enabled/disabled we set the text once again.
- mNotesEditor->setText(mNotesEditor->getText());
+ if (mNotesEditor->getReadOnly() == (enabled == TRUE))
+ {
+ mTitleEditor->setEnabled(enabled);
+ mNotesEditor->setReadOnly(!enabled);
+ mFolderCombo->setVisible(enabled);
+ getChild<LLTextBox>("folder_lable")->setVisible(enabled);
+
+ // HACK: To change the text color in a text editor
+ // when it was enabled/disabled we set the text once again.
+ mNotesEditor->setText(mNotesEditor->getText());
+ }
}
const std::string& LLPanelPlaceInfo::getLandmarkTitle() const
@@ -871,6 +878,11 @@ const LLUUID LLPanelPlaceInfo::getLandmarkFolder() const
return mFolderCombo->getValue().asUUID();
}
+BOOL LLPanelPlaceInfo::setLandmarkFolder(const LLUUID& id)
+{
+ return mFolderCombo->setCurrentByID(id);
+}
+
void LLPanelPlaceInfo::createLandmark(const LLUUID& folder_id)
{
std::string name = mTitleEditor->getText();
@@ -913,17 +925,6 @@ void LLPanelPlaceInfo::createPick(const LLVector3d& pos_global, LLPanelPick* pic
}
// virtual
-void LLPanelPlaceInfo::reshape(S32 width, S32 height, BOOL called_from_parent)
-{
- if (mMinHeight > 0 && mScrollingPanel != NULL)
- {
- mScrollingPanel->reshape(mScrollingPanel->getRect().getWidth(), mMinHeight);
- }
-
- LLView::reshape(width, height, called_from_parent);
-}
-
-// virtual
void LLPanelPlaceInfo::handleVisibilityChange (BOOL new_visibility)
{
LLPanel::handleVisibilityChange(new_visibility);
diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h
index 49aa195490..3e8344ff12 100644
--- a/indra/newview/llpanelplaceinfo.h
+++ b/indra/newview/llpanelplaceinfo.h
@@ -105,9 +105,11 @@ public:
// Displays information about the currently selected parcel
// without sending a request to the server.
+ // If is_current_parcel true shows "You Are Here" banner.
void displaySelectedParcelInfo(LLParcel* parcel,
LLViewerRegion* region,
- const LLVector3d& pos_global);
+ const LLVector3d& pos_global,
+ bool is_current_parcel);
void updateEstateName(const std::string& name);
void updateEstateOwnerName(const std::string& name);
@@ -124,8 +126,10 @@ public:
const std::string getLandmarkNotes() const;
const LLUUID getLandmarkFolder() const;
+ // Select current landmark folder in combobox.
+ BOOL setLandmarkFolder(const LLUUID& id);
+
/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
- /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
/*virtual*/ void handleVisibilityChange (BOOL new_visibility);
private:
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 35206f54c7..d415b17538 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -200,7 +200,7 @@ BOOL LLPanelPlaces::postBuild()
mFilterEditor = getChild<LLFilterEditor>("Filter");
if (mFilterEditor)
{
- mFilterEditor->setCommitCallback(boost::bind(&LLPanelPlaces::onFilterEdit, this, _2));
+ mFilterEditor->setCommitCallback(boost::bind(&LLPanelPlaces::onFilterEdit, this, _2, false));
}
mPlaceInfo = getChild<LLPanelPlaceInfo>("panel_place_info");
@@ -225,11 +225,12 @@ void LLPanelPlaces::onOpen(const LLSD& key)
return;
mFilterEditor->clear();
- onFilterEdit("");
+ onFilterEdit("", false);
mPlaceInfoType = key["type"].asString();
mPosGlobal.setZero();
mItem = NULL;
+ isLandmarkEditModeOn = false;
togglePlaceInfoPanel(TRUE);
updateVerbs();
@@ -317,21 +318,38 @@ void LLPanelPlaces::onOpen(const LLSD& key)
void LLPanelPlaces::setItem(LLInventoryItem* item)
{
- if (!item)
+ if (!mPlaceInfo || !item)
return;
mItem = item;
-
- // If the item is a link get a linked item
- if (mItem->getType() == LLAssetType::AT_LINK)
+
+ LLAssetType::EType item_type = mItem->getActualType();
+ if (item_type == LLAssetType::AT_LANDMARK || item_type == LLAssetType::AT_LINK)
{
- mItem = gInventory.getItem(mItem->getAssetUUID());
- if (mItem.isNull())
- return;
+ // If the item is a link get a linked item
+ if (item_type == LLAssetType::AT_LINK)
+ {
+ mItem = gInventory.getItem(mItem->getLinkedUUID());
+ if (mItem.isNull())
+ return;
+ }
}
-
- if (!mPlaceInfo)
+ else
+ {
return;
+ }
+
+ // Check if item is in agent's inventory and he has the permission to modify it.
+ BOOL is_landmark_editable = gInventory.isObjectDescendentOf(mItem->getUUID(), gInventory.getRootFolderID()) &&
+ mItem->getPermissions().allowModifyBy(gAgent.getID());
+
+ mEditBtn->setEnabled(is_landmark_editable);
+ mSaveBtn->setEnabled(is_landmark_editable);
+
+ if (is_landmark_editable)
+ {
+ mPlaceInfo->setLandmarkFolder(mItem->getParentUUID());
+ }
mPlaceInfo->displayItemInfo(mItem);
@@ -352,17 +370,11 @@ void LLPanelPlaces::onLandmarkLoaded(LLLandmark* landmark)
landmark->getRegionID(region_id);
landmark->getGlobalPos(mPosGlobal);
mPlaceInfo->displayParcelInfo(region_id, mPosGlobal);
-
- // Check if item is in agent's inventory and he has the permission to modify it.
- BOOL is_landmark_editable = mItem.notNull() &&
- gInventory.isObjectDescendentOf(mItem->getUUID(), gInventory.getRootFolderID()) &&
- mItem->getPermissions().allowModifyBy(gAgent.getID());
- mEditBtn->setEnabled(is_landmark_editable);
}
-void LLPanelPlaces::onFilterEdit(const std::string& search_string)
+void LLPanelPlaces::onFilterEdit(const std::string& search_string, bool force_filter)
{
- if (mFilterSubString != search_string)
+ if (force_filter || mFilterSubString != search_string)
{
mFilterSubString = search_string;
@@ -381,7 +393,7 @@ void LLPanelPlaces::onTabSelected()
if (!mActivePanel)
return;
- onFilterEdit(mFilterSubString);
+ onFilterEdit(mFilterSubString, true);
mActivePanel->updateVerbs();
}
@@ -487,22 +499,6 @@ void LLPanelPlaces::onSaveButtonClicked()
if (!mPlaceInfo || mItem.isNull())
return;
- LLAssetType::EType item_type = mItem->getType();
- if (item_type == LLAssetType::AT_LANDMARK || item_type != LLAssetType::AT_LINK)
- {
- // If the item is a link get a linked item
- if (item_type == LLAssetType::AT_LINK)
- {
- mItem = gInventory.getItem(mItem->getAssetUUID());
- if (mItem.isNull())
- return;
- }
- }
- else
- {
- return;
- }
-
std::string current_title_value = mPlaceInfo->getLandmarkTitle();
std::string item_title_value = mItem->getName();
std::string current_notes_value = mPlaceInfo->getLandmarkNotes();
@@ -511,73 +507,35 @@ void LLPanelPlaces::onSaveButtonClicked()
LLStringUtil::trim(current_title_value);
LLStringUtil::trim(current_notes_value);
- bool is_item_update_needed = false;
+ LLUUID item_id = mItem->getUUID();
+ LLUUID folder_id = mPlaceInfo->getLandmarkFolder();
+
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(mItem);
if (!current_title_value.empty() &&
(item_title_value != current_title_value || item_notes_value != current_notes_value))
{
- is_item_update_needed = true;
+ new_item->rename(current_title_value);
+ new_item->setDescription(current_notes_value);
+ new_item->updateServer(FALSE);
}
- LLUUID item_id = mItem->getUUID();
- LLUUID folder_id = mPlaceInfo->getLandmarkFolder();
-
- // Check if item is in agent's inventory and he has the permission to modify it.
- if (!gInventory.isObjectDescendentOf(item_id, gInventory.getRootFolderID()) ||
- !mItem->getPermissions().allowModifyBy(gAgent.getID()))
- return;
-
- if(folder_id != mItem->getParentUUID() || is_item_update_needed)
+ if(folder_id != mItem->getParentUUID())
{
- LLViewerInventoryItem* item = (LLViewerInventoryItem*)mItem.get();
- LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
-
- LLUUID favorites_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_FAVORITE);
-
- // If target is the favorites folder we create link to it.
- if (favorites_id == folder_id)
- {
- if (is_item_update_needed)
- {
- new_item->rename(current_title_value);
- new_item->setDescription(current_notes_value);
- new_item->updateServer(FALSE);
-
- gInventory.updateItem(new_item);
- gInventory.notifyObservers();
- }
-
- link_inventory_item(gAgent.getID(),
- item->getUUID(),
- folder_id,
- item->getName(),
- LLAssetType::AT_LINK,
- LLPointer<LLInventoryCallback>(NULL));
- }
- else
- {
- if (is_item_update_needed)
- {
- new_item->rename(current_title_value);
- new_item->setDescription(current_notes_value);
- new_item->updateServer(FALSE);
- }
+ LLInventoryModel::update_list_t update;
+ LLInventoryModel::LLCategoryUpdate old_folder(mItem->getParentUUID(),-1);
+ update.push_back(old_folder);
+ LLInventoryModel::LLCategoryUpdate new_folder(folder_id, 1);
+ update.push_back(new_folder);
+ gInventory.accountForUpdate(update);
- LLInventoryModel::update_list_t update;
- LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1);
- update.push_back(old_folder);
- LLInventoryModel::LLCategoryUpdate new_folder(folder_id, 1);
- update.push_back(new_folder);
- gInventory.accountForUpdate(update);
-
- new_item->setParent(folder_id);
- new_item->updateParentOnServer(FALSE);
-
- gInventory.updateItem(new_item);
- gInventory.notifyObservers();
- }
+ new_item->setParent(folder_id);
+ new_item->updateParentOnServer(FALSE);
}
+ gInventory.updateItem(new_item);
+ gInventory.notifyObservers();
+
onCancelButtonClicked();
}
@@ -593,6 +551,8 @@ void LLPanelPlaces::onCancelButtonClicked()
else
{
mPlaceInfo->toggleLandmarkEditMode(FALSE);
+ isLandmarkEditModeOn = false;
+
updateVerbs();
// Reload the landmark properties.
@@ -707,6 +667,8 @@ void LLPanelPlaces::onBackButtonClicked()
// Resetting mPlaceInfoType when Place Info panel is closed.
mPlaceInfoType = LLStringUtil::null;
+
+ isLandmarkEditModeOn = false;
}
updateVerbs();
@@ -766,7 +728,8 @@ void LLPanelPlaces::changedParcelSelection()
// If agent is inside the selected parcel show agent's region<X, Y, Z>,
// otherwise show region<X, Y, Z> of agent's selection point.
- if (is_agent_in_selected_parcel(parcel))
+ bool is_current_parcel = is_agent_in_selected_parcel(parcel);
+ if (is_current_parcel)
{
mPosGlobal = gAgent.getPositionGlobal();
}
@@ -780,7 +743,7 @@ void LLPanelPlaces::changedParcelSelection()
}
mPlaceInfo->resetLocation();
- mPlaceInfo->displaySelectedParcelInfo(parcel, region, mPosGlobal);
+ mPlaceInfo->displaySelectedParcelInfo(parcel, region, mPosGlobal, is_current_parcel);
updateVerbs();
}
@@ -885,8 +848,6 @@ void LLPanelPlaces::updateVerbs()
if (mActivePanel)
mActivePanel->updateVerbs();
}
-
- isLandmarkEditModeOn = false;
}
static bool is_agent_in_selected_parcel(LLParcel* parcel)
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index 0b3b3b5fc3..ce20ffdc91 100644
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
@@ -66,7 +66,7 @@ public:
private:
void onLandmarkLoaded(LLLandmark* landmark);
- void onFilterEdit(const std::string& search_string);
+ void onFilterEdit(const std::string& search_string, bool force_filter);
void onTabSelected();
//void onShareButtonClicked();
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index bc0dec1fdb..e1e3fe4677 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -163,11 +163,6 @@ void LLTeleportHistoryPanel::ContextMenu::show(LLView* spawning_view, S32 index,
mIndex = index;
mMenu = createMenu();
- LLViewerInventoryItem *landmark = LLLandmarkActions::findLandmarkForGlobalPos(
- LLTeleportHistoryStorage::getInstance()->getItems()[index].mGlobalPos);
-
- mMenu->setItemEnabled("Make Landmark", !landmark || landmark->getUUID().isNull());
-
mMenu->show(x, y);
LLMenuGL::showPopup(spawning_view, mMenu, x, y);
}
@@ -181,7 +176,6 @@ LLContextMenu* LLTeleportHistoryPanel::ContextMenu::createMenu()
registrar.add("TeleportHistory.Teleport", boost::bind(&LLTeleportHistoryPanel::ContextMenu::onTeleport, this));
registrar.add("TeleportHistory.MoreInformation",boost::bind(&LLTeleportHistoryPanel::ContextMenu::onInfo, this));
registrar.add("TeleportHistory.Copy", boost::bind(&LLTeleportHistoryPanel::ContextMenu::onCopy, this));
- registrar.add("TeleportHistory.MakeLandmark", boost::bind(&LLTeleportHistoryPanel::ContextMenu::onMakeLandmark, this));
// create the context menu from the XUI
return LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>(
@@ -211,12 +205,6 @@ void LLTeleportHistoryPanel::ContextMenu::onCopy()
boost::bind(&LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback, _1), false);
}
-void LLTeleportHistoryPanel::ContextMenu::onMakeLandmark()
-{
- //FIXME: it creates landmark for current agent positon, not for the global position of item of teleport history
- LLSideTray::getInstance()->showPanel("panel_places", LLSD().insert("type", "create_landmark"));
-}
-
// Not yet implemented; need to remove buildPanel() from constructor when we switch
//static LLRegisterPanelClassWrapper<LLTeleportHistoryPanel> t_teleport_history("panel_teleport_history");
@@ -225,6 +213,7 @@ LLTeleportHistoryPanel::LLTeleportHistoryPanel()
mFilterSubString(LLStringUtil::null),
mTeleportHistory(NULL),
mHistoryAccordion(NULL),
+ mStarButton(NULL),
mAccordionTabMenu(NULL),
mLastSelectedScrollList(NULL)
{
@@ -233,6 +222,7 @@ LLTeleportHistoryPanel::LLTeleportHistoryPanel()
LLTeleportHistoryPanel::~LLTeleportHistoryPanel()
{
+ LLView::deleteViewByHandle(mGearMenuHandle);
}
BOOL LLTeleportHistoryPanel::postBuild()
@@ -247,13 +237,13 @@ BOOL LLTeleportHistoryPanel::postBuild()
if (mHistoryAccordion)
{
-
for (child_list_const_iter_t iter = mHistoryAccordion->beginChild(); iter != mHistoryAccordion->endChild(); iter++)
{
if (dynamic_cast<LLAccordionCtrlTab*>(*iter))
{
LLAccordionCtrlTab* tab = (LLAccordionCtrlTab*)*iter;
tab->setRightMouseDownCallback(boost::bind(&LLTeleportHistoryPanel::onAccordionTabRightClick, this, _1, _2, _3, _4));
+ tab->setDisplayChildren(false);
mItemContainers.put(tab);
@@ -266,8 +256,30 @@ BOOL LLTeleportHistoryPanel::postBuild()
}
}
}
+
+ // Open first 2 accordion tabs
+ if (mItemContainers.size() > 1)
+ mItemContainers.get(mItemContainers.size() - 1)->setDisplayChildren(true);
+
+ if (mItemContainers.size() > 2)
+ mItemContainers.get(mItemContainers.size() - 2)->setDisplayChildren(true);
}
+ getChild<LLPanel>("bottom_panel")->childSetAction("gear_btn",boost::bind(&LLTeleportHistoryPanel::onGearButtonClicked, this));
+
+ LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
+
+ registrar.add("TeleportHistory.ExpandAllFolders", boost::bind(&LLTeleportHistoryPanel::onExpandAllFolders, this));
+ registrar.add("TeleportHistory.CollapseAllFolders", boost::bind(&LLTeleportHistoryPanel::onCollapseAllFolders, this));
+ registrar.add("TeleportHistory.ClearTeleportHistory", boost::bind(&LLTeleportHistoryPanel::onClearTeleportHistory, this));
+
+ LLMenuGL* gear_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_teleport_history_gear.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ if(gear_menu)
+ mGearMenuHandle = gear_menu->getHandle();
+
+ mStarButton = getChild<LLButton>("star_btn");
+ mStarButton->setCommitCallback(boost::bind(&LLTeleportHistoryPanel::onStarButtonCommit, this));
+
return TRUE;
}
@@ -293,7 +305,7 @@ void LLTeleportHistoryPanel::onShowOnMap()
return;
LLVector3d global_pos = mTeleportHistory->getItems()[itemp->getIndex()].mGlobalPos;
-
+
if (!global_pos.isExactlyZero())
{
LLFloaterWorldMap::getInstance()->trackLocation(global_pos);
@@ -342,20 +354,47 @@ void LLTeleportHistoryPanel::onCopySLURL()
// virtual
void LLTeleportHistoryPanel::updateVerbs()
{
- if (!isTabVisible())
+ if (!isTabVisible())
return;
if (!mLastSelectedScrollList)
{
mTeleportBtn->setEnabled(false);
mShowOnMapBtn->setEnabled(false);
+ mStarButton->setEnabled(false);
+ mStarButton->setToolTip(LLStringExplicit(""));
return;
}
LLTeleportHistoryFlatItem* itemp = dynamic_cast<LLTeleportHistoryFlatItem *> (mLastSelectedScrollList->getSelectedItem());
- mTeleportBtn->setEnabled(NULL != itemp && 0 < itemp->getIndex());
+ mTeleportBtn->setEnabled(NULL != itemp && itemp->getIndex() < (S32)mTeleportHistory->getItems().size() - 1);
mShowOnMapBtn->setEnabled(NULL != itemp);
+
+ if (NULL != itemp)
+ {
+ LLViewerInventoryItem *landmark = LLLandmarkActions::findLandmarkForGlobalPos(
+ mTeleportHistory->getItems()[itemp->getIndex()].mGlobalPos);
+
+ mStarButton->setEnabled(true);
+ if (!landmark || landmark->getUUID().isNull())
+ {
+ mStarButton->setToggleState(true);
+ // Landmark can be created only for current agent positon, which is most recent (last) item in teleport history.
+ // mTeleportBtn is disabled only for that item.
+ mStarButton->setToolTip(mTeleportBtn->getEnabled() ? getString("cant_create_lm_here") : getString("create_landmark"));
+ }
+ else
+ {
+ mStarButton->setToggleState(false);
+ mStarButton->setToolTip(getString("open_landmark"));
+ }
+ }
+ else
+ {
+ mStarButton->setEnabled(false);
+ mStarButton->setToolTip(LLStringExplicit(""));
+ }
}
void LLTeleportHistoryPanel::showTeleportHistory()
@@ -375,23 +414,23 @@ void LLTeleportHistoryPanel::showTeleportHistory()
curr_date.split(&curr_year, &curr_month, &curr_day);
curr_date.fromYMDHMS(curr_year, curr_month, curr_day); // Set hour, min, and sec to 0
curr_date.secondsSinceEpoch(curr_date.secondsSinceEpoch() + seconds_in_day);
-
+
LLFlatListView* curr_flat_view = NULL;
S32 index = hist_items.size() - 1;
for (LLTeleportHistoryStorage::slurl_list_t::const_reverse_iterator iter = hist_items.rbegin();
- iter != hist_items.rend(); ++iter)
+ iter != hist_items.rend(); ++iter, --index)
{
std::string landmark_title = (*iter).mTitle;
LLStringUtil::toUpper(landmark_title);
std::string::size_type match_offset = mFilterSubString.size() ? landmark_title.find(mFilterSubString) : std::string::npos;
bool passed = mFilterSubString.size() == 0 || match_offset != std::string::npos;
-
+
if (!passed)
continue;
-
+
if (curr_tab < tabs_cnt - 1)
{
const LLDate &date = (*iter).mDate;
@@ -405,7 +444,7 @@ void LLTeleportHistoryPanel::showTeleportHistory()
tab = mItemContainers.get(mItemContainers.size() - 1 - curr_tab);
tab->setVisible(false);
-
+
if (curr_tab <= tabs_cnt - 4)
{
curr_date.secondsSinceEpoch(curr_date.secondsSinceEpoch() - seconds_in_day);
@@ -436,7 +475,6 @@ void LLTeleportHistoryPanel::showTeleportHistory()
curr_year--;
}
curr_date.fromYMDHMS(curr_year, curr_month, curr_day);
-
}
else // 6 months and older
{
@@ -455,11 +493,9 @@ void LLTeleportHistoryPanel::showTeleportHistory()
}
if (curr_flat_view)
- {
+ {
curr_flat_view->addItem(new LLTeleportHistoryFlatItem(index, &mContextMenu, (*iter).mTitle));
}
-
- index--;
}
// Hide empty tabs from current to bottom
@@ -553,6 +589,50 @@ void LLTeleportHistoryPanel::onAccordionTabClose(LLAccordionCtrlTab *tab)
mHistoryAccordion->arrange();
}
+void LLTeleportHistoryPanel::onExpandAllFolders()
+{
+ S32 tabs_cnt = mItemContainers.size();
+
+ for (S32 n = 0; n < tabs_cnt; n++)
+ {
+ mItemContainers.get(n)->setDisplayChildren(true);
+ }
+ mHistoryAccordion->arrange();
+}
+
+void LLTeleportHistoryPanel::onCollapseAllFolders()
+{
+ S32 tabs_cnt = mItemContainers.size();
+
+ for (S32 n = 0; n < tabs_cnt; n++)
+ {
+ mItemContainers.get(n)->setDisplayChildren(false);
+ }
+ mHistoryAccordion->arrange();
+}
+
+void LLTeleportHistoryPanel::onClearTeleportHistory()
+{
+ LLNotifications::instance().add("ConfirmClearTeleportHistory", LLSD(), LLSD(), boost::bind(&LLTeleportHistoryPanel::onClearTeleportHistoryDialog, this, _1, _2));
+}
+
+bool LLTeleportHistoryPanel::onClearTeleportHistoryDialog(const LLSD& notification, const LLSD& response)
+{
+
+ S32 option = LLNotification::getSelectedOption(notification, response);
+
+ if (0 == option)
+ {
+ LLTeleportHistoryStorage *th = LLTeleportHistoryStorage::getInstance();
+ th->purgeItems();
+ th->save();
+
+ showTeleportHistory();
+ }
+
+ return false;
+}
+
LLFlatListView* LLTeleportHistoryPanel::getFlatListViewFromTab(LLAccordionCtrlTab *tab)
{
for (child_list_const_iter_t iter = tab->beginChild(); iter != tab->endChild(); iter++)
@@ -566,3 +646,49 @@ LLFlatListView* LLTeleportHistoryPanel::getFlatListViewFromTab(LLAccordionCtrlTa
return NULL;
}
+void LLTeleportHistoryPanel::onGearButtonClicked()
+{
+ LLMenuGL* menu = (LLMenuGL*)mGearMenuHandle.get();
+ if (!menu)
+ return;
+
+ // Shows the menu at the top of the button bar.
+
+ // Calculate its coordinates.
+ LLPanel* bottom_panel = getChild<LLPanel>("bottom_panel");
+ menu->arrangeAndClear();
+ S32 menu_height = menu->getRect().getHeight();
+ S32 menu_x = -2; // *HACK: compensates HPAD in showPopup()
+ S32 menu_y = bottom_panel->getRect().mTop + menu_height;
+
+ // Actually show the menu.
+ menu->buildDrawLabels();
+ menu->updateParent(LLMenuGL::sMenuContainer);
+ LLMenuGL::showPopup(this, menu, menu_x, menu_y);
+}
+
+void LLTeleportHistoryPanel::onStarButtonCommit()
+{
+ if (!mLastSelectedScrollList)
+ return;
+
+ LLTeleportHistoryFlatItem* itemp = dynamic_cast<LLTeleportHistoryFlatItem *> (mLastSelectedScrollList->getSelectedItem());
+ if(!itemp)
+ return;
+
+ if (itemp->getIndex() < (S32)mTeleportHistory->getItems().size() - 1)
+ {
+ LLTeleportHistoryFlatItem::showPlaceInfoPanel(itemp->getIndex());
+ }
+ else
+ {
+ LLViewerInventoryItem *landmark = LLLandmarkActions::findLandmarkForGlobalPos(
+ mTeleportHistory->getItems()[itemp->getIndex()].mGlobalPos);
+
+ if (!landmark || landmark->getUUID().isNull())
+ LLSideTray::getInstance()->showPanel("panel_places", LLSD().insert("type", "create_landmark"));
+ else
+ LLTeleportHistoryFlatItem::showPlaceInfoPanel(itemp->getIndex());
+ }
+}
+
diff --git a/indra/newview/llpanelteleporthistory.h b/indra/newview/llpanelteleporthistory.h
index c4b7f995e0..f487c92836 100644
--- a/indra/newview/llpanelteleporthistory.h
+++ b/indra/newview/llpanelteleporthistory.h
@@ -52,16 +52,15 @@ public:
public:
ContextMenu();
void show(LLView* spawning_view, S32 index, S32 x, S32 y);
-
+
private:
LLContextMenu* createMenu();
void onTeleport();
void onInfo();
void onCopy();
- void onMakeLandmark();
static void gotSLURLCallback(const std::string& slurl);
-
+
LLContextMenu* mMenu;
S32 mIndex;
};
@@ -82,12 +81,21 @@ private:
void onAccordionTabRightClick(LLView *view, S32 x, S32 y, MASK mask);
void onAccordionTabOpen(LLAccordionCtrlTab *tab);
void onAccordionTabClose(LLAccordionCtrlTab *tab);
+ void onExpandAllFolders();
+ void onCollapseAllFolders();
+ void onClearTeleportHistory();
+ bool onClearTeleportHistoryDialog(const LLSD& notification, const LLSD& response);
+
void showTeleportHistory();
void handleItemSelect(LLFlatListView* );
LLFlatListView* getFlatListViewFromTab(LLAccordionCtrlTab *);
+ void onGearButtonClicked();
+ void onStarButtonCommit();
LLTeleportHistoryStorage* mTeleportHistory;
LLAccordionCtrl* mHistoryAccordion;
+ LLButton * mStarButton;
+
LLFlatListView* mLastSelectedScrollList;
std::string mFilterSubString;
@@ -96,6 +104,7 @@ private:
ContextMenu mContextMenu;
LLContextMenu* mAccordionTabMenu;
+ LLHandle<LLView> mGearMenuHandle;
};
#endif //LL_LLPANELTELEPORTHISTORY_H
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index ab253e012d..b06e70c00a 100644
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
@@ -492,3 +492,31 @@ void LLMultiPreview::tabOpen(LLFloater* opened_floater, bool from_click)
}
}
+
+void LLPreview::setAssetId(const LLUUID& asset_id)
+{
+ const LLViewerInventoryItem* item = dynamic_cast<const LLViewerInventoryItem*>(getItem());
+ if(NULL == item)
+ {
+ return;
+ }
+
+ if(mObjectUUID.isNull())
+ {
+ // Update avatar inventory asset_id.
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+ new_item->setAssetUUID(asset_id);
+ gInventory.updateItem(new_item);
+ gInventory.notifyObservers();
+ }
+ else
+ {
+ // Update object inventory asset_id.
+ LLViewerObject* object = gObjectList.findObject(mObjectUUID);
+ if(NULL == object)
+ {
+ return;
+ }
+ object->updateViewerInventoryAsset(item, asset_id);
+ }
+}
diff --git a/indra/newview/llpreview.h b/indra/newview/llpreview.h
index c5f2bfcf47..506c135ca6 100644
--- a/indra/newview/llpreview.h
+++ b/indra/newview/llpreview.h
@@ -77,6 +77,7 @@ public:
void setObjectID(const LLUUID& object_id);
void setItem( LLInventoryItem* item );
+ void setAssetId(const LLUUID& asset_id);
const LLInventoryItem* getItem() const; // searches if not constructed with it
static void hide(const LLUUID& item_uuid, BOOL no_saving = FALSE );
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 32ed20bd56..ab2afb8056 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -1178,7 +1178,7 @@ void LLPreviewGesture::onSaveComplete(const LLUUID& asset_uuid, void* user_data,
else
{
llwarns << "Inventory item for gesture " << info->mItemUUID
- << " is no longer in agent inventory." << llendl
+ << " is no longer in agent inventory." << llendl;
}
}
else
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 19bb60b237..ac7abf1448 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -1260,7 +1260,7 @@ void LLPreviewLSL::onSaveComplete(const LLUUID& asset_uuid, void* user_data, S32
else
{
llwarns << "Inventory item for script " << info->mItemUUID
- << " is no longer in agent inventory." << llendl
+ << " is no longer in agent inventory." << llendl;
}
// Find our window and close it if requested.
@@ -1383,6 +1383,7 @@ void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAsset
delete item_uuid;
}
+
/// ---------------------------------------------------------------------------
/// LLLiveLSLEditor
/// ---------------------------------------------------------------------------
@@ -2145,6 +2146,7 @@ void LLLiveLSLEditor::processScriptRunningReply(LLMessageSystem* msg, void**)
}
}
+
void LLLiveLSLEditor::onMonoCheckboxClicked(LLUICtrl*, void* userdata)
{
LLLiveLSLEditor* self = static_cast<LLLiveLSLEditor*>(userdata);
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 9d7338c111..9c21faa3be 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -38,6 +38,7 @@
#include "llagent.h"
#include "llbutton.h"
+#include "llcombobox.h"
#include "llfilepicker.h"
#include "llfloaterreg.h"
#include "llimagetga.h"
@@ -57,6 +58,10 @@ const S32 CLIENT_RECT_VPAD = 4;
const F32 SECONDS_TO_SHOW_FILE_SAVED_MSG = 8.f;
+const F32 PREVIEW_TEXTURE_MAX_ASPECT = 200.f;
+const F32 PREVIEW_TEXTURE_MIN_ASPECT = 0.005f;
+
+
LLPreviewTexture::LLPreviewTexture(const LLSD& key)
: LLPreview( key ),
mLoadingFullImage( FALSE ),
@@ -65,7 +70,8 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key)
mIsCopyable(FALSE),
mUpdateDimensions(TRUE),
mLastHeight(0),
- mLastWidth(0)
+ mLastWidth(0),
+ mAspectRatio(0.f)
{
const LLInventoryItem *item = getItem();
if(item)
@@ -144,6 +150,10 @@ BOOL LLPreviewTexture::postBuild()
}
}
+ childSetCommitCallback("combo_aspect_ratio", onAspectRatioCommit, this);
+ LLComboBox* combo = getChild<LLComboBox>("combo_aspect_ratio");
+ combo->setCurrentByIndex(0);
+
return LLPreview::postBuild();
}
@@ -369,8 +379,13 @@ void LLPreviewTexture::updateDimensions()
S32 max_client_width = gViewerWindow->getWindowWidth() - horiz_pad;
S32 max_client_height = gViewerWindow->getWindowHeight() - vert_pad;
+ if (mAspectRatio > 0.f)
+ {
+ client_height = llceil((F32)client_width / mAspectRatio);
+ }
+
while ((client_width > max_client_width) ||
- (client_height > max_client_height ) )
+ (client_height > max_client_height ))
{
client_width /= 2;
client_height /= 2;
@@ -383,12 +398,12 @@ void LLPreviewTexture::updateDimensions()
childSetTextArg("dimensions", "[WIDTH]", llformat("%d", mImage->getFullWidth()));
childSetTextArg("dimensions", "[HEIGHT]", llformat("%d", mImage->getFullHeight()));
- // add space for dimensions
+ // add space for dimensions and aspect ratio
S32 info_height = 0;
- LLRect dim_rect;
- childGetRect("dimensions", dim_rect);
- S32 dim_height = dim_rect.getHeight();
- info_height += dim_height + CLIENT_RECT_VPAD;
+ LLRect aspect_rect;
+ childGetRect("combo_aspect_ratio", aspect_rect);
+ S32 aspect_height = aspect_rect.getHeight();
+ info_height += aspect_height + CLIENT_RECT_VPAD;
view_height += info_height;
S32 button_height = 0;
@@ -445,24 +460,96 @@ void LLPreviewTexture::updateDimensions()
else
{
client_width = getRect().getWidth() - horiz_pad;
- client_height = getRect().getHeight() - vert_pad;
+ if (mAspectRatio > 0)
+ {
+ client_height = llround(client_width / mAspectRatio);
+ }
+ else
+ {
+ client_height = getRect().getHeight() - vert_pad;
+ }
}
- S32 max_height = getRect().getHeight() - PREVIEW_BORDER - button_height
+ S32 max_height = getRect().getHeight() - PREVIEW_BORDER - button_height
- CLIENT_RECT_VPAD - info_height - CLIENT_RECT_VPAD - PREVIEW_HEADER_SIZE;
- S32 max_width = getRect().getWidth() - horiz_pad;
- client_height = llclamp(client_height, 1, max_height);
- client_width = llclamp(client_width, 1, max_width);
+ if (mAspectRatio > 0.f)
+ {
+ max_height = llmax(max_height, 1);
+
+ if (client_height > max_height)
+ {
+ client_height = max_height;
+ client_width = llround(client_height * mAspectRatio);
+ }
+ }
+ else
+ {
+ S32 max_width = getRect().getWidth() - horiz_pad;
+
+ client_height = llclamp(client_height, 1, max_height);
+ client_width = llclamp(client_width, 1, max_width);
+ }
LLRect window_rect(0, getRect().getHeight(), getRect().getWidth(), 0);
window_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);
window_rect.mBottom += PREVIEW_BORDER + button_height + CLIENT_RECT_VPAD + info_height + CLIENT_RECT_VPAD;
- mClientRect.setLeftTopAndSize(window_rect.getCenterX() - (client_width / 2), window_rect.mTop, client_width, client_height);
+ mClientRect.setLeftTopAndSize(window_rect.getCenterX() - (client_width / 2), window_rect.mTop, client_width, client_height);
+
+ // Hide the aspect ratio label if the window is too narrow
+ // Assumes the label should be to the right of the dimensions
+ LLRect dim_rect, aspect_label_rect;
+ childGetRect("aspect_ratio", aspect_label_rect);
+ childGetRect("dimensions", dim_rect);
+ childSetVisible("aspect_ratio", dim_rect.mRight < aspect_label_rect.mLeft);
+}
+
+
+// Return true if everything went fine, false if we somewhat modified the ratio as we bumped on border values
+bool LLPreviewTexture::setAspectRatio(const F32 width, const F32 height)
+{
+ mUpdateDimensions = TRUE;
+
+ // We don't allow negative width or height. Also, if height is positive but too small, we reset to default
+ // A default 0.f value for mAspectRatio means "unconstrained" in the rest of the code
+ if ((width <= 0.f) || (height <= F_APPROXIMATELY_ZERO))
+ {
+ mAspectRatio = 0.f;
+ return false;
+ }
+
+ // Compute and store the ratio
+ F32 ratio = width / height;
+ mAspectRatio = llclamp(ratio, PREVIEW_TEXTURE_MIN_ASPECT, PREVIEW_TEXTURE_MAX_ASPECT);
+
+ // Return false if we clamped the value, true otherwise
+ return (ratio == mAspectRatio);
}
+void LLPreviewTexture::onAspectRatioCommit(LLUICtrl* ctrl, void* userdata)
+{
+ LLPreviewTexture* self = (LLPreviewTexture*) userdata;
+
+ std::string ratio(ctrl->getValue().asString());
+ std::string::size_type separator(ratio.find_first_of(":/\\"));
+
+ if (std::string::npos == separator) {
+ // If there's no separator assume we want an unconstrained ratio
+ self->setAspectRatio( 0.f, 0.f );
+ return;
+ }
+
+ F32 width, height;
+ std::istringstream numerator(ratio.substr(0, separator));
+ std::istringstream denominator(ratio.substr(separator + 1));
+ numerator >> width;
+ denominator >> height;
+
+ self->setAspectRatio( width, height );
+}
+
void LLPreviewTexture::loadAsset()
{
mImage = LLViewerTextureManager::getFetchedTexture(mImageID, MIPMAP_TRUE, FALSE, LLViewerTexture::LOD_TEXTURE);
diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h
index 9ace304fa6..520626b49f 100644
--- a/indra/newview/llpreviewtexture.h
+++ b/indra/newview/llpreviewtexture.h
@@ -38,6 +38,7 @@
#include "llframetimer.h"
#include "llviewertexture.h"
+class LLComboBox;
class LLImageRaw;
class LLPreviewTexture : public LLPreview
@@ -71,7 +72,9 @@ public:
protected:
void init();
/* virtual */ BOOL postBuild();
-
+ bool setAspectRatio(const F32 width, const F32 height);
+ static void onAspectRatioCommit(LLUICtrl*,void* userdata);
+
private:
void updateDimensions();
LLUUID mImageID;
@@ -88,6 +91,7 @@ private:
S32 mLastHeight;
S32 mLastWidth;
+ F32 mAspectRatio;
BOOL mUpdateDimensions;
};
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index d163ceb30e..288cf728b9 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -545,7 +545,7 @@ BOOL LLSelectMgr::removeObjectFromSelections(const LLUUID &id)
object_found = TRUE;
break; // must break here, may have removed multiple objects from list
}
- else if (object->isAvatar())
+ else if (object->isAvatar() && object->getParent() && ((LLViewerObject*)object->getParent())->mID == id)
{
// It's possible the item being removed has an avatar sitting on it
// So remove the avatar that is sitting on the object.
diff --git a/indra/newview/llsky.cpp b/indra/newview/llsky.cpp
index a49b07c5d9..de99cb86fa 100644
--- a/indra/newview/llsky.cpp
+++ b/indra/newview/llsky.cpp
@@ -66,6 +66,9 @@ F32 elevation_from_vector(const LLVector3 &v);
LLSky gSky;
// ---------------- LLSky ----------------
+const F32 LLSky::NIGHTTIME_ELEVATION = -8.0f; // degrees
+const F32 LLSky::NIGHTTIME_ELEVATION_COS = (F32)sin(NIGHTTIME_ELEVATION*DEG_TO_RAD);
+
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llsky.h b/indra/newview/llsky.h
index abd4205e6c..d7796dea83 100644
--- a/indra/newview/llsky.h
+++ b/indra/newview/llsky.h
@@ -42,9 +42,6 @@
#include "llvosky.h"
#include "llvoground.h"
-const F32 NIGHTTIME_ELEVATION = -8.0f; // degrees
-const F32 NIGHTTIME_ELEVATION_COS = (F32)sin(NIGHTTIME_ELEVATION*DEG_TO_RAD);
-
class LLViewerCamera;
class LLVOWLSky;
@@ -111,6 +108,9 @@ public:
// Legacy stuff
LLVector3 mSunDefaultPosition;
+ static const F32 NIGHTTIME_ELEVATION; // degrees
+ static const F32 NIGHTTIME_ELEVATION_COS;
+
protected:
BOOL mOverrideSimSunPosition;
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index fed6836588..26c8030dd1 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -187,6 +187,7 @@
#include "llwearable.h"
#include "llinventorybridge.h"
#include "llappearancemgr.h"
+#include "llavatariconctrl.h"
#include "lllogin.h"
#include "llevents.h"
@@ -963,6 +964,13 @@ bool idle_startup()
LLFile::mkdir(gDirUtilp->getChatLogsDir());
LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir());
+ // chat history must be loaded AFTER chat directories are defined.
+ if (!gNoRender && gSavedPerAccountSettings.getBOOL("LogShowHistory"))
+ {
+ LLFloaterChat::loadHistory();
+ }
+
+
//good as place as any to create user windlight directories
std::string user_windlight_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight", ""));
LLFile::mkdir(user_windlight_path_name.c_str());
@@ -993,6 +1001,9 @@ bool idle_startup()
// Load location history
LLLocationHistory::getInstance()->load();
+ // Load Avatars icons cache
+ LLAvatarIconIDCache::getInstance()->load();
+
//-------------------------------------------------
// Handle startup progress screen
//-------------------------------------------------
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index c5a92f52d0..67a0528a06 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -112,9 +112,12 @@ BOOL LLSysWellWindow::postBuild()
void LLSysWellWindow::setMinimized(BOOL minimize)
{
// we don't show empty Message Well window
- setVisible(!minimize && !isWindowEmpty());
+ if (!minimize)
+ {
+ setVisible(!isWindowEmpty());
+ }
- LLFloater::setMinimized(minimize);
+ LLDockableFloater::setMinimized(minimize);
}
//---------------------------------------------------------------------------------
@@ -264,7 +267,7 @@ void LLSysWellWindow::toggleWindow()
getDockTongue(), LLDockControl::TOP, boost::bind(&LLSysWellWindow::getAllowedRect, this, _1)));
}
- if(!getVisible())
+ if(!getVisible() || isMinimized())
{
if(isWindowEmpty())
{
@@ -273,7 +276,7 @@ void LLSysWellWindow::toggleWindow()
setVisible(TRUE);
}
- else
+ else if (isDocked())
{
setVisible(FALSE);
}
diff --git a/indra/newview/llteleporthistorystorage.cpp b/indra/newview/llteleporthistorystorage.cpp
index 0bb5a727e0..a588153ca2 100644
--- a/indra/newview/llteleporthistorystorage.cpp
+++ b/indra/newview/llteleporthistorystorage.cpp
@@ -100,6 +100,7 @@ void LLTeleportHistoryStorage::onTeleportHistoryChange()
void LLTeleportHistoryStorage::purgeItems()
{
mItems.clear();
+ mHistoryChangedSignal();
}
void LLTeleportHistoryStorage::addItem(const std::string title, const LLVector3d& global_pos)
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 43f82e592b..b5aec1b80b 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -1066,15 +1066,17 @@ BOOL LLTextureCtrl::handleHover(S32 x, S32 y, MASK mask)
BOOL LLTextureCtrl::handleMouseDown(S32 x, S32 y, MASK mask)
{
BOOL handled = LLUICtrl::handleMouseDown( x, y , mask );
- if( handled )
+
+ if( !handled )
{
showPicker(FALSE);
-
//grab textures first...
gInventory.startBackgroundFetch(gInventory.findCategoryUUIDForType(LLAssetType::AT_TEXTURE));
//...then start full inventory fetch.
gInventory.startBackgroundFetch();
+ handled = TRUE;
}
+
return handled;
}
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 63af170fa9..88fc7f98c0 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -1371,7 +1371,7 @@ bool LLTextureFetch::createRequest(const std::string& filename, const LLUUID& id
}
else if (w*h*c > 0)
{
- // If the requester knows the dimentions of the image,
+ // If the requester knows the dimensions of the image,
// this will calculate how much data we need without having to parse the header
desired_size = LLImageJ2C::calcDataSizeJ2C(w, h, c, desired_discard);
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index 6f373a74bd..e26a0776ff 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -128,7 +128,18 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
pAttachLink->setVisible(hasInventory);
pAttachIcon->setVisible(hasInventory);
if (hasInventory) {
- pAttachLink->setValue(payload["inventory_name"]);
+ std::string dis_name;
+ std::string inv_name = payload["inventory_name"];
+
+ if (LLViewerInventoryItem::extractSortFieldAndDisplayName(inv_name, NULL, &dis_name))
+ {
+ pAttachLink->setValue(dis_name);
+ }
+ else
+ {
+ pAttachLink->setValue(inv_name);
+ }
+
mInventoryOffer = new LLOfferInfo(payload["inventory_offer"]);
childSetActionTextbox("attachment", boost::bind(
&LLToastGroupNotifyPanel::onClickAttachment, this));
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index fe1492d937..c2cd63900b 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -66,6 +66,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
mReplyBtn->setVisible(FALSE);
S32 btn_height = mReplyBtn->getRect().getHeight();
LLRect msg_rect = mMessage->getRect();
+ mMessage->reshape(msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
msg_rect.setLeftTopAndSize(msg_rect.mLeft, msg_rect.mTop, msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
mMessage->setRect(msg_rect);
}
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index 68ad043129..7b477470aa 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -65,7 +65,6 @@ void LLToastPanel::snapToMessageHeight(LLTextBox* message, S32 maxLineCount)
//This needed to calculate lines count according to specified text
heightDelta = maxTextHeight - oldTextHeight;
reshape( getRect().getWidth(), getRect().getHeight() + heightDelta);
- message->setValue(message->getText());
//Knowing the height is set to max allowed, getTextPixelHeight returns needed text height
//Perhaps we need to pass maxLineCount as parameter to getTextPixelHeight to avoid previous reshape.
@@ -77,7 +76,6 @@ void LLToastPanel::snapToMessageHeight(LLTextBox* message, S32 maxLineCount)
//reshape the panel with new height
reshape( getRect().getWidth(), getRect().getHeight() + heightDelta);
- message->setValue(message->getText());
}
}
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index beb16c267e..b015f668e4 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -703,7 +703,8 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
.image(LLUI::getUIImage("Info"))
.click_callback(boost::bind(showAvatarInspector, hover_object->getID()))
.visible_time_near(6.f)
- .visible_time_far(3.f));
+ .visible_time_far(3.f)
+ .wrap(false));
}
}
else
@@ -746,7 +747,8 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
.image(LLUI::getUIImage("Info"))
.click_callback(boost::bind(showObjectInspector, hover_object->getID()))
.visible_time_near(6.f)
- .visible_time_far(3.f));
+ .visible_time_far(3.f)
+ .wrap(false));
}
}
}
diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp
index 046b3e619b..258c3ddd75 100644
--- a/indra/newview/llurllineeditorctrl.cpp
+++ b/indra/newview/llurllineeditorctrl.cpp
@@ -38,6 +38,7 @@
#include "llurllineeditorctrl.h"
#include "llweb.h"
+#include "llslurl.h"
//Constructor
LLURLLineEditor::LLURLLineEditor(const LLLineEditor::Params& p)
@@ -87,8 +88,13 @@ void LLURLLineEditor::copyEscapedURLToClipboard()
S32 length = llabs( mSelectionStart - mSelectionEnd );
const std::string unescaped_text = wstring_to_utf8str(mText.getWString().substr(left_pos, length));
- LLWString selected_escaped_text = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text));
- gClipboard.copyFromString( selected_escaped_text );
+ LLWString text_to_copy;
+ if (LLSLURL::isSLURL(unescaped_text))
+ text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text));
+ else
+ text_to_copy = utf8str_to_wstring(unescaped_text);
+
+ gClipboard.copyFromString( text_to_copy );
}
// Makes UISndBadKeystroke sound
void LLURLLineEditor::reportBadKeystroke()
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp
index ee6ef6ffee..f65baea6ca 100644
--- a/indra/newview/llviewercamera.cpp
+++ b/indra/newview/llviewercamera.cpp
@@ -120,9 +120,8 @@ void LLViewerCamera::updateCameraLocation(const LLVector3 &center,
const LLVector3 &up_direction,
const LLVector3 &point_of_interest)
{
- // do not update if we are in build mode AND avatar didn't move
- if (LLToolMgr::getInstance()->inBuildMode()
- && !LLViewerJoystick::getInstance()->getCameraNeedsUpdate())
+ // do not update if avatar didn't move
+ if (!LLViewerJoystick::getInstance()->getCameraNeedsUpdate())
{
return;
}
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 24f4745c18..b71291f834 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -503,6 +503,12 @@ bool toggle_show_camera_button(const LLSD& newvalue)
return true;
}
+bool toggle_show_snapshot_button(const LLSD& newvalue)
+{
+ LLBottomTray::getInstance()->showSnapshotButton(newvalue.asBoolean());
+ return true;
+}
+
bool toggle_show_navigation_panel(const LLSD& newvalue)
{
LLNavigationBar::getInstance()->showNavigationPanel(newvalue.asBoolean());
@@ -654,6 +660,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("ShowGestureButton")->getSignal()->connect(boost::bind(&toggle_show_gesture_button, _2));
gSavedSettings.getControl("ShowMoveButton")->getSignal()->connect(boost::bind(&toggle_show_move_button, _2));
gSavedSettings.getControl("ShowCameraButton")->getSignal()->connect(boost::bind(&toggle_show_camera_button, _2));
+ gSavedSettings.getControl("ShowSnapshotButton")->getSignal()->connect(boost::bind(&toggle_show_snapshot_button, _2));
gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&toggle_show_navigation_panel, _2));
gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&toggle_show_favorites_panel, _2));
}
@@ -681,7 +688,7 @@ static LLCachedControl<std::string> test_BrowserHomePage("BrowserHomePage", "hah
void test_cached_control()
{
-#define TEST_LLCC(T, V) if((T)mySetting_##T != V) llerrs << "Fail "#T << llendl
+#define do { TEST_LLCC(T, V) if((T)mySetting_##T != V) llerrs << "Fail "#T << llendl; } while(0)
TEST_LLCC(U32, 666);
TEST_LLCC(S32, (S32)-666);
TEST_LLCC(F32, (F32)-666.666);
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 8c46949d70..22081f9efa 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -58,7 +58,6 @@
#include "llfloaterchatterbox.h"
#include "llfloaterdaycycle.h"
#include "llfloaterdirectory.h"
-#include "llfloaterfirsttimetip.h"
#include "llfloaterenvsettings.h"
#include "llfloaterfonttest.h"
#include "llfloatergesture.h"
@@ -154,7 +153,6 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>);
LLFloaterReg::add("contacts", "floater_my_friends.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMyFriends>);
- LLFloaterReg::add("first_time_tip", "floater_first_time_tip.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFirstTimeTip>);
LLFloaterReg::add("env_day_cycle", "floater_day_cycle_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDayCycle>);
LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>);
LLFloaterReg::add("env_settings", "floater_env_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvSettings>);
@@ -234,7 +232,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("snapshot", "floater_snapshot.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSnapshot>);
LLFloaterReg::add("search", "floater_directory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDirectory>);
- LLFloaterReg::add("ui_preview", "floater_ui_preview.xml", &LLFloaterReg::build<LLFloaterUIPreview>);
+ LLFloaterUIPreviewUtil::registerFloater();
LLFloaterReg::add("upload_anim", "floater_animation_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAnimPreview>, "upload");
LLFloaterReg::add("upload_image", "floater_image_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterImagePreview>, "upload");
LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundPreview>, "upload");
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 176e1b5499..dc53358311 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -121,41 +121,6 @@ LLViewerInventoryItem::~LLViewerInventoryItem()
{
}
-BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(S32* sortField, std::string* displayName) const
-{
- using std::string;
- using std::stringstream;
-
- const char separator = getSeparator();
- const string::size_type separatorPos = mName.find(separator, 0);
-
- BOOL result = FALSE;
-
- if (separatorPos < string::npos)
- {
- if (sortField)
- {
- /*
- * The conversion from string to S32 is made this way instead of old plain
- * atoi() to ensure portability. If on some other platform S32 will not be
- * defined to be signed int, this conversion will still work because of
- * operators overloading, but atoi() may fail.
- */
- stringstream ss(mName.substr(0, separatorPos));
- ss >> *sortField;
- }
-
- if (displayName)
- {
- *displayName = mName.substr(separatorPos + 1, string::npos);
- }
-
- result = TRUE;
- }
-
- return result;
-}
-
void LLViewerInventoryItem::copyViewerItem(const LLViewerInventoryItem* other)
{
LLInventoryItem::copyItem(other);
@@ -1314,6 +1279,41 @@ U32 LLViewerInventoryItem::getCRC32() const
return LLInventoryItem::getCRC32();
}
+BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName)
+{
+ using std::string;
+ using std::stringstream;
+
+ const char separator = getSeparator();
+ const string::size_type separatorPos = name.find(separator, 0);
+
+ BOOL result = FALSE;
+
+ if (separatorPos < string::npos)
+ {
+ if (sortField)
+ {
+ /*
+ * The conversion from string to S32 is made this way instead of old plain
+ * atoi() to ensure portability. If on some other platform S32 will not be
+ * defined to be signed int, this conversion will still work because of
+ * operators overloading, but atoi() may fail.
+ */
+ stringstream ss(name.substr(0, separatorPos));
+ ss >> *sortField;
+ }
+
+ if (displayName)
+ {
+ *displayName = name.substr(separatorPos + 1, string::npos);
+ }
+
+ result = TRUE;
+ }
+
+ return result;
+}
+
// This returns true if the item that this item points to
// doesn't exist in memory (i.e. LLInventoryModel). The baseitem
// might still be in the database but just not loaded yet.
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index d5b99ac160..5692875ec6 100644
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -57,7 +57,7 @@ public:
protected:
~LLViewerInventoryItem( void ); // ref counted
- BOOL extractSortFieldAndDisplayName(S32* sortField, std::string* displayName) const;
+ BOOL extractSortFieldAndDisplayName(S32* sortField, std::string* displayName) const { return extractSortFieldAndDisplayName(mName, sortField, displayName); }
static char getSeparator() { return '@'; }
mutable std::string mDisplayName;
@@ -78,6 +78,8 @@ public:
virtual time_t getCreationDate() const;
virtual U32 getCRC32() const; // really more of a checksum.
+ static BOOL extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName);
+
// construct a complete viewer inventory item
LLViewerInventoryItem(const LLUUID& uuid, const LLUUID& parent_uuid,
const LLPermissions& permissions,
diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp
index b919e3d1c1..b593fbfb00 100644
--- a/indra/newview/llviewerjoystick.cpp
+++ b/indra/newview/llviewerjoystick.cpp
@@ -414,14 +414,41 @@ void LLViewerJoystick::agentFly(F32 inc)
}
// -----------------------------------------------------------------------------
-void LLViewerJoystick::agentRotate(F32 pitch_inc, F32 yaw_inc)
+void LLViewerJoystick::agentPitch(F32 pitch_inc)
{
- LLQuaternion new_rot;
- pitch_inc = gAgent.clampPitchToLimits(-pitch_inc);
- const LLQuaternion qx(pitch_inc, gAgent.getLeftAxis());
- const LLQuaternion qy(-yaw_inc, gAgent.getReferenceUpVector());
- new_rot.setQuat(qx * qy);
- gAgent.rotate(new_rot);
+ if (pitch_inc < 0)
+ {
+ gAgent.setControlFlags(AGENT_CONTROL_PITCH_POS);
+ }
+ else if (pitch_inc > 0)
+ {
+ gAgent.setControlFlags(AGENT_CONTROL_PITCH_NEG);
+ }
+
+ gAgent.pitch(-pitch_inc);
+}
+
+// -----------------------------------------------------------------------------
+void LLViewerJoystick::agentYaw(F32 yaw_inc)
+{
+ // Cannot steer some vehicles in mouselook if the script grabs the controls
+ if (gAgent.cameraMouselook() && !gSavedSettings.getBOOL("JoystickMouselookYaw"))
+ {
+ gAgent.rotate(-yaw_inc, gAgent.getReferenceUpVector());
+ }
+ else
+ {
+ if (yaw_inc < 0)
+ {
+ gAgent.setControlFlags(AGENT_CONTROL_YAW_POS);
+ }
+ else if (yaw_inc > 0)
+ {
+ gAgent.setControlFlags(AGENT_CONTROL_YAW_NEG);
+ }
+
+ gAgent.yaw(-yaw_inc);
+ }
}
// -----------------------------------------------------------------------------
@@ -595,12 +622,38 @@ void LLViewerJoystick::moveAvatar(bool reset)
}
bool is_zero = true;
+ static bool button_held = false;
if (mBtn[1] == 1)
{
- agentJump();
+ // If AutomaticFly is enabled, then button1 merely causes a
+ // jump (as the up/down axis already controls flying) if on the
+ // ground, or cease flight if already flying.
+ // If AutomaticFly is disabled, then button1 toggles flying.
+ if (gSavedSettings.getBOOL("AutomaticFly"))
+ {
+ if (!gAgent.getFlying())
+ {
+ gAgent.moveUp(1);
+ }
+ else if (!button_held)
+ {
+ button_held = true;
+ gAgent.setFlying(FALSE);
+ }
+ }
+ else if (!button_held)
+ {
+ button_held = true;
+ gAgent.setFlying(!gAgent.getFlying());
+ }
+
is_zero = false;
}
+ else
+ {
+ button_held = false;
+ }
F32 axis_scale[] =
{
@@ -758,11 +811,13 @@ void LLViewerJoystick::moveAvatar(bool reset)
{
if (gAgent.getFlying())
{
- agentRotate(eff_rx, eff_ry);
+ agentPitch(eff_rx);
+ agentYaw(eff_ry);
}
else
{
- agentRotate(eff_rx, 2.f * eff_ry);
+ agentPitch(eff_rx);
+ agentYaw(2.f * eff_ry);
}
}
}
@@ -771,7 +826,8 @@ void LLViewerJoystick::moveAvatar(bool reset)
agentSlide(sDelta[X_I]); // move sideways
agentFly(sDelta[Y_I]); // up/down & crouch
agentPush(sDelta[Z_I]); // forward/back
- agentRotate(sDelta[RX_I], sDelta[RY_I]); // pitch & turn
+ agentPitch(sDelta[RX_I]); // pitch
+ agentYaw(sDelta[RY_I]); // turn
}
}
@@ -963,15 +1019,10 @@ bool LLViewerJoystick::toggleFlycam()
moveFlycam(true);
}
- else if (!LLToolMgr::getInstance()->inBuildMode())
- {
- moveAvatar(true);
- }
else
{
- // we are in build mode, exiting from the flycam mode: since we are
- // going to keep the flycam POV for the main camera until the avatar
- // moves, we need to track this situation.
+ // Exiting from the flycam mode: since we are going to keep the flycam POV for
+ // the main camera until the avatar moves, we need to track this situation.
setCameraNeedsUpdate(false);
setNeedsReset(true);
}
diff --git a/indra/newview/llviewerjoystick.h b/indra/newview/llviewerjoystick.h
index b565ed5696..a3904bd2c3 100644
--- a/indra/newview/llviewerjoystick.h
+++ b/indra/newview/llviewerjoystick.h
@@ -82,8 +82,9 @@ protected:
void agentSlide(F32 inc);
void agentPush(F32 inc);
void agentFly(F32 inc);
- void agentRotate(F32 pitch_inc, F32 turn_inc);
- void agentJump();
+ void agentPitch(F32 pitch_inc);
+ void agentYaw(F32 yaw_inc);
+ void agentJump();
void resetDeltas(S32 axis[]);
#if LIB_NDOF
static NDOF_HotPlugResult HotPlugAddCallback(NDOF_Device *dev);
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 6a40c76757..bac1f170b0 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1008,6 +1008,7 @@ BOOL LLViewerMediaImpl::handleMouseUp(S32 x, S32 y, MASK mask)
return TRUE;
}
+
//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMediaImpl::navigateHome()
{
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 1310fc7d53..bee34dde8f 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -82,7 +82,6 @@
#include "llface.h"
#include "llfilepicker.h"
#include "llfirstuse.h"
-#include "llfirsttimetipmanager.h"
#include "llfloater.h"
#include "llfloaterabout.h"
#include "llfloaterbuycurrency.h"
@@ -278,7 +277,6 @@ void handle_compress_image(void*);
// Edit menu
void handle_dump_group_info(void *);
void handle_dump_capabilities_info(void *);
-void handle_dump_focus(void*);
// Advanced->Consoles menu
void handle_region_dump_settings(void*);
@@ -325,7 +323,6 @@ BOOL check_show_xui_names(void *);
// Debug UI
-void handle_web_browser_test(void*);
void handle_buy_currency_test(void*);
void handle_save_to_xml(void*);
void handle_load_from_xml(void*);
@@ -1237,15 +1234,6 @@ class LLAdvancedDumpRegionObjectCache : public view_listener_t
}
};
-class LLAdvancedWebBrowserTest : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- handle_web_browser_test(NULL);
- return true;
- }
-};
-
class LLAdvancedBuyCurrencyTest : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -1288,22 +1276,6 @@ class LLAdvancedDumpInventory : public view_listener_t
-///////////////////////
-// DUMP FOCUS HOLDER //
-///////////////////////
-
-
-class LLAdvancedDumpFocusHolder : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- handle_dump_focus(NULL);
- return true;
- }
-};
-
-
-
////////////////////////////////
// PRINT SELECTED OBJECT INFO //
////////////////////////////////
@@ -3467,7 +3439,7 @@ void handle_dump_region_object_cache(void*)
}
}
-void handle_dump_focus(void *)
+void handle_dump_focus()
{
LLUICtrl *ctrl = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus());
@@ -3483,14 +3455,11 @@ class LLSelfStandUp : public view_listener_t
}
};
-class LLSelfEnableStandUp : public view_listener_t
+bool enable_standup_self()
{
- bool handleEvent(const LLSD& userdata)
- {
- bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->isSitting();
- return new_value;
- }
-};
+ bool new_value = gAgent.getAvatarObject() && gAgent.getAvatarObject()->isSitting();
+ return new_value;
+}
class LLSelfFriends : public view_listener_t
{
@@ -4767,6 +4736,96 @@ class LLToolsSnapObjectXY : public view_listener_t
}
};
+// Determine if the option to cycle between linked prims is shown
+class LLToolsEnableSelectNextPart : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool new_value = (gSavedSettings.getBOOL("EditLinkedParts") &&
+ !LLSelectMgr::getInstance()->getSelection()->isEmpty());
+ return new_value;
+ }
+};
+
+// Cycle selection through linked children in selected object.
+// FIXME: Order of children list is not always the same as sim's idea of link order. This may confuse
+// resis. Need link position added to sim messages to address this.
+class LLToolsSelectNextPart : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ S32 object_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount();
+ if (gSavedSettings.getBOOL("EditLinkedParts") && object_count)
+ {
+ LLViewerObject* selected = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
+ if (selected && selected->getRootEdit())
+ {
+ bool fwd = (userdata.asString() == "next");
+ bool prev = (userdata.asString() == "previous");
+ bool ifwd = (userdata.asString() == "includenext");
+ bool iprev = (userdata.asString() == "includeprevious");
+ LLViewerObject* to_select = NULL;
+ LLViewerObject::child_list_t children = selected->getRootEdit()->getChildren();
+ children.push_front(selected->getRootEdit()); // need root in the list too
+
+ for (LLViewerObject::child_list_t::iterator iter = children.begin(); iter != children.end(); ++iter)
+ {
+ if ((*iter)->isSelected())
+ {
+ if (object_count > 1 && (fwd || prev)) // multiple selection, find first or last selected if not include
+ {
+ to_select = *iter;
+ if (fwd)
+ {
+ // stop searching if going forward; repeat to get last hit if backward
+ break;
+ }
+ }
+ else if ((object_count == 1) || (ifwd || iprev)) // single selection or include
+ {
+ if (fwd || ifwd)
+ {
+ ++iter;
+ while (iter != children.end() && ((*iter)->isAvatar() || (ifwd && (*iter)->isSelected())))
+ {
+ ++iter; // skip sitting avatars and selected if include
+ }
+ }
+ else // backward
+ {
+ iter = (iter == children.begin() ? children.end() : iter);
+ --iter;
+ while (iter != children.begin() && ((*iter)->isAvatar() || (iprev && (*iter)->isSelected())))
+ {
+ --iter; // skip sitting avatars and selected if include
+ }
+ }
+ iter = (iter == children.end() ? children.begin() : iter);
+ to_select = *iter;
+ break;
+ }
+ }
+ }
+
+ if (to_select)
+ {
+ if (gFocusMgr.childHasKeyboardFocus(gFloaterTools))
+ {
+ gFocusMgr.setKeyboardFocus(NULL); // force edit toolbox to commit any changes
+ }
+ if (fwd || prev)
+ {
+ LLSelectMgr::getInstance()->deselectAll();
+ }
+ LLSelectMgr::getInstance()->selectObjectOnly(to_select);
+ return true;
+ }
+ }
+ }
+ return true;
+ }
+};
+
// in order to link, all objects must have the same owner, and the
// agent must have the ability to modify all of the objects. However,
// we're not answering that question with this method. The question
@@ -5341,42 +5400,64 @@ class LLWorldCreateLandmark : public view_listener_t
}
};
-class LLToolsLookAtSelection : public view_listener_t
+void handle_look_at_selection(const LLSD& param)
{
- bool handleEvent(const LLSD& userdata)
+ const F32 PADDING_FACTOR = 2.f;
+ BOOL zoom = (param.asString() == "zoom");
+ if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
{
- const F32 PADDING_FACTOR = 2.f;
- BOOL zoom = (userdata.asString() == "zoom");
- if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
- {
- gAgent.setFocusOnAvatar(FALSE, ANIMATE);
+ gAgent.setFocusOnAvatar(FALSE, ANIMATE);
- LLBBox selection_bbox = LLSelectMgr::getInstance()->getBBoxOfSelection();
- F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView());
- F32 distance = selection_bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view);
+ LLBBox selection_bbox = LLSelectMgr::getInstance()->getBBoxOfSelection();
+ F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView());
+ F32 distance = selection_bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view);
- LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - selection_bbox.getCenterAgent();
- obj_to_cam.normVec();
+ LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - selection_bbox.getCenterAgent();
+ obj_to_cam.normVec();
- LLUUID object_id;
- if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject())
- {
- object_id = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID;
- }
- if (zoom)
- {
- gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance),
- LLSelectMgr::getInstance()->getSelectionCenterGlobal(),
- object_id );
- }
- else
- {
- gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id );
- }
+ LLUUID object_id;
+ if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject())
+ {
+ object_id = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID;
+ }
+ if (zoom)
+ {
+ gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance),
+ LLSelectMgr::getInstance()->getSelectionCenterGlobal(),
+ object_id );
+ }
+ else
+ {
+ gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id );
}
- return true;
}
-};
+}
+
+void handle_zoom_to_object(LLUUID object_id)
+{
+ const F32 PADDING_FACTOR = 2.f;
+
+ LLViewerObject* object = gObjectList.findObject(object_id);
+
+ if (object)
+ {
+ gAgent.setFocusOnAvatar(FALSE, ANIMATE);
+
+ LLBBox bbox = object->getBoundingBoxAgent() ;
+ F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView());
+ F32 distance = bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view);
+
+ LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - bbox.getCenterAgent();
+ obj_to_cam.normVec();
+
+
+ LLVector3d object_center_global = gAgent.getPosGlobalFromAgent(bbox.getCenterAgent());
+
+ gAgent.setCameraPosAndFocusGlobal(object_center_global + LLVector3d(obj_to_cam * distance),
+ object_center_global,
+ object_id );
+ }
+}
class LLAvatarInviteToGroup : public view_listener_t
{
@@ -6816,6 +6897,11 @@ void handle_dump_avatar_local_textures(void*)
gAgent.getAvatarObject()->dumpLocalTextures();
}
+void handle_dump_timers()
+{
+ LLFastTimer::dumpCurTimes();
+}
+
void handle_debug_avatar_textures(void*)
{
LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
@@ -7081,9 +7167,14 @@ void handle_load_from_xml(void*)
}
}
-void handle_web_browser_test(void*)
+void handle_web_browser_test(const LLSD& param)
{
- LLWeb::loadURL("http://secondlife.com/app/search/slurls.html");
+ std::string url = param.asString();
+ if (url.empty())
+ {
+ url = "about:blank";
+ }
+ LLWeb::loadURL(url);
}
void handle_buy_currency_test(void*)
@@ -7604,24 +7695,6 @@ class LLWorldDayCycle : public view_listener_t
}
};
-/// Show First Time Tips calbacks
-class LLHelpCheckShowFirstTimeTip : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- return LLFirstTimeTipsManager::tipsEnabled();
- }
-};
-
-class LLHelpShowFirstTimeTip : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- LLFirstTimeTipsManager::enabledTip(!userdata.asBoolean());
- return true;
- }
-};
-
void show_navbar_context_menu(LLView* ctrl, S32 x, S32 y)
{
static LLMenuGL* show_navbar_context_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_hide_navbar.xml",
@@ -7739,9 +7812,6 @@ void initialize_menus()
view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle");
- view_listener_t::addMenu(new LLHelpCheckShowFirstTimeTip(), "Help.CheckShowFirstTimeTip");
- view_listener_t::addMenu(new LLHelpShowFirstTimeTip(), "Help.ShowQuickTips");
-
// Tools menu
view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
@@ -7752,12 +7822,13 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts");
view_listener_t::addMenu(new LLToolsSnapObjectXY(), "Tools.SnapObjectXY");
view_listener_t::addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid");
+ view_listener_t::addMenu(new LLToolsSelectNextPart(), "Tools.SelectNextPart");
view_listener_t::addMenu(new LLToolsLink(), "Tools.Link");
view_listener_t::addMenu(new LLToolsUnlink(), "Tools.Unlink");
view_listener_t::addMenu(new LLToolsStopAllAnimations(), "Tools.StopAllAnimations");
view_listener_t::addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys");
- view_listener_t::addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys");
- view_listener_t::addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection");
+ view_listener_t::addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys");
+ commit.add("Tools.LookAtSelection", boost::bind(&handle_look_at_selection, _2));
commit.add("Tools.BuyOrTake", boost::bind(&handle_buy_or_take));
commit.add("Tools.TakeCopy", boost::bind(&handle_take_copy));
view_listener_t::addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory");
@@ -7765,6 +7836,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction");
view_listener_t::addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie");
+ view_listener_t::addMenu(new LLToolsEnableSelectNextPart(), "Tools.EnableSelectNextPart");
view_listener_t::addMenu(new LLToolsEnableLink(), "Tools.EnableLink");
view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
@@ -7832,11 +7904,12 @@ void initialize_menus()
view_listener_t::addMenu(new LLAdvancedDumpRegionObjectCache(), "Advanced.DumpRegionObjectCache");
// Advanced > UI
- view_listener_t::addMenu(new LLAdvancedWebBrowserTest(), "Advanced.WebBrowserTest");
+ commit.add("Advanced.WebBrowserTest", boost::bind(&handle_web_browser_test, _2));
view_listener_t::addMenu(new LLAdvancedBuyCurrencyTest(), "Advanced.BuyCurrencyTest");
view_listener_t::addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr");
view_listener_t::addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory");
- view_listener_t::addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder");
+ commit.add("Advanced.DumpTimers", boost::bind(&handle_dump_timers) );
+ commit.add("Advanced.DumpFocusHolder", boost::bind(&handle_dump_focus) );
view_listener_t::addMenu(new LLAdvancedPrintSelectedObjectInfo(), "Advanced.PrintSelectedObjectInfo");
view_listener_t::addMenu(new LLAdvancedPrintAgentInfo(), "Advanced.PrintAgentInfo");
view_listener_t::addMenu(new LLAdvancedPrintTextureMemoryStats(), "Advanced.PrintTextureMemoryStats");
@@ -7949,7 +8022,8 @@ void initialize_menus()
view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");
view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
- view_listener_t::addMenu(new LLSelfEnableStandUp(), "Self.EnableStandUp");
+ visible.add("Self.VisibleStandUp", boost::bind(&enable_standup_self));
+ enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
// we don't use boost::bind directly to delay side tray construction
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index 75f4f08bde..d28d54c933 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -98,8 +98,9 @@ bool enable_object_open();
// Buy either contents or object itself
void handle_buy();
-
void handle_take_copy();
+void handle_look_at_selection(const LLSD& param);
+void handle_zoom_to_object(LLUUID object_id);
// Can anyone take a free copy of the object?
// *TODO: Move to separate file
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 1cfeec5627..d3a9e1cef8 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -219,7 +219,7 @@ const std::string upload_pick(void* data)
args["EXTENSION"] = ext;
args["VALIDS"] = valid_extensions;
LLNotifications::instance().add("InvalidFileExtension", args);
- return NULL;
+ return std::string();
}
}//end else (non-null extension)
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index acdc2c2513..1d982265ca 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -174,11 +174,28 @@ BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject &object)
U32 port = region_host.getPort();
U64 ipport = (((U64)ip) << 32) | (U64)port;
U32 index = sIPAndPortToIndex[ipport];
-
+
+ // llinfos << "Removing object from table, local ID " << local_id << ", ip " << ip << ":" << port << llendl;
+
U64 indexid = (((U64)index) << 32) | (U64)local_id;
- return sIndexAndLocalIDToUUID.erase(indexid) > 0 ? TRUE : FALSE;
+
+ std::map<U64, LLUUID>::iterator iter = sIndexAndLocalIDToUUID.find(indexid);
+ if (iter == sIndexAndLocalIDToUUID.end())
+ {
+ return FALSE;
+ }
+
+ // Found existing entry
+ if (iter->second == object.getID())
+ { // Full UUIDs match, so remove the entry
+ sIndexAndLocalIDToUUID.erase(iter);
+ return TRUE;
+ }
+ // UUIDs did not match - this would zap a valid entry, so don't erase it
+ //llinfos << "Tried to erase entry where id in table ("
+ // << iter->second << ") did not match object " << object.getID() << llendl;
}
-
+
return FALSE ;
}
@@ -200,6 +217,9 @@ void LLViewerObjectList::setUUIDAndLocal(const LLUUID &id,
U64 indexid = (((U64)index) << 32) | (U64)local_id;
sIndexAndLocalIDToUUID[indexid] = id;
+
+ //llinfos << "Adding object to table, full ID " << id
+ // << ", local ID " << local_id << ", ip " << ip << ":" << port << llendl;
}
S32 gFullObjectUpdates = 0;
@@ -246,8 +266,8 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
{
if ( LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance() )
{
- //llinfos << "DEBUG selecting " << objectp->mID << " "
- // << objectp->mLocalID << llendl;
+ // llinfos << "DEBUG selecting " << objectp->mID << " "
+ // << objectp->mLocalID << llendl;
LLSelectMgr::getInstance()->selectObjectAndFamily(objectp);
dialog_refresh_all();
}
@@ -294,7 +314,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
size = mesgsys->getReceiveSize();
}
-// llinfos << "Received terse " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ // llinfos << "Received terse " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
}
else
{
@@ -308,7 +328,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
size = mesgsys->getReceiveSize();
}
-// llinfos << "Received " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
+ // llinfos << "Received " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
gFullObjectUpdates += num_objects;
}
@@ -318,7 +338,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
if (!regionp)
{
- llwarns << "Object update from unknown region!" << llendl;
+ llwarns << "Object update from unknown region! " << region_handle << llendl;
return;
}
@@ -357,7 +377,6 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
U8 compbuffer[2048];
S32 uncompressed_length = 2048;
S32 compressed_length;
-
compressed_dp.reset();
U32 flags = 0;
@@ -398,7 +417,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
gMessageSystem->getSenderPort());
if (fullid.isNull())
{
- //llwarns << "update for unknown localid " << local_id << " host " << gMessageSystem->getSender() << llendl;
+ // llwarns << "update for unknown localid " << local_id << " host " << gMessageSystem->getSender() << ":" << gMessageSystem->getSenderPort() << llendl;
mNumUnknownUpdates++;
}
}
@@ -412,7 +431,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
gMessageSystem->getSenderPort());
if (fullid.isNull())
{
- //llwarns << "update for unknown localid " << local_id << " host " << gMessageSystem->getSender() << llendl;
+ // llwarns << "update for unknown localid " << local_id << " host " << gMessageSystem->getSender() << llendl;
mNumUnknownUpdates++;
}
}
@@ -420,19 +439,43 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
mesgsys->getUUIDFast(_PREHASH_ObjectData, _PREHASH_FullID, fullid, i);
mesgsys->getU32Fast(_PREHASH_ObjectData, _PREHASH_ID, local_id, i);
- // llinfos << "Full Update, obj " << local_id << ", global ID" << fullid << "from " << mesgsys->getSender() << llendl;
+ // llinfos << "Full Update, obj " << local_id << ", global ID" << fullid << "from " << mesgsys->getSender() << llendl;
}
objectp = findObject(fullid);
// This looks like it will break if the local_id of the object doesn't change
// upon boundary crossing, but we check for region id matching later...
- if (objectp && (objectp->mLocalID != local_id))
+ // Reset object local id and region pointer if things have changed
+ if (objectp &&
+ ((objectp->mLocalID != local_id) ||
+ (objectp->getRegion() != regionp)))
{
+ //if (objectp->getRegion())
+ //{
+ // llinfos << "Local ID change: Removing object from table, local ID " << objectp->mLocalID
+ // << ", id from message " << local_id << ", from "
+ // << LLHost(objectp->getRegion()->getHost().getAddress(), objectp->getRegion()->getHost().getPort())
+ // << ", full id " << fullid
+ // << ", objects id " << objectp->getID()
+ // << ", regionp " << (U32) regionp << ", object region " << (U32) objectp->getRegion()
+ // << llendl;
+ //}
removeFromLocalIDTable(*objectp);
setUUIDAndLocal(fullid,
local_id,
gMessageSystem->getSenderIP(),
gMessageSystem->getSenderPort());
+
+ if (objectp->mLocalID != local_id)
+ { // Update local ID in object with the one sent from the region
+ objectp->mLocalID = local_id;
+ }
+
+ if (objectp->getRegion() != regionp)
+ { // Object changed region, so update it
+ objectp->setRegion(regionp);
+ objectp->updateRegion(regionp); // for LLVOAvatar
+ }
}
if (!objectp)
@@ -441,7 +484,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
if (update_type == OUT_TERSE_IMPROVED)
{
- // llinfos << "terse update for an unknown object:" << fullid << llendl;
+ // llinfos << "terse update for an unknown object:" << fullid << llendl;
continue;
}
}
@@ -452,7 +495,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
if (update_type != OUT_FULL)
{
-// llinfos << "terse update for an unknown object:" << fullid << llendl;
+ // llinfos << "terse update for an unknown object:" << fullid << llendl;
continue;
}
@@ -462,7 +505,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
if (mDeadObjects.find(fullid) != mDeadObjects.end())
{
mNumDeadObjectUpdates++;
- //llinfos << "update for a dead object:" << fullid << llendl;
+ // llinfos << "update for a dead object:" << fullid << llendl;
continue;
}
#endif
@@ -475,20 +518,6 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
justCreated = TRUE;
mNumNewObjects++;
}
- else
- {
- if (objectp->getRegion() != regionp)
- {
- // Object has changed region! Update lookup tables, set region pointer.
- removeFromLocalIDTable(*objectp);
- setUUIDAndLocal(fullid,
- local_id,
- gMessageSystem->getSenderIP(),
- gMessageSystem->getSenderPort());
- objectp->setRegion(regionp);
- }
- objectp->updateRegion(regionp); // for LLVOAvatar
- }
if (objectp->isDead())
@@ -623,7 +652,7 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
mCurLazyUpdateIndex = 0;
}
- mCurBin = (++mCurBin) % NUM_BINS;
+ mCurBin = (mCurBin + 1) % NUM_BINS;
LLVOAvatar::cullAvatarsByPixelArea();
}
@@ -808,6 +837,14 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)
// Remove from object map so noone can look it up.
mUUIDObjectMap.erase(objectp->mID);
+
+ //if (objectp->getRegion())
+ //{
+ // llinfos << "cleanupReferences removing object from table, local ID " << objectp->mLocalID << ", ip "
+ // << objectp->getRegion()->getHost().getAddress() << ":"
+ // << objectp->getRegion()->getHost().getPort() << llendl;
+ //}
+
removeFromLocalIDTable(*objectp);
if (objectp->onActiveList())
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index b853bcb46e..0ce1ecc6ee 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -459,57 +459,26 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const
case LLAssetType::AT_TEXTURE:
if(item->getInventoryType() == LLInventoryType::IT_SNAPSHOT)
{
- img_name = "inv_item_snapshot.tga";
+ img_name = "Inv_Snapshot";
}
else
{
- img_name = "inv_item_texture.tga";
+ img_name = "Inv_Texture";
}
break;
- case LLAssetType::AT_SOUND: img_name = "inv_item_sound.tga"; break;
- case LLAssetType::AT_LANDMARK:
- if (item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED)
- {
- img_name = "inv_item_landmark_visited.tga";
- }
- else
- {
- img_name = "inv_item_landmark.tga";
- }
- break;
- case LLAssetType::AT_CALLINGCARD:
- {
- BOOL online;
- online = LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID());
- if (online)
- {
- img_name = "inv_item_callingcard_online.tga"; break;
- }
- else
- {
- img_name = "inv_item_callingcard_offline.tga"; break;
- }
- break;
- }
- case LLAssetType::AT_CLOTHING: img_name = "inv_item_clothing.tga"; break;
- case LLAssetType::AT_OBJECT:
- if (item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS)
- {
- img_name = "inv_item_object_multi.tga";
- }
- else
- {
- img_name = "inv_item_object.tga";
- }
- break;
- case LLAssetType::AT_NOTECARD: img_name = "inv_item_notecard.tga"; break;
- case LLAssetType::AT_LSL_TEXT: img_name = "inv_item_script.tga"; break;
- case LLAssetType::AT_BODYPART: img_name = "inv_item_skin.tga"; break;
- case LLAssetType::AT_ANIMATION: img_name = "inv_item_animation.tga";break;
- case LLAssetType::AT_GESTURE: img_name = "inv_item_gesture.tga"; break;
+ case LLAssetType::AT_SOUND: img_name = "Inv_Sound"; break;
+ case LLAssetType::AT_CLOTHING: img_name = "Inv_Clothing"; break;
+ case LLAssetType::AT_OBJECT: img_name = "Inv_Object"; break;
+ case LLAssetType::AT_CALLINGCARD: img_name = "Inv_CallingCard"; break;
+ case LLAssetType::AT_LANDMARK: img_name = "Inv_Landmark"; break;
+ case LLAssetType::AT_NOTECARD: img_name = "Inv_Notecard"; break;
+ case LLAssetType::AT_LSL_TEXT: img_name = "Inv_Script"; break;
+ case LLAssetType::AT_BODYPART: img_name = "Inv_Skin"; break;
+ case LLAssetType::AT_ANIMATION: img_name = "Inv_Animation";break;
+ case LLAssetType::AT_GESTURE: img_name = "Inv_Gesture"; break;
//TODO need img_name
- case LLAssetType::AT_FAVORITE: img_name = "inv_item_landmark.tga"; break;
+ case LLAssetType::AT_FAVORITE: img_name = "Inv_Landmark"; break;
default: llassert(0);
}
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 9f096209dd..a0ab4cb1e6 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1315,7 +1315,10 @@ bool LLViewerFetchedTexture::updateFetch()
mComponents = mRawImage->getComponents();
mGLTexturep->setComponents(mComponents) ;
- gTextureList.dirtyImage(this);
+ for(ll_face_list_t::iterator iter = mFaceList.begin(); iter != mFaceList.end(); ++iter)
+ {
+ (*iter)->dirtyTexture() ;
+ }
}
mIsRawImageValid = TRUE;
gTextureList.mCreateTextureList.insert(this);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index d73029df1e..d81c8eec70 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1471,7 +1471,9 @@ void LLViewerWindow::initBase()
LLToolTipView::Params hvp;
hvp.name("tooltip view");
hvp.rect(full_window);
+ hvp.follows.flags(FOLLOWS_ALL);
gToolTipView = LLUICtrlFactory::create<LLToolTipView>(hvp);
+ gToolTipView->setFollowsAll();
getRootView()->addChild(gToolTipView);
// Add the progress bar view (startup view), which overrides everything
@@ -1506,11 +1508,6 @@ void LLViewerWindow::initWorldUI()
// currently needs to happen before initializing chat or IM
LLFloaterReg::getInstance("communicate");
- if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
- {
- LLFloaterChat::loadHistory();
- }
-
LLRect morph_view_rect = full_window;
morph_view_rect.stretch( -STATUS_BAR_HEIGHT );
morph_view_rect.mTop = full_window.mTop - 32;
@@ -1574,6 +1571,11 @@ void LLViewerWindow::initWorldUI()
LLBottomTray::getInstance()->showCameraButton(FALSE);
}
+ if (!gSavedSettings.getBOOL("ShowSnapshotButton"))
+ {
+ LLBottomTray::getInstance()->showSnapshotButton(FALSE);
+ }
+
if (!gSavedSettings.getBOOL("ShowMoveButton"))
{
LLBottomTray::getInstance()->showMoveButton(FALSE);
@@ -2608,8 +2610,24 @@ void LLViewerWindow::updateUI()
{
it.skipDescendants();
}
- else if (viewp->getMouseOpaque())
+ // only report xui names for LLUICtrls,
+ // and blacklist the various containers we don't care about
+ else if (dynamic_cast<LLUICtrl*>(viewp)
+ && viewp != gMenuHolder
+ && viewp != gFloaterView
+ && viewp != gNotifyBoxView
+ && viewp != gConsole)
{
+ if (dynamic_cast<LLFloater*>(viewp))
+ {
+ // constrain search to descendants of this (frontmost) floater
+ // by resetting iterator
+ it = viewp->beginTreeDFS();
+ }
+
+ // if we are in a new part of the tree (not a descendent of current tooltip_view)
+ // then push the results for tooltip_view and start with a new potential view
+ // NOTE: this emulates visiting only the leaf nodes that meet our criteria
if (!viewp->hasAncestor(tooltip_view))
{
append_xui_tooltip(tooltip_view, tool_tip_msg);
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index a9e9169891..7c12186bc7 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -5512,7 +5512,9 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
}
else
{
+ LLAppearanceManager::dumpCat(LLAppearanceManager::getCOF(),"Removing attachment link:");
LLAppearanceManager::removeItemLinks(item_id, false);
+
}
// BAP - needs to change for label to track link.
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 300eabf35c..999a39efd1 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -998,7 +998,9 @@ LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *viewer_obj
LLViewerInventoryItem *item = gInventory.getItem(attachment->getItemID());
if (item)
{
+ LLAppearanceManager::dumpCat(LLAppearanceManager::getCOF(),"Adding attachment link:");
LLAppearanceManager::wearItem(item,false); // Add COF link for item.
+
}
gInventory.addChangedMask(LLInventoryObserver::LABEL, attachment->getItemID());
gInventory.notifyObservers();
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 3c1ac3d571..02f63a848b 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -1664,7 +1664,6 @@ void LLVoiceClient::stateMachine()
// SLIM SDK: these arguments are no longer necessary.
// std::string args = " -p tcp -h -c";
std::string args;
- std::string cmd;
std::string loglevel = gSavedSettings.getString("VivoxDebugLevel");
if(loglevel.empty())
@@ -1679,17 +1678,18 @@ void LLVoiceClient::stateMachine()
#if LL_WINDOWS
PROCESS_INFORMATION pinfo;
- STARTUPINFOA sinfo;
+ STARTUPINFOW sinfo;
memset(&sinfo, 0, sizeof(sinfo));
- std::string exe_dir = gDirUtilp->getAppRODataDir();
- cmd = "SLVoice.exe";
- cmd += args;
-
- // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string...
- char *args2 = new char[args.size() + 1];
- strcpy(args2, args.c_str());
- if(!CreateProcessA(exe_path.c_str(), args2, NULL, NULL, FALSE, 0, NULL, exe_dir.c_str(), &sinfo, &pinfo))
+ std::string exe_dir = gDirUtilp->getExecutableDir();
+
+ llutf16string exe_path16 = utf8str_to_utf16str(exe_path);
+ llutf16string exe_dir16 = utf8str_to_utf16str(exe_dir);
+ llutf16string args16 = utf8str_to_utf16str(args);
+ // Create a writeable copy to keep Windows happy.
+ U16 *argscpy_16 = new U16[args16.size() + 1];
+ wcscpy_s(argscpy_16,args16.size()+1,args16.c_str());
+ if(!CreateProcessW(exe_path16.c_str(), argscpy_16, NULL, NULL, FALSE, 0, NULL, exe_dir16.c_str(), &sinfo, &pinfo))
{
// DWORD dwErr = GetLastError();
}
@@ -1701,7 +1701,7 @@ void LLVoiceClient::stateMachine()
CloseHandle(pinfo.hThread); // stops leaks - nothing else
}
- delete[] args2;
+ delete[] argscpy_16;
#else // LL_WINDOWS
// This should be the same for mac and linux
{
@@ -4972,7 +4972,7 @@ void LLVoiceClient::sessionState::removeAllParticipants()
if(!mParticipantsByUUID.empty())
{
- LL_ERRS("Voice") << "Internal error: empty URI map, non-empty UUID map" << LL_ENDL
+ LL_ERRS("Voice") << "Internal error: empty URI map, non-empty UUID map" << LL_ENDL;
}
}
@@ -6488,7 +6488,7 @@ void LLVoiceClient::deleteSession(sessionState *session)
{
if(iter->second != session)
{
- LL_ERRS("Voice") << "Internal error: session mismatch" << LL_ENDL
+ LL_ERRS("Voice") << "Internal error: session mismatch" << LL_ENDL;
}
mSessionsByHandle.erase(iter);
}
@@ -6528,7 +6528,7 @@ void LLVoiceClient::deleteAllSessions()
if(!mSessionsByHandle.empty())
{
- LL_ERRS("Voice") << "Internal error: empty session map, non-empty handle map" << LL_ENDL
+ LL_ERRS("Voice") << "Internal error: empty session map, non-empty handle map" << LL_ENDL;
}
}
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index 33b86660fa..d44c543266 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -965,7 +965,7 @@ void LLVOSky::calcAtmospherics(void)
// and vary_sunlight will work properly with moon light
F32 lighty = unclamped_lightnorm[1];
- if(lighty < NIGHTTIME_ELEVATION_COS)
+ if(lighty < LLSky::NIGHTTIME_ELEVATION_COS)
{
lighty = -lighty;
}
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index 466cdfdcd0..62c934fb41 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -147,7 +147,7 @@ protected:
static S32 getResolution() { return sResolution; }
static S32 getCurrent() { return sCurrent; }
- static S32 stepCurrent() { return (sCurrent = ++sCurrent % 2); }
+ static S32 stepCurrent() { return (sCurrent = (sCurrent + 1) % 2); }
static S32 getNext() { return ((sCurrent+1) % 2); }
static S32 getWhich(const BOOL curr) { return curr ? sCurrent : getNext(); }
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index 136ffe607d..c8cc6a3d8e 100644
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
@@ -304,7 +304,7 @@ void LLWaterParamManager::update(LLViewerCamera * cam)
mWaterPlane = LLVector4(enorm.v[0], enorm.v[1], enorm.v[2], -ep.dot(enorm));
LLVector3 sunMoonDir;
- if (gSky.getSunDirection().mV[2] > NIGHTTIME_ELEVATION_COS)
+ if (gSky.getSunDirection().mV[2] > LLSky::NIGHTTIME_ELEVATION_COS)
{
sunMoonDir = gSky.getSunDirection();
}
diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h
index 5f0b235c7f..d7b4d3f91e 100644
--- a/indra/newview/llwearable.h
+++ b/indra/newview/llwearable.h
@@ -62,6 +62,7 @@ public:
// Accessors
//--------------------------------------------------------------------
public:
+ const LLUUID& getItemID() const;
const LLAssetID& getAssetID() const { return mAssetID; }
const LLTransactionID& getTransactionID() const { return mTransactionID; }
EWearableType getType() const { return mType; }
@@ -77,6 +78,7 @@ public:
const std::string& getTypeLabel() const;
const std::string& getTypeName() const;
LLAssetType::EType getAssetType() const;
+ LLLocalTextureObject* getLocalTextureObject(S32 index) const;
public:
BOOL isDirty() const;
@@ -102,8 +104,6 @@ public:
friend std::ostream& operator<<(std::ostream &s, const LLWearable &w);
void setItemID(const LLUUID& item_id);
- const LLUUID& getItemID() const;
- LLLocalTextureObject* getLocalTextureObject(S32 index) const;
void setLocalTextureObject(S32 index, LLLocalTextureObject *lto);
private:
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 4bf64816c7..1581153c19 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -317,7 +317,7 @@ void LLWLParamManager::propagateParameters(void)
{
mLightDir = sunDir;
}
- else if(sunDir.mV[1] < 0 && sunDir.mV[1] > NIGHTTIME_ELEVATION_COS)
+ else if(sunDir.mV[1] < 0 && sunDir.mV[1] > LLSky::NIGHTTIME_ELEVATION_COS)
{
// clamp v1 to 0 so sun never points up and causes weirdness on some machines
LLVector3 vec(sunDir.mV[0], sunDir.mV[1], sunDir.mV[2]);
diff --git a/indra/newview/llxmlrpclistener.cpp b/indra/newview/llxmlrpclistener.cpp
index 71e2427c99..af8cb6b9fb 100644
--- a/indra/newview/llxmlrpclistener.cpp
+++ b/indra/newview/llxmlrpclistener.cpp
@@ -57,10 +57,10 @@ protected:
MapType mMap;
};
-class StatusMapper: public StatusMapperBase<LLXMLRPCTransaction::Status>
+class StatusMapper: public StatusMapperBase<LLXMLRPCTransaction::EStatus>
{
public:
- StatusMapper(): StatusMapperBase<LLXMLRPCTransaction::Status>("Status")
+ StatusMapper(): StatusMapperBase<LLXMLRPCTransaction::EStatus>("Status")
{
mMap[LLXMLRPCTransaction::StatusNotStarted] = "NotStarted";
mMap[LLXMLRPCTransaction::StatusStarted] = "Started";
@@ -314,7 +314,7 @@ public:
bool done = mTransaction->process();
CURLcode curlcode;
- LLXMLRPCTransaction::Status status;
+ LLXMLRPCTransaction::EStatus status;
{
// LLXMLRPCTransaction::status() is defined to accept int* rather
// than CURLcode*. I don't feel the urge to fix the signature, but
@@ -483,7 +483,7 @@ private:
const std::string mReplyPump;
LLTempBoundListener mBoundListener;
boost::scoped_ptr<LLXMLRPCTransaction> mTransaction;
- LLXMLRPCTransaction::Status mPreviousStatus; // To detect state changes.
+ LLXMLRPCTransaction::EStatus mPreviousStatus; // To detect state changes.
};
bool LLXMLRPCListener::process(const LLSD& command)
diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp
index 0e1beb377f..70859e8ea5 100644
--- a/indra/newview/llxmlrpctransaction.cpp
+++ b/indra/newview/llxmlrpctransaction.cpp
@@ -158,11 +158,11 @@ XMLRPC_VALUE LLXMLRPCValue::getValue() const
class LLXMLRPCTransaction::Impl
{
public:
- typedef LLXMLRPCTransaction::Status Status;
+ typedef LLXMLRPCTransaction::EStatus EStatus;
LLCurlEasyRequest* mCurlRequest;
- Status mStatus;
+ EStatus mStatus;
CURLcode mCurlCode;
std::string mStatusMessage;
std::string mStatusURI;
@@ -184,7 +184,7 @@ public:
bool process();
- void setStatus(Status code,
+ void setStatus(EStatus code,
const std::string& message = "", const std::string& uri = "");
void setCurlStatus(CURLcode);
@@ -398,7 +398,7 @@ bool LLXMLRPCTransaction::Impl::process()
return false;
}
-void LLXMLRPCTransaction::Impl::setStatus(Status status,
+void LLXMLRPCTransaction::Impl::setStatus(EStatus status,
const std::string& message, const std::string& uri)
{
mStatus = status;
@@ -522,7 +522,7 @@ bool LLXMLRPCTransaction::process()
return impl.process();
}
-LLXMLRPCTransaction::Status LLXMLRPCTransaction::status(int* curlCode)
+LLXMLRPCTransaction::EStatus LLXMLRPCTransaction::status(int* curlCode)
{
if (curlCode)
{
diff --git a/indra/newview/llxmlrpctransaction.h b/indra/newview/llxmlrpctransaction.h
index 528451fcb2..c835423d67 100644
--- a/indra/newview/llxmlrpctransaction.h
+++ b/indra/newview/llxmlrpctransaction.h
@@ -100,7 +100,7 @@ public:
~LLXMLRPCTransaction();
- typedef enum {
+ typedef enum e_status {
StatusNotStarted,
StatusStarted,
StatusDownloading,
@@ -108,12 +108,12 @@ public:
StatusCURLError,
StatusXMLRPCError,
StatusOtherError
- } Status;
+ } EStatus;
bool process();
// run the request a little, returns true when done
- Status status(int* curlCode);
+ EStatus status(int* curlCode);
// return status, and extended CURL code, if code isn't null
std::string statusMessage();
// return a message string, suitable for showing the user
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 38052abfa3..3800b9223d 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -35,7 +35,7 @@
#include "pipeline.h"
// library includes
-#include "llaudioengine.h" // For MAX_BUFFERS for debugging.
+#include "llaudioengine.h" // For debugging.
#include "imageids.h"
#include "llerror.h"
#include "llviewercontrol.h"
@@ -414,6 +414,9 @@ void LLPipeline::cleanup()
{
assertInitialized();
+ mGroupQ1.clear() ;
+ mGroupQ2.clear() ;
+
for(pool_set_t::iterator iter = mPools.begin();
iter != mPools.end(); )
{
@@ -4286,7 +4289,7 @@ void LLPipeline::setupAvatarLights(BOOL for_edit)
}
}
F32 backlight_mag;
- if (gSky.getSunDirection().mV[2] >= NIGHTTIME_ELEVATION_COS)
+ if (gSky.getSunDirection().mV[2] >= LLSky::NIGHTTIME_ELEVATION_COS)
{
backlight_mag = BACKLIGHT_DAY_MAGNITUDE_OBJECT;
}
@@ -4472,7 +4475,7 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
// Light 0 = Sun or Moon (All objects)
{
- if (gSky.getSunDirection().mV[2] >= NIGHTTIME_ELEVATION_COS)
+ if (gSky.getSunDirection().mV[2] >= LLSky::NIGHTTIME_ELEVATION_COS)
{
mSunDir.setVec(gSky.getSunDirection());
mSunDiffuse.setVec(gSky.getSunDiffuseColor());
diff --git a/indra/newview/res-sdl/arrow.BMP b/indra/newview/res-sdl/arrow.BMP
new file mode 100644
index 0000000000..a8f6da64b5
--- /dev/null
+++ b/indra/newview/res-sdl/arrow.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowcop.BMP b/indra/newview/res-sdl/arrowcop.BMP
new file mode 100644
index 0000000000..1a26a0df34
--- /dev/null
+++ b/indra/newview/res-sdl/arrowcop.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowcopmulti.BMP b/indra/newview/res-sdl/arrowcopmulti.BMP
new file mode 100644
index 0000000000..48f153cef6
--- /dev/null
+++ b/indra/newview/res-sdl/arrowcopmulti.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/arrowdrag.BMP b/indra/newview/res-sdl/arrowdrag.BMP
new file mode 100644
index 0000000000..cd868eec20
--- /dev/null
+++ b/indra/newview/res-sdl/arrowdrag.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/circleandline.BMP b/indra/newview/res-sdl/circleandline.BMP
new file mode 100644
index 0000000000..284ae8b7d5
--- /dev/null
+++ b/indra/newview/res-sdl/circleandline.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/cross.BMP b/indra/newview/res-sdl/cross.BMP
new file mode 100644
index 0000000000..0b4672d4d6
--- /dev/null
+++ b/indra/newview/res-sdl/cross.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/hand.BMP b/indra/newview/res-sdl/hand.BMP
new file mode 100644
index 0000000000..2a092fbb7f
--- /dev/null
+++ b/indra/newview/res-sdl/hand.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/ibeam.BMP b/indra/newview/res-sdl/ibeam.BMP
new file mode 100644
index 0000000000..820904a228
--- /dev/null
+++ b/indra/newview/res-sdl/ibeam.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/ll_icon.BMP b/indra/newview/res-sdl/ll_icon.BMP
new file mode 100644
index 0000000000..4a44aafbfa
--- /dev/null
+++ b/indra/newview/res-sdl/ll_icon.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrow.BMP b/indra/newview/res-sdl/llarrow.BMP
new file mode 100644
index 0000000000..a8f6da64b5
--- /dev/null
+++ b/indra/newview/res-sdl/llarrow.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowdrag.BMP b/indra/newview/res-sdl/llarrowdrag.BMP
new file mode 100644
index 0000000000..cd868eec20
--- /dev/null
+++ b/indra/newview/res-sdl/llarrowdrag.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowdragmulti.BMP b/indra/newview/res-sdl/llarrowdragmulti.BMP
new file mode 100644
index 0000000000..fb528bc92d
--- /dev/null
+++ b/indra/newview/res-sdl/llarrowdragmulti.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llarrowlocked.BMP b/indra/newview/res-sdl/llarrowlocked.BMP
new file mode 100644
index 0000000000..0aaa441ab1
--- /dev/null
+++ b/indra/newview/res-sdl/llarrowlocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llgrablocked.BMP b/indra/newview/res-sdl/llgrablocked.BMP
new file mode 100644
index 0000000000..847439670f
--- /dev/null
+++ b/indra/newview/res-sdl/llgrablocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llno.BMP b/indra/newview/res-sdl/llno.BMP
new file mode 100644
index 0000000000..284ae8b7d5
--- /dev/null
+++ b/indra/newview/res-sdl/llno.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/llnolocked.BMP b/indra/newview/res-sdl/llnolocked.BMP
new file mode 100644
index 0000000000..61f0170cb3
--- /dev/null
+++ b/indra/newview/res-sdl/llnolocked.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolcamera.BMP b/indra/newview/res-sdl/lltoolcamera.BMP
new file mode 100644
index 0000000000..c961d7a49c
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolcamera.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolcreate.BMP b/indra/newview/res-sdl/lltoolcreate.BMP
new file mode 100644
index 0000000000..08a4a9322d
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolcreate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolfocus.BMP b/indra/newview/res-sdl/lltoolfocus.BMP
new file mode 100644
index 0000000000..afb90a95e3
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolfocus.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolgrab.BMP b/indra/newview/res-sdl/lltoolgrab.BMP
new file mode 100644
index 0000000000..f2ac68bf3c
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolgrab.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolland.BMP b/indra/newview/res-sdl/lltoolland.BMP
new file mode 100644
index 0000000000..64e6365625
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolland.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpan.BMP b/indra/newview/res-sdl/lltoolpan.BMP
new file mode 100644
index 0000000000..ffbef21ec7
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolpan.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolpipette.BMP b/indra/newview/res-sdl/lltoolpipette.BMP
new file mode 100644
index 0000000000..2d27118289
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolpipette.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolrotate.BMP b/indra/newview/res-sdl/lltoolrotate.BMP
new file mode 100644
index 0000000000..dd84673018
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolrotate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolscale.BMP b/indra/newview/res-sdl/lltoolscale.BMP
new file mode 100644
index 0000000000..882515e5e3
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolscale.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltooltranslate.BMP b/indra/newview/res-sdl/lltooltranslate.BMP
new file mode 100644
index 0000000000..d084f6a026
--- /dev/null
+++ b/indra/newview/res-sdl/lltooltranslate.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolzoomin.BMP b/indra/newview/res-sdl/lltoolzoomin.BMP
new file mode 100644
index 0000000000..e4e46cc702
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolzoomin.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/lltoolzoomout.BMP b/indra/newview/res-sdl/lltoolzoomout.BMP
new file mode 100644
index 0000000000..7f958383ab
--- /dev/null
+++ b/indra/newview/res-sdl/lltoolzoomout.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizenesw.BMP b/indra/newview/res-sdl/sizenesw.BMP
new file mode 100644
index 0000000000..559579f40e
--- /dev/null
+++ b/indra/newview/res-sdl/sizenesw.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizens.BMP b/indra/newview/res-sdl/sizens.BMP
new file mode 100644
index 0000000000..8373077dff
--- /dev/null
+++ b/indra/newview/res-sdl/sizens.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizenwse.BMP b/indra/newview/res-sdl/sizenwse.BMP
new file mode 100644
index 0000000000..6d069fa765
--- /dev/null
+++ b/indra/newview/res-sdl/sizenwse.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/sizewe.BMP b/indra/newview/res-sdl/sizewe.BMP
new file mode 100644
index 0000000000..878df453a4
--- /dev/null
+++ b/indra/newview/res-sdl/sizewe.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolmediaopen.BMP b/indra/newview/res-sdl/toolmediaopen.BMP
new file mode 100644
index 0000000000..ac4b231994
--- /dev/null
+++ b/indra/newview/res-sdl/toolmediaopen.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpause.BMP b/indra/newview/res-sdl/toolpause.BMP
new file mode 100644
index 0000000000..dd2c6857d2
--- /dev/null
+++ b/indra/newview/res-sdl/toolpause.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject.BMP b/indra/newview/res-sdl/toolpickobject.BMP
new file mode 100644
index 0000000000..25469fc3a8
--- /dev/null
+++ b/indra/newview/res-sdl/toolpickobject.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject2.BMP b/indra/newview/res-sdl/toolpickobject2.BMP
new file mode 100644
index 0000000000..09df69e675
--- /dev/null
+++ b/indra/newview/res-sdl/toolpickobject2.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolpickobject3.BMP b/indra/newview/res-sdl/toolpickobject3.BMP
new file mode 100644
index 0000000000..fc28698050
--- /dev/null
+++ b/indra/newview/res-sdl/toolpickobject3.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/toolplay.BMP b/indra/newview/res-sdl/toolplay.BMP
new file mode 100644
index 0000000000..9c40d7dbec
--- /dev/null
+++ b/indra/newview/res-sdl/toolplay.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/wait.BMP b/indra/newview/res-sdl/wait.BMP
new file mode 100644
index 0000000000..26dec59afe
--- /dev/null
+++ b/indra/newview/res-sdl/wait.BMP
Binary files differ
diff --git a/indra/newview/res-sdl/working.BMP b/indra/newview/res-sdl/working.BMP
new file mode 100644
index 0000000000..26dec59afe
--- /dev/null
+++ b/indra/newview/res-sdl/working.BMP
Binary files differ
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index eb62c442db..4d8f88c80b 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -651,13 +651,13 @@
reference="White_10" />
<color
name="ToolTipBgColor"
- value="DkGray" />
+ value="0.937 0.89 0.655 1" />
<color
name="ToolTipBorderColor"
- value="White_50" />
+ value="0.812 0.753 0.451 1" />
<color
name="ToolTipTextColor"
- reference="LtGray" />
+ value="0.749 0.749 0.749 1" />
<color
name="UserChatColor"
reference="LtGray" />
diff --git a/indra/newview/skins/default/textures/alpha_gradient.tga b/indra/newview/skins/default/textures/alpha_gradient.tga
deleted file mode 100644
index 6fdba25d4e..0000000000
--- a/indra/newview/skins/default/textures/alpha_gradient.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/alpha_gradient_2d.j2c b/indra/newview/skins/default/textures/alpha_gradient_2d.j2c
deleted file mode 100644
index 5de5a80a65..0000000000
--- a/indra/newview/skins/default/textures/alpha_gradient_2d.j2c
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 2c09689ec6..546a06b93f 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -444,8 +444,6 @@
<texture name="cam_zoom_plus_in.tga" preload="false" />
<texture name="cam_zoom_minus_in.tga" preload="false" />
- <texture name="icn_clear_lineeditor.tga" />
-
<texture name="icn_chatbar.tga" />
<texture name="icn_media-pause.tga" />
<texture name="icn_media-play.tga" />
@@ -528,7 +526,6 @@
<texture name="startup_logo.j2c" preload="true" />
<texture name="color_swatch_alpha.tga" preload="true" />
- <texture name="active_voice_tab.tga" />
<texture name="button_anim_pause.tga" />
<texture name="button_anim_pause_selected.tga" />
<texture name="button_anim_play.tga" />
diff --git a/indra/newview/skins/default/xui/da/floater_sell_land.xml b/indra/newview/skins/default/xui/da/floater_sell_land.xml
index fc88b3d49a..87023b4f64 100644
--- a/indra/newview/skins/default/xui/da/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="sell land" title="Sælg land">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Parcel:
</text>
@@ -55,4 +57,6 @@
</text>
<button label="Sæt land til salg" name="sell_btn" />
<button label="Annullér" name="cancel_btn" />
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml
index a509d5f046..e50494ff9e 100644
--- a/indra/newview/skins/default/xui/da/floater_tools.xml
+++ b/indra/newview/skins/default/xui/da/floater_tools.xml
@@ -153,7 +153,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Du kan redigére dette objekt.
+ Du kan redigére dette objekt
</text>
<text name="B:">
B:
@@ -187,22 +187,22 @@
Du kan redigere disse objekter
</string>
<string name="text modify info 3">
- Du kan ikke redigere dette objekt.
+ Du kan ikke redigere dette objekt
</string>
<string name="text modify info 4">
- Du kan ikke redigere disse objekter.
+ Du kan ikke redigere disse objekter
</string>
<string name="text modify warning">
- Du skal vælge hele objektet for at sætte rettigheder.
+ Du skal vælge hele objektet for at sætte rettigheder
</string>
<string name="Cost Default">
- Pris: L$
+ Pris: L$
</string>
<string name="Cost Total">
- Total pris: L$
+ Total pris: L$
</string>
<string name="Cost Per Unit">
- Pris Pr: L$
+ Pris Pr: L$
</string>
<string name="Cost Mixed">
Blandet pris
@@ -449,8 +449,8 @@
<button label="Ret ind" label_selected="Ret ind" name="button align" left="160"/>
</panel>
<panel label="Indhold" name="Contents">
- <button label="Nyt script" label_selected="Nyt script..." name="button new script"/>
- <button label="Rettigheder..." name="button permissions"/>
+ <button label="Nyt script" label_selected="Nyt script" name="button new script"/>
+ <button label="Rettigheder" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -464,18 +464,18 @@
Område: [AREA] m².
</text>
<button label="Om land..." label_selected="Om land..." name="button about land"/>
- <check_box label="Vis ejere" name="checkbox show owners" tool_tip="Farver grunde afhængigt af ejerskab"/>
+ <check_box label="Vis ejere" name="checkbox show owners" tool_tip="Farver grunde afhængigt af ejerskab: &#10;&#10;Grøn = Dit land &#10;Turkis = Din gruppes land &#10;Rød = Ejet af andre &#10;Gul = Til salg &#10;Lilla = På auktion &#10;Grå = Offentligt ejet"/>
<button label="?" label_selected="?" name="button show owners help"/>
<text name="label_parcel_modify">
Redigere grund
</text>
- <button label="Opdel..." label_selected="Opdel..." name="button subdivide land"/>
- <button label="Saml..." label_selected="Saml..." name="button join land"/>
+ <button label="Opdel" label_selected="Opdel" name="button subdivide land"/>
+ <button label="Saml" label_selected="Saml" name="button join land"/>
<text name="label_parcel_trans">
Transaktioner for land
</text>
- <button label="Køb land..." label_selected="Køb land..." name="button buy land"/>
- <button label="Flyt fra land..." label_selected="Flyt fra land..." name="button abandon land"/>
+ <button label="Køb land" label_selected="Køb land" name="button buy land"/>
+ <button label="Flyt fra land" label_selected="Flyt fra land" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
Træk i de farvede bånd for at rotere objekt
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index 5ab8e4eb30..42f55d4678 100644
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
@@ -1079,7 +1079,7 @@ Fleksible genstande er ikke fysiske og man kan gå igennem dem, indtil fleksibel
<notification name="FirstDebugMenus">
Du har sat avanceret menu til.
Denne menu indeholder funktioner brugbare for udviklere, der udbedrer fejl i [SECOND_LIFE].
-For at vise denne menu, skal man i Windows trykke Ctrl-Alt-D. På Mac tryk &#8984;-Opt-Shift-D.
+For at vise denne menu, skal man i Windows trykke Ctrl+Alt+D. På Mac tryk &#8997;&#8984;D.
</notification>
<notification name="FirstSculptedPrim">
Du retter en sculpted prim.
diff --git a/indra/newview/skins/default/xui/da/panel_edit_profile.xml b/indra/newview/skins/default/xui/da/panel_edit_profile.xml
new file mode 100644
index 0000000000..74b7c7dd72
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Beboer" />
+ <string name="AcctTypeTrial"
+ value="På prøve" />
+ <string name="AcctTypeCharterMember"
+ value="æresmedlem" />
+ <string name="AcctTypeEmployee"
+ value="Linden Lab medarbejder" />
+ <string name="PaymentInfoUsed"
+ value="Betalende medlem" />
+ <string name="PaymentInfoOnFile"
+ value="Registreret betalende" />
+ <string name="NoPaymentInfoOnFile"
+ value="Ingen betalingsinfo" />
+ <string name="AgeVerified"
+ value="Alders-checket" />
+ <string name="NotAgeVerified"
+ value="Ikke alders-checket" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=da
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partner:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Optaget autosvar:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_general.xml b/indra/newview/skins/default/xui/da/panel_group_general.xml
index edce758e7c..4e98ca2bc2 100644
--- a/indra/newview/skins/default/xui/da/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_general.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Generelt" name="general_tab">
<string name="help_text">
- Generel-fanen indeholder generel information om
-denne gruppe, en liste med ejere og synlige medlemmer,
-generel-gruppeindstillinger og medlemsmuligheder.
+ Generel-fanen indeholder generel information om denne gruppe, en liste med ejere og synlige medlemmer, generel-gruppeindstillinger og medlemsmuligheder.
Bevæg din mus over mulighederne for mere hjælp.
</string>
@@ -47,7 +45,7 @@ Bevæg din mus over mulighederne for mere hjælp.
<panel name="preferences_container">
<check_box label="Vis i søgning" name="show_in_group_list" tool_tip="Lad folk se denne gruppe i søgeresultater."/>
<check_box label="Åben tilmelding" name="open_enrollement" tool_tip="Angiver om denne gruppe tillader nye medlemmer at tilmelde sig, uden de er inviteret."/>
- <check_box label="Tilmeldingsgebyr: L$" name="check_enrollment_fee" tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen."/>
+ <check_box label="Tilmeldingsgebyr:" name="check_enrollment_fee" tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen."/>
<spinner name="spin_enrollment_fee" tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, når Tilmeldingsgebyr er valgt." width="60" left_delta="130"/>
<combo_box name="group_mature_check" tool_tip="Angiver om din gruppes information anses som &apos;mature&apos;." width="150">
<combo_box.item name="select_mature" label="- Vælg indholdsrating -"/>
diff --git a/indra/newview/skins/default/xui/da/panel_group_land_money.xml b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
index 029922c413..636a16f97b 100644
--- a/indra/newview/skins/default/xui/da/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
@@ -48,8 +48,11 @@
<string name="land_contrib_error">
Ikke muligt at lave dit bidrag til landet.
</string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
<text name="your_contribution_max_value">
- m² ([AMOUNT] maks.)
+ ([AMOUNT] maks.)
</text>
<text name="group_over_limit_text">
Gruppemedlemmer må bidrag med mere, for at understøtte
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index 9490f94a42..ed23a9a706 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG, Mature og Adult"/>
<combo_box.item name="Desired_Mature" label="PG and Mature"/>
- <combo_box.item name="Desired_PG" label="PG only"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- PG only
+ PG
</text>
<text name="start_location_textbox">
Start lokation:
diff --git a/indra/newview/skins/default/xui/da/panel_region_estate.xml b/indra/newview/skins/default/xui/da/panel_region_estate.xml
index 7039f8fd6c..5d0799cab9 100644
--- a/indra/newview/skins/default/xui/da/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Estate" name="Estate">
+<panel label="Estate" name="Estate">
<text name="estate_help_text">
Ændringer i dette afsnit vil påvirke alle
regioner i dette estate.
@@ -70,6 +68,4 @@ regioner i dette estate.
<button label="?" name="ban_resident_help" />
<button label="Fjern..." name="remove_banned_avatar_btn" />
<button label="Tilføj..." name="add_banned_avatar_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml
index a7477d3a65..65c4743da0 100644
--- a/indra/newview/skins/default/xui/da/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Terræn textures" name="Textures">
+<panel label="Terræn textures" name="Textures">
<text name="region_text_lbl">
Region:
</text>
@@ -56,6 +54,4 @@
og HØJ værdien er MIMIMUM højde for texture nummer 4.
</text>
<button label="Gem" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml
index 9849f2f56d..945833d57a 100644
--- a/indra/newview/skins/default/xui/da/strings.xml
+++ b/indra/newview/skins/default/xui/da/strings.xml
@@ -484,16 +484,16 @@
Vælg bibliotek
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -603,6 +603,9 @@
<string name="no_ability_error">
Du har ikke den mulighed.
</string>
+ <string name="no_ability">
+ Du har ikke den mulighed.
+ </string>
<string name="not_a_mod_error">
Du er ikke moderator for denne samtale.
</string>
@@ -621,4 +624,31 @@
<string name="close_on_no_ability">
Du har ikke længere mulighed for at deltage i samtalen
</string>
+ <string name="AcctTypeResident">
+ Beboer
+ </string>
+ <string name="AcctTypeTrial">
+ På prøve
+ </string>
+ <string name="AcctTypeCharterMember">
+ æresmedlem
+ </string>
+ <string name="AcctTypeEmployee">
+ Linden Lab medarbejder
+ </string>
+ <string name="PaymentInfoUsed">
+ Betalende medlem
+ </string>
+ <string name="PaymentInfoOnFile">
+ Registreret betalende
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Ingen betalingsinfo
+ </string>
+ <string name="AgeVerified">
+ Alders-checket
+ </string>
+ <string name="NotAgeVerified">
+ Ikke alders-checket
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml
index c34252d8a7..1499bb0152 100644
--- a/indra/newview/skins/default/xui/de/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="sell land" title="Land verkaufen">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Parzelle:
</text>
@@ -60,4 +62,6 @@ wechseln den Eigentümer.
</text>
<button label="Land zum Verkauf freigeben" width="180" name="sell_btn" />
<button label="Abbrechen" name="cancel_btn" />
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 2875f5d04c..2815fd34a2 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -159,7 +159,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Sie können dieses Objekt ändern.
+ Sie können dieses Objekt ändern
</text>
<text name="B:">
B:
@@ -187,28 +187,28 @@
<check_box name="checkbox next owner can transfer"/>
</panel>
<string name="text modify info 1">
- Sie können dieses Objekt ändern.
+ Sie können dieses Objekt ändern
</string>
<string name="text modify info 2">
- Sie können diese Objekte ändern.
+ Sie können diese Objekte ändern
</string>
<string name="text modify info 3">
- Sie können dieses Objekt nicht ändern.
+ Sie können dieses Objekt nicht ändern
</string>
<string name="text modify info 4">
- Sie können diese Objekte nicht ändern.
+ Sie können diese Objekte nicht ändern
</string>
<string name="text modify warning">
- Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen.
+ Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen
</string>
<string name="Cost Default">
- Preis:L$
+ Preis: L$
</string>
<string name="Cost Total">
- Summe:L$
+ Summe: L$
</string>
<string name="Cost Per Unit">
- Stückpreis:L$
+ Stückpreis: L$
</string>
<string name="Cost Mixed">
Mischpreis
@@ -503,8 +503,8 @@ Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild
<button label="Ausrichten" label_selected="Ausrichten" name="button align"/>
</panel>
<panel label="Inhalt" name="Contents">
- <button label="Neues Skript" label_selected="Neues Skript..." name="button new script"/>
- <button label="Berechtigungen..." name="button permissions"/>
+ <button label="Neues Skript" label_selected="Neues Skript" name="button new script"/>
+ <button label="Berechtigungen" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -512,24 +512,24 @@ Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild
Parzelleninformation
</text>
<text name="label_area_price">
- Preis: L$ [PRICE] für [AREA] m2.
+ Preis: L$ [PRICE] für [AREA] m²
</text>
<text name="label_area">
- Fläche: [AREA] m2
+ Fläche: [AREA] m²
</text>
<button label="Info zu Land..." label_selected="Info zu Land..." name="button about land"/>
- <check_box label="Eigentümer anzeigen" name="checkbox show owners" tool_tip="Parzellen nach Eigentümer farbig kennzeichnen"/>
+ <check_box label="Eigentümer anzeigen" name="checkbox show owners" tool_tip="Parzellen nach Eigentümer farbig kennzeichnen: &#10;&#10;Grün = Ihr Land &#10;Blau = Das Land Ihrer Gruppe &#10;Rot = Im Eigentum anderer &#10;Geld = Zum Verkauf &#10;Lila = Zur Auktion &#10;Grau = Öffentlich"/>
<button label="?" label_selected="?" name="button show owners help"/>
<text name="label_parcel_modify">
Parzelle ändern
</text>
- <button label="Unterteilen..." label_selected="Unterteilen..." name="button subdivide land"/>
+ <button label="Unterteilen" label_selected="Unterteilen" name="button subdivide land"/>
<button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land"/>
<text name="label_parcel_trans">
Land-Transaktionen
</text>
- <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land"/>
- <button label="Land aufgeben..." label_selected="Land aufgeben..." name="button abandon land"/>
+ <button label="Land kaufen" label_selected="Land kaufen" name="button buy land"/>
+ <button label="Land aufgeben" label_selected="Land aufgeben" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
An den farbigen Bändern ziehen, um das Objekt zu drehen
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index b738b2d864..ebe2d9b260 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -1696,7 +1696,7 @@ Ist die Option aktiviert, können Käufer ihr Land in dieser Region weiterverkau
Standard: deaktiviert
</notification>
<notification label="Skripts deaktivieren" name="HelpRegionDisableScripts">
- Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für „Simulator Physics FPS“ (Simulator Physik-FPS) an.
+ Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie die Statistikleiste (Strg+Umschalt+1). Sehen Sie sich den Wert für „Simulator Physics FPS“ (Simulator Physik-FPS) an.
Wenn der Wert unter 45 liegt, öffnen Sie den Bereich „Time“ (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für „Script Time“ (Skriptzeit) 25 ms oder höher ist, klicken Sie auf „Top-Skripts“. Der Name und die Position der Skripts, die für die schlechte Performance verantwortlich sind, werden angezeigt.
Wenn Sie das Kontrollkästchen „Skripts deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Skripts in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Skripts“ reisen können. Sobald Sie dort angekommen sind, sollten Sie das Skript auf die Ursache des Problems hin untersuchen. Möglicherweise müssen Sie sich an den Skript-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um die Skripte in der Region wieder zu aktivieren, deaktivieren Sie „Skript deaktivieren“ und klicken Sie auf „Übernehmen“.
@@ -1704,7 +1704,7 @@ Standard: deaktiviert
</notification>
<notification label="Kollisionen deaktivieren" name="HelpRegionDisableCollisions">
Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen.
-Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert „Simulator Physics FPS“ an. Liegt dieser unter 45, öffnen Sie unten in der Statistikleiste den „Time“-Bereich. Liegt die „Sim Time (Physics)“ bei 20 ms oder darüber, klicken Sie auf „Top-Kollisionsobjekte“.
+Öffnen Sie die Statistikleiste (Strg+Umschalt+1). Sehen Sie sich den Wert „Simulator Physics FPS“ an. Liegt dieser unter 45, öffnen Sie unten in der Statistikleiste den „Time“-Bereich. Liegt die „Sim Time (Physics)“ bei 20 ms oder darüber, klicken Sie auf „Top-Kollisionsobjekte“.
Der Name und der Standort der physischen Objekte, die das Problem verursachen, werden angezeigt.
Wenn Sie das Kontrollkästchen „Kollisionen deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Kollisionsobjekts“ reisen können. Überprüfen Sie das Objekt an der angegebenen Position.
@@ -2849,7 +2849,7 @@ Ein flexibles Objekt ist ein Phantom und nicht physisch, bis die Option „Flexi
<notification name="FirstDebugMenus">
Sie haben das Advanced-Menü aktiviert.
Dieses Menü enthält nützliche Funktionen zum Debuggen von [SECOND_LIFE].
-Drücken Sie in Windows Strg-Alt-D (Mac: Befehl-Opt-Umschalt-D) zum Ein- und Ausschalten dieses Menüs.
+Drücken Sie in Windows Strg+Alt+D (Mac: &#8997;&#8984;D) zum Ein- und Ausschalten dieses Menüs.
</notification>
<notification name="FirstSculptedPrim">
Sie bearbeiten ein geformtes Primitiv.
diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
new file mode 100644
index 0000000000..1f67e0231d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Einwohner" />
+ <string name="AcctTypeTrial"
+ value="Test" />
+ <string name="AcctTypeCharterMember"
+ value="Charta-Mitglied" />
+ <string name="AcctTypeEmployee"
+ value="Linden Lab-Mitarbeiter" />
+ <string name="PaymentInfoUsed"
+ value="Zahlungsinfo verwendet" />
+ <string name="PaymentInfoOnFile"
+ value="Zahlungsinfo archiviert" />
+ <string name="NoPaymentInfoOnFile"
+ value="Keine Zahlungsinfo archiviert" />
+ <string name="AgeVerified"
+ value="Altersgeprüft" />
+ <string name="NotAgeVerified"
+ value="Nicht altersgeprüft" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=de
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partner:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Antwort für Beschäftigt-Modus:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml
index e214b19ffd..2acc9e0649 100644
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Allgemein" name="general_tab">
<string name="help_text">
- Die Registerkarte „Allgemein“ enthält Informationen über
-diese Gruppe, eine Liste der Eigentümer und sichtbaren Mitglieder,
-allgemeine Gruppeneinstellungen und Mitgliederoptionen.
+ Die Registerkarte „Allgemein“ enthält Informationen über diese Gruppe, eine Liste der Eigentümer und sichtbaren Mitglieder, allgemeine Gruppeneinstellungen und Mitgliederoptionen.
Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
</string>
@@ -47,7 +45,7 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
<panel name="preferences_container">
<check_box label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen."/>
<check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulässig ist."/>
- <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen."/>
+ <check_box label="Beitrittsgebühr:" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen."/>
<spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/>
<combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Mature“ sind.">
<combo_box.item name="select_mature" label="- Mature wählen -"/>
@@ -72,88 +70,3 @@ Sind Sie wirklich, WIRKLICH sicher, dass Sie 100 L$ für die Gründung dieser Gr
Falls in den nächsten 48 Stunden niemand sonst dieser Gruppe beitritt, wird sie aufgelöst und der Name der Gruppe wird nicht mehr verfügbar sein.
</string>
</panel>
-
-<!-- original file
-
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Allgemein" name="general_tab">
- <string name="help_text">
- Die Registerkarte „Allgemein“ enthält Informationen über
-diese Gruppe, eine Liste der Eigentümer und sichtbaren Mitglieder,
-allgemeine Gruppeneinstellungen und Mitgliederoptionen.
-
-Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
- </string>
- <string name="group_info_unchanged">
- Die allgemeine Gruppeninfo wurde geändert.
- </string>
- <button label="?" label_selected="?" name="help_button"/>
- <line_editor label="Neuen Gruppennamen hier eingeben" name="group_name_editor"/>
- <text name="group_name">
- Neuen Gruppennamen hier eingeben
- </text>
- <text name="prepend_founded_by">
- Gegründet von
- </text>
- <text left_delta="79" name="founder_name">
- (wartet)
- </text>
- <text name="group_charter_label">
- Gruppencharta
- </text>
- <texture_picker label="Gruppeninsignien" name="insignia" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <text_editor name="charter">
- Gruppencharta
- </text_editor>
- <button label="Beitreten (0 L$)" label_selected="Beitreten (0 L$)" name="join_button"/>
- <button label="Detailansicht" label_selected="Detailansicht" name="info_button"/>
- <text name="text_owners_and_visible_members">
- Eigentümer und sichtbare Mitglieder
- </text>
- <text name="text_owners_are_shown_in_bold">
- (Eigentümer werden fettgedruckt angezeigt)
- </text>
- <name_list name="visible_members">
- <name_list.columns label="Mitgliedsname" name="name" relwidth="0.40"/>
- <name_list.columns label="Titel" name="title" relwidth="0.25"/>
- <name_list.columns label="Letzte Anmeldung" name="online" relwidth="0.35"/>
- </name_list>
- <text name="text_group_preferences">
- Gruppeneinstellungen
- </text>
- <panel name="preferences_container">
- <check_box label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen."/>
- <check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulässig ist."/>
- <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen." width="125"/>
- <spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/>
- <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Mature“ sind.">
- <combo_box.item name="select_mature">
- - Mature wählen -
- </combo_item>
- <combo_box.item name="mature">
- Mature-Inhalt
- </combo_item>
- <combo_box.item name="pg">
- PG-Inhalt
- </combo_item>
- </combo_box>
- <panel name="title_container">
- <text name="active_title_label">
- Mein aktiver Titel
- </text>
- <combo_box name="active_title" tool_tip="Legt fest, was im Namensschild Ihres Avatars angezeigt wird, wenn diese Gruppe aktiviert ist."/>
- </panel>
- <check_box label="Gruppenmitteilungen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten." width="173"/>
- <check_box label="Gruppe im Profil anzeigen" name="list_groups_in_profile" tool_tip="Steuert, ob diese Gruppe in Ihrem Profil angezeigt wird"/>
- </panel>
- <string name="incomplete_member_data_str">
- Mitgliedsdaten werden abgerufen
- </string>
- <string name="confirm_group_create_str">
- Die Gründung dieser Gruppe kostet 100 L$.
-Sind Sie wirklich, WIRKLICH sicher, dass Sie 100 L$ für die Gründung dieser Gruppe ausgeben möchten?
-Falls in den nächsten 48 Stunden niemand sonst dieser Gruppe beitritt, wird sie aufgelöst und der Name der Gruppe wird nicht mehr verfügbar sein.
- </string>
-</panel>
-
--->
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index e2e30b7479..bc39a3a1bb 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -48,8 +48,11 @@
<string name="land_contrib_error">
Ihr Landbeitrag kann nicht festgelegt werden.
</string>
+ <text name="your_contribution_units">
+ ( qm )
+ </text>
<text name="your_contribution_max_value">
- qm (max. [AMOUNT])
+ (max. [AMOUNT])
</text>
<text name="group_over_limit_text">
Die Gruppenmitglieder müssen mehr Landnutzungsrechte spenden, damit das verwendete Land gehalten werden kann.
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index bfd4148895..8d9ebe423b 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG, Mature und Adult"/>
<combo_box.item name="Desired_Mature" label="PG und Mature"/>
- <combo_box.item name="Desired_PG" label="Nur PG"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- Nur PG
+ PG
</text>
<text name="start_location_textbox">
Startposition:
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index 790555296d..ddc5941da6 100644
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Grundstück" name="Estate">
+<panel label="Grundstück" name="Estate">
<text name="estate_help_text">
Änderungen auf dieser Registerkarte wirken sich
auf alle Regionen auf dem Grundstück aus.
@@ -76,6 +74,4 @@ auf alle Regionen auf dem Grundstück aus.
<button label="Entfernen..." name="remove_banned_avatar_btn" />
<button label="Nachricht an Grundstück senden..." name="message_estate_btn" />
<button label="Benutzer von Grundstück werfen..." name="kick_user_from_estate_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_region_texture.xml b/indra/newview/skins/default/xui/de/panel_region_texture.xml
index 456feb0371..df936ff643 100644
--- a/indra/newview/skins/default/xui/de/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Bodentexturen" name="Textures">
+<panel label="Bodentexturen" name="Textures">
<text name="region_text_lbl">
Region:
</text>
@@ -56,6 +54,4 @@
und der OBERE WERT die MINIMALE Höhe von Textur 4.
</text>
<button label="Übernehmen" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 5df1570bfd..af9185e0b7 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -488,16 +488,16 @@
Verzeichnis auswählen
</string>
<string name="accel-mac-control">
- Strg-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Umschalt-
+ &#8679;
</string>
<string name="accel-win-control">
Strg+
@@ -603,6 +603,9 @@
<string name="no_ability_error">
Sie besitzen diese Fähigkeit nicht.
</string>
+ <string name="no_ability">
+ Sie besitzen diese Fähigkeit nicht.
+ </string>
<string name="not_a_mod_error">
Sie sind kein Sitzungsmoderator.
</string>
@@ -621,4 +624,31 @@
<string name="close_on_no_ability">
Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen.
</string>
+ <string name="AcctTypeResident">
+ Einwohner
+ </string>
+ <string name="AcctTypeTrial">
+ Test
+ </string>
+ <string name="AcctTypeCharterMember">
+ Charta-Mitglied
+ </string>
+ <string name="AcctTypeEmployee">
+ Linden Lab-Mitarbeiter
+ </string>
+ <string name="PaymentInfoUsed">
+ Zahlungsinfo verwendet
+ </string>
+ <string name="PaymentInfoOnFile">
+ Zahlungsinfo archiviert
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Keine Zahlungsinfo archiviert
+ </string>
+ <string name="AgeVerified">
+ Altersgeprüft
+ </string>
+ <string name="NotAgeVerified">
+ Nicht altersgeprüft
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/en/favorites_bar_button.xml b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
index dcd85e1f58..a8d3f440c3 100644
--- a/indra/newview/skins/default/xui/en/favorites_bar_button.xml
+++ b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
@@ -9,15 +9,15 @@
image_disabled_selected="transparent.j2c"
image_selected="transparent.j2c"
image_unselected="transparent.j2c"
- image_hover_selected="PushButton_Selected"
- image_hover_unselected="PushButton_Off"
- image_pressed="PushButton_Press"
- image_pressed_selected="PushButton_Selected_Press"
+ image_hover_selected="FileMenu_BarSelect"
+ image_hover_unselected="FileMenu_BarSelect"
+ image_pressed="FileMenu_BarSelect"
+ image_pressed_selected="FileMenu_BarSelect"
hover_glow_amount="0.15"
layout="topleft"
- left="2"
+ left="0"
name="favorites_bar_btn"
tab_stop="false"
- top="2"
+ top="10"
use_ellipses="true"
width="120" />
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index 0733280c39..b194b533af 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -78,6 +78,7 @@
<panel
border="true"
label="Support"
+ help_topic="about_support_tab"
name="support_panel">
<text_editor
allow_html="true"
@@ -103,6 +104,7 @@
<panel
border="true"
label="Credits"
+ help_topic="about_credits_tab"
name="credits_panel">
<text_editor
enabled="false"
@@ -134,6 +136,7 @@ It is a rare mind indeed that can render the hitherto non-existent blindingly ob
<panel
border="true"
label="Licenses"
+ help_topic="about_licenses_tab"
name="licenses_panel">
<text_editor
enabled="false"
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 524495d83d..1f366f6c52 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -40,6 +40,7 @@
label="General"
layout="topleft"
left="1"
+ help_topic="land_general_tab"
name="land_general_panel"
top="-31"
width="458">
@@ -535,6 +536,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
label="Covenant"
layout="topleft"
left_delta="-1"
+ help_topic="land_covenant_tab"
name="land_covenant_panel"
top_delta="-47"
width="458">
@@ -801,6 +803,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
label="Objects"
layout="topleft"
left_delta="0"
+ help_topic="land_objects_tab"
name="land_objects_panel"
top_delta="-47"
width="458">
@@ -1166,6 +1169,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
label="Options"
layout="topleft"
left_delta="0"
+ help_topic="land_options_tab"
name="land_options_panel"
top_delta="31"
width="458">
@@ -1603,6 +1607,7 @@ Only large parcels can be listed in search.
label="Media"
layout="topleft"
left_delta="0"
+ help_topic="land_media_tab"
name="land_media_panel"
top_delta="1"
width="458">
@@ -1865,6 +1870,7 @@ Texture:
label="Audio"
layout="topleft"
left_delta="0"
+ help_topic="land_audio_tab"
name="land_audio_panel"
top_delta="1"
width="458">
@@ -1968,6 +1974,7 @@ Texture:
label="Access"
layout="topleft"
left_delta="0"
+ help_topic="land_access_tab"
name="land_access_panel"
top_delta="31"
width="458">
diff --git a/indra/newview/skins/default/xui/en/floater_auction.xml b/indra/newview/skins/default/xui/en/floater_auction.xml
index 29f8b49794..fb0994b4cd 100644
--- a/indra/newview/skins/default/xui/en/floater_auction.xml
+++ b/indra/newview/skins/default/xui/en/floater_auction.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
can_resize="true"
- height="368"
+ height="412"
layout="topleft"
- min_height="368"
+ min_height="412"
min_width="420"
name="floater_auction"
help_topic="floater_auction"
@@ -49,21 +49,47 @@
left_delta="0"
name="snapshot_btn"
top_pad="4"
- width="96">
+ width="150">
<button.commit_callback
function="ClickSnapshot" />
</button>
<button
follows="left|bottom"
height="20"
- label="OK"
- label_selected="OK"
+ label="Sell to Anyone"
+ label_selected="Sell to Anyone"
+ layout="topleft"
+ left_delta="0"
+ name="sell_to_anyone_btn"
+ top_pad="4"
+ width="150">
+ <button.commit_callback
+ function="ClickSellToAnyone" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Clear Settings"
+ label_selected="Clear Settings"
+ layout="topleft"
+ left_delta="0"
+ name="reset_parcel_btn"
+ top_pad="4"
+ width="150">
+ <button.commit_callback
+ function="ClickResetParcel" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Start Auction"
+ label_selected="Start Auction"
layout="topleft"
left_pad="4"
- name="ok_btn"
+ name="start_auction_btn"
top_delta="0"
- width="48">
+ width="150">
<button.commit_callback
- function="ClickOK" />
+ function="ClickStartAuction" />
</button>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
index e1f8011cbe..0542d4509e 100644
--- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
@@ -40,6 +40,7 @@
label="Search"
layout="topleft"
left="6"
+ help_topic="avatarpicker_search_tab"
name="SearchPanel"
top="150"
width="132">
@@ -91,6 +92,7 @@
label="Near Me"
layout="topleft"
left="6"
+ help_topic="avatarpicker_near_me_tab"
name="NearMePanel"
top="150"
width="132">
diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
index 991c9a84a3..041cd2a118 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
@@ -12,10 +12,6 @@
name="buy_currency">
Buy L$ [LINDENS] for approx. [LOCALAMOUNT]
</floater.string>
- <floater.string
- name="account_website">
- http://secondlife.com/account/billing.php
- </floater.string>
<icon
height="215"
image_name="Linden_Dollar_Background"
@@ -35,7 +31,7 @@
top="30"
width="300"
name="info_need_more">
- You need more L$:
+ You need more L$
</text>
<text
type="string"
@@ -43,7 +39,8 @@
follows="top|left"
height="16"
layout="topleft"
- left="20"
+ top="246"
+ left="15"
width="300"
name="contacting">
Contacting LindeX...
@@ -70,7 +67,7 @@
layout="topleft"
left="20"
name="balance_label"
- top_pad="10"
+ top="70"
width="210">
I have
</text>
@@ -85,7 +82,7 @@
left="200"
name="balance_amount"
top_delta="0"
- width="100">
+ width="120">
L$ [AMT]
</text>
<text
@@ -94,7 +91,7 @@
follows="top|left"
font="SansSerifMedium"
height="16"
- top_pad="15"
+ top="100"
layout="topleft"
left="20"
name="currency_action"
@@ -109,7 +106,7 @@
height="16"
layout="topleft"
top_delta="0"
- left="222"
+ left="242"
name="currency_label"
width="15">
L$
@@ -136,7 +133,7 @@
height="16"
layout="topleft"
left="20"
- top_pad="10"
+ top="130"
name="buying_label"
width="210">
For the price
@@ -153,7 +150,7 @@
layout="topleft"
left="170"
name="currency_est"
- width="130">
+ width="150">
[LOCALAMOUNT]
</text>
<text
@@ -164,8 +161,9 @@
follows="top|left"
height="16"
layout="topleft"
- left="40"
- width="100"
+ top="130"
+ left="170"
+ width="150"
halign="right"
name="getting_data">
Estimating...
@@ -173,13 +171,13 @@
<text
type="string"
font="SansSerifSmall"
- top_delta="0"
+ top="150"
length="1"
follows="top|left"
halign="right"
height="16"
- left_pad="10"
- width="150"
+ left="150"
+ width="170"
layout="topleft"
name="buy_action">
[NAME] L$ [PRICE]
@@ -193,6 +191,7 @@
layout="topleft"
left="20"
name="total_label"
+ top="170"
width="210">
My new balance will be
</text>
@@ -207,7 +206,7 @@
left="200"
halign="right"
name="total_amount"
- width="100">
+ width="120">
L$ [AMT]
</text>
<text
@@ -215,8 +214,10 @@
length="1"
follows="top|left"
layout="topleft"
+ top="195"
left="20"
width="300"
+ height="30"
name="purchase_warning_repurchase">
Confirming this purchase only buys the L$.
You&apos;ll need to try again.
@@ -226,7 +227,10 @@ You&apos;ll need to try again.
length="1"
follows="top|left"
layout="topleft"
+ top="195"
left="20"
+ width="300"
+ height="30"
name="purchase_warning_notenough">
You aren&apos;t buying enough L$.
Increase the amount to buy.
@@ -239,7 +243,7 @@ Increase the amount to buy.
layout="topleft"
left="151"
name="buy_btn"
- top="248"
+ top="242"
width="90"/>
<button
follows="bottom|right"
@@ -260,15 +264,23 @@ Increase the amount to buy.
<text
type="string"
font="SansSerifHuge"
- left="170"
+ left="165"
width="170"
- height="80"
- top="30"
+ height="25"
+ top="25"
name="info_cannot_buy">
- Take your
-[SECOND_LIFE] to
-the next level...
+ Unable to Buy
</text>
+ <text
+ type="string"
+ width="175"
+ height="125"
+ top="60"
+ left="165"
+ word_wrap="true"
+ follows="bottom|right"
+ name="cannot_buy_message">
+ </text>
<button
follows="bottom|left"
height="20"
@@ -276,16 +288,6 @@ the next level...
layout="topleft"
left="170"
name="error_web"
- top="120"
+ top="200"
width="160"/>
- <text
- type="string"
- width="350"
- height="20"
- top_pad="92"
- left_pad="-300"
- follows="bottom|right"
- name="cannot_buy_message">
- Continue to the web site and enter payment information
- </text>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml
index 62d40bc45f..6d1c2c1cb9 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
@@ -587,7 +587,7 @@ sold with objects
width="215"
word_wrap="true">
You hold 1309 m² of land.
- This parcel is 512 m² of land.
+This parcel is 512 m² of land.
</text>
<locate
height="10"
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index c4a2654403..86c75a3946 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
can_dock="true"
- can_minimize="false"
- can_close="false"
+ can_minimize="true"
+ can_close="true"
center_horiz="true"
follows="top"
height="110"
diff --git a/indra/newview/skins/default/xui/en/floater_font_test.xml b/indra/newview/skins/default/xui/en/floater_font_test.xml
index 6f9038df62..66c207603b 100644
--- a/indra/newview/skins/default/xui/en/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/en/floater_font_test.xml
@@ -199,7 +199,7 @@
bottom_delta="20"
follows="left|top|right"
font="SansSerif"
- font_shadow="hard"
+ font_shadow="none"
height="16"
layout="topleft"
left="16">
diff --git a/indra/newview/skins/default/xui/en/floater_gesture.xml b/indra/newview/skins/default/xui/en/floater_gesture.xml
index 052398bcd3..3d0a969112 100644
--- a/indra/newview/skins/default/xui/en/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_gesture.xml
@@ -2,13 +2,16 @@
<floater
can_resize="true"
height="465"
- layout="topleft"
- min_height="200"
- min_width="280"
name="gestures"
help_topic="gestures"
- title="Active Gestures"
- width="280">
+ title="Gestures"
+ background_visible="true"
+ follows="all"
+ label="Places"
+ layout="topleft"
+ min_height="350"
+ min_width="240"
+ width="313">
<floater.string
name="loading">
Loading...
@@ -17,31 +20,20 @@
name="playing">
(Playing)
</floater.string>
- <text
- type="string"
- length="1"
- bottom="30"
- follows="top|left"
- layout="topleft"
- left="15"
- name="help_label">
- Double-click a gesture to play.
- </text>
<scroll_list
- bottom_delta="390"
+ bottom_delta="400"
draw_heading="true"
- follows="top|left|bottom|right"
- height="380"
+ follows="all"
layout="topleft"
- left="15"
- name="gesture_list"
- right="-15">
+ left="0"
+ top="20"
+ name="gesture_list">
<scroll_list.columns
label="Name"
name="name"
- width="90" />
+ width="153" />
<scroll_list.columns
- label="Trigger"
+ label="Chat"
name="trigger"
width="80" />
<scroll_list.columns
@@ -51,29 +43,74 @@
<scroll_list.columns
label="Key"
name="shortcut"
- width="50" />
+ width="80" />
</scroll_list>
+ <panel
+ background_visible="true"
+ bevel_style="none"
+ top_pad="0"
+ follows="left|right|bottom"
+ height="30"
+ label="bottom_panel"
+ layout="topleft"
+ left="0"
+ name="bottom_panel"
+ width="313">
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ tool_tip="Change sort and view of Recent Residents list"
+ height="18"
+ image_disabled="OptionsMenu_Disabled"
+ image_selected="OptionsMenu_Press"
+ image_unselected="OptionsMenu_Off"
+ layout="topleft"
+ left="10"
+ name="recent_viewsort_btn"
+ picture_style="true"
+ top="5"
+ width="18" />
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ height="18"
+ image_selected="AddItem_Press"
+ image_unselected="AddItem_Off"
+ image_disabled="AddItem_Disabled"
+ layout="topleft"
+ left_pad="5"
+ name="new_gesture_btn"
+ picture_style="true"
+ tool_tip="Make new Gesture"
+ top_delta="0"
+ width="18" />
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ height="18"
+ image_selected="TrashItem_Press"
+ image_unselected="TrashItem_Off"
+ image_disabled="TrashItem_Disabled"
+ layout="topleft"
+ left_pad="230"
+ name="del_btn"
+ picture_style="true"
+ tool_tip="Delete this Gesture"
+ top_delta="0"
+ width="18" />
+ </panel>
<button
follows="bottom|right"
- height="20"
- label="New"
- layout="topleft"
- left_delta="0"
- name="new_gesture_btn"
- top_pad="10"
- width="83" />
- <button
- follows="bottom|right"
- height="20"
+ height="23"
label="Edit"
layout="topleft"
- left_pad="6"
+ left="6"
name="edit_btn"
- top_delta="0"
+ top_pad="5"
width="83" />
<button
follows="bottom|right"
- height="20"
+ height="23"
label="Play"
layout="topleft"
left_pad="6"
@@ -82,7 +119,7 @@
width="83" />
<button
follows="bottom|right"
- height="20"
+ height="23"
label="Stop"
layout="topleft"
left_delta="0"
@@ -90,4 +127,3 @@
top_delta="0"
width="83" />
</floater>
-
diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml
index 615c35e6c3..53d05f3c61 100644
--- a/indra/newview/skins/default/xui/en/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml
@@ -23,6 +23,7 @@
layout="topleft"
left="1"
mouse_opaque="false"
+ help_topic="godtools_grid_tab"
name="grid"
top="16"
width="398">
@@ -61,6 +62,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="godtools_region_tab"
name="region"
top_delta="0"
width="398">
@@ -483,6 +485,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="godtools_objects_tab"
name="objects"
top_delta="0"
width="398">
@@ -690,6 +693,7 @@
label="Request"
layout="topleft"
left_delta="0"
+ help_topic="godtools_request_tab"
name="request"
top_delta="0"
width="398">
diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
index 70f296b606..c695753ca3 100644
--- a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
@@ -95,7 +95,7 @@
name="(brightness, lower is brighter)"
top_delta="2"
width="315">
- (brightness, lower = brighter, 0 = default)
+ (0 = default brightness, lower = brighter)
</text>
<text
type="string"
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index a233f7f0fa..611c51ad11 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -11,10 +11,10 @@
can_dock="true"
can_minimize="true"
visible="true"
- width="315">
+ width="365">
<layout_stack follows="left|top|right|bottom"
height="235"
- width="315"
+ width="365"
layout="topleft"
orientation="horizontal"
name="im_panels"
@@ -25,13 +25,13 @@
layout="topleft"
top_delta="-3"
min_width="96"
- width="96"
+ width="146"
height="225"
label="IM Control Panel"
user_resize="false" />
<layout_panel height="235"
width="200"
- left_delta="96"
+ left_delta="146"
top="0"
user_resize="false">
<button height="12"
@@ -62,7 +62,7 @@
width="195"
word_wrap="true">
</text_editor>
- <line_editor name="chat_editor" height="20" layout="topleft" width="190">
+ <line_editor follows="left|right" name="chat_editor" height="20" layout="topleft" width="190">
</line_editor>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
index bdce8fa4fc..95e4247a05 100644
--- a/indra/newview/skins/default/xui/en/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
@@ -34,7 +34,6 @@
font="SansSerif"
height="64"
border_visible="false"
- hide_scrollbar="true"
layout="topleft"
left="77"
max_length="2147483647"
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index dc6a02efe1..a2b2e1ddf3 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -67,7 +67,6 @@
left="0"
name="floater_map_north"
right="10"
- text="N"
text_color="1 1 1 0.7"
top="215">
N
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 65235da8d5..f82e01dd1f 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
can_dock="true"
- can_close="false"
- can_minimize="false"
+ can_close="true"
+ can_minimize="true"
center_horiz="true"
follows="bottom"
height="110"
@@ -50,6 +50,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_TurnLeft_On"
+ image_pressed_selected="Movement_TurnLeft_On"
image_unselected="Movement_TurnLeft_Off"
layout="topleft"
left="17"
@@ -63,6 +64,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_TurnRight_On"
+ image_pressed_selected="Movement_TurnRight_On"
image_unselected="Movement_TurnRight_Off"
layout="topleft"
left_pad="34"
@@ -76,6 +78,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_Up_On"
+ image_pressed_selected="Movement_Up_On"
image_unselected="Movement_Up_Off"
layout="topleft"
left="10"
@@ -89,6 +92,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_Down_On"
+ image_pressed_selected="Movement_Down_On"
image_unselected="Movement_Down_Off"
layout="topleft"
left_pad="45"
@@ -102,6 +106,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_Forward_On"
+ image_pressed_selected="Movement_Forward_On"
image_unselected="Movement_Forward_Off"
layout="topleft"
left="46"
@@ -116,6 +121,7 @@
follows="left|bottom"
height="25"
image_selected="Movement_Backward_On"
+ image_pressed_selected="Movement_Backward_On"
image_unselected="Movement_Backward_Off"
layout="topleft"
left_delta="0"
diff --git a/indra/newview/skins/default/xui/en/floater_my_friends.xml b/indra/newview/skins/default/xui/en/floater_my_friends.xml
index a9a18f44c4..0ca4fc825a 100644
--- a/indra/newview/skins/default/xui/en/floater_my_friends.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_friends.xml
@@ -28,6 +28,7 @@
label="Friends"
layout="topleft"
left="0"
+ help_topic="my_friends_friends_tab"
name="friends_panel"
width="370" />
<panel
@@ -36,6 +37,7 @@
label="Groups"
layout="topleft"
left="0"
+ help_topic="my_friends_groups_tab"
name="groups_panel"
width="370" />
</tab_container>
diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
index e851710ad8..f1976afb4a 100644
--- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
@@ -31,12 +31,13 @@
name="close_btn"/>
</panel>
<text_editor
+ allow_html="true"
bg_readonly_color="ChatHistoryBgColor"
bg_writeable_color="ChatHistoryBgColor"
follows="left|top|right|bottom"
font="SansSerif"
layout="topleft"
- height="320"
+ height="320"
max_length="2147483647"
name="Chat History Editor"
parse_highlights="true"
diff --git a/indra/newview/skins/default/xui/en/floater_post_process.xml b/indra/newview/skins/default/xui/en/floater_post_process.xml
index aaf7aecd6b..571f4149f0 100644
--- a/indra/newview/skins/default/xui/en/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/en/floater_post_process.xml
@@ -23,6 +23,7 @@
layout="topleft"
left="1"
mouse_opaque="false"
+ help_topic="post_process_color_filter_tab"
name="wmiColorFilterPanel"
top="0"
width="398">
@@ -184,6 +185,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="post_process_night_vision_tab"
name="wmiNightVisionPanel"
top_delta="-236"
width="398">
@@ -279,6 +281,7 @@
label="Bloom"
layout="topleft"
left_delta="0"
+ help_topic="post_process_bloom_tab"
name="wmiBloomPanel"
top_delta="-236"
width="398">
@@ -374,6 +377,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="post_process_extras_tab"
name="Extras"
top_delta="-236"
width="398">
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index d655c268b2..cf9e3a82fc 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -52,54 +52,63 @@
filename="panel_preferences_general.xml"
label="General"
layout="topleft"
+ help_topic="preferences_general_tab"
name="general" />
<panel
class="panel_preference"
filename="panel_preferences_graphics1.xml"
label="Graphics"
layout="topleft"
+ help_topic="preferences_display_tab"
name="display" />
<panel
class="panel_preference"
filename="panel_preferences_im.xml"
label="Privacy"
layout="topleft"
+ help_topic="preferences_im_tab"
name="im" />
<panel
class="panel_preference"
filename="panel_preferences_audio.xml"
label="Sound"
layout="topleft"
+ help_topic="preferences_audio_tab"
name="audio" />
<panel
class="panel_preference"
filename="panel_preferences_chat.xml"
label="Chat"
layout="topleft"
+ help_topic="preferences_chat_tab"
name="chat" />
<panel
class="panel_preference"
filename="panel_preferences_popups.xml"
label="Alerts"
layout="topleft"
+ help_topic="preferences_msgs_tab"
name="msgs" />
<panel
class="panel_preference"
filename="panel_preferences_input.xml"
label="Setup"
layout="topleft"
+ help_topic="preferences_input_tab"
name="input" />
<panel
class="panel_preference"
filename="panel_preferences_advanced.xml"
label="Advanced"
layout="topleft"
+ help_topic="preferences_advanced1_tab"
name="advanced1" />
<panel
class="panel_preference"
filename="panel_preferences_advanced2.xml"
label="Move or Kill"
layout="topleft"
+ help_topic="preferences_advanced2_tab"
name="advanced2" />
</tab_container>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
index f90f2a81cf..448b0fa6af 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
@@ -86,7 +86,7 @@
follows="left|bottom"
height="22"
label="Save"
- label_selected="Discard"
+ label_selected="Save"
layout="topleft"
left="288"
name="Save"
diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
index a243cb399e..e477b6ddb8 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
@@ -45,22 +45,22 @@
<button
follows="left|bottom"
height="22"
- label="Delete"
+ label="OK"
layout="topleft"
left="80"
- name="Discard"
+ name="Keep"
top="302"
width="100" />
<button
follows="left|bottom"
height="22"
- label="Save"
+ label="Cancel"
layout="topleft"
left_pad="5"
- name="Keep"
+ name="Discard"
top_delta="0"
width="100" />
- <text
+ <text
type="string"
length="1"
follows="left|bottom"
@@ -68,8 +68,66 @@
layout="topleft"
left="13"
name="dimensions"
- top="287"
+ top="309"
width="303">
[WIDTH]px x [HEIGHT]px
</text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="false"
+ border_drop_shadow_visible="false"
+ border_visible="false"
+ top="309"
+ drop_shadow_visible="true"
+ enabled="true"
+ follows="right|bottom"
+ font="SansSerifSmall"
+ h_pad="0"
+ halign="right"
+ height="14"
+ left="54"
+ mouse_opaque="true"
+ name="aspect_ratio"
+ v_pad="0"
+ width="110">
+ Preview Aspect Ratio
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ top="306"
+ follows="right|bottom"
+ height="20"
+ left="176"
+ max_chars="20"
+ mouse_opaque="true"
+ enabled="true"
+ width="108"
+ name="combo_aspect_ratio"
+ tool_tip="Preview at a fixed aspect ratio">
+ <combo_item name="Unconstrained" value="Unconstrained">
+ Unconstrained
+ </combo_item>
+ <combo_item name="1:1" value="1:1" tool_tip="Group Insignia or 1st Life Profile">
+ 1:1
+ </combo_item>
+ <combo_item name="4:3" value="4:3" tool_tip="2nd Life Profile">
+ 4:3
+ </combo_item>
+ <combo_item name="10:7" value="10:7" tool_tip="Classifieds and search listings, landmarks">
+ 10:7
+ </combo_item>
+ <combo_item name="3:2" value="3:2" tool_tip="About land">
+ 3:2
+ </combo_item>
+ <combo_item name="16:10" value="16:10">
+ 16:10
+ </combo_item>
+ <combo_item name="16:9" value="16:9" tool_tip="Profile Picks">
+ 16:9
+ </combo_item>
+ <combo_item name="2:1" value="2:1">
+ 2:1
+ </combo_item>
+ </combo_box>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_region_info.xml b/indra/newview/skins/default/xui/en/floater_region_info.xml
index e045b811f2..3fadc15616 100644
--- a/indra/newview/skins/default/xui/en/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/en/floater_region_info.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
height="512"
+ help_topic="regioninfo"
layout="topleft"
name="regioninfo"
- help_topic="regioninfo"
save_rect="true"
title="Region/Estate"
- width="280">
+ width="480">
<tab_container
bottom="512"
follows="left|right|top|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_sell_land.xml b/indra/newview/skins/default/xui/en/floater_sell_land.xml
index f07b9d3767..652ed96192 100644
--- a/indra/newview/skins/default/xui/en/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_sell_land.xml
@@ -212,7 +212,7 @@
name="Anyone"
value="anyone" />
<combo_box.item
- label="Specific user:"
+ label="Specific person:"
name="Specificuser:"
value="user" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/en/floater_settings_debug.xml b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
index e2f4a73ec8..b7779687ec 100644
--- a/indra/newview/skins/default/xui/en/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
@@ -23,7 +23,6 @@
<text_editor
enabled="false"
height="60"
- hide_scrollbar="true"
layout="topleft"
left_delta="0"
name="comment_text"
diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
index 8ed2047a27..cc0fc34dd5 100644
--- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
@@ -277,6 +277,7 @@
follows="top|left"
label="Spinner"
layout="topleft"
+ label_width="45"
name="test_spinner"
tool_tip="spinner"/>
<text
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index c65206d629..d3ceb67ceb 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -32,7 +32,7 @@
</floater.string>
<floater.string
name="status_grab">
- Drag to move, Ctrl to lift, Ctrl-Shift to rotate
+ Drag to move, Ctrl to lift, Ctrl+Shift to rotate
</floater.string>
<floater.string
name="status_place">
@@ -66,8 +66,8 @@
follows="left|top"
height="20"
image_disabled="Tool_Zoom"
- image_disabled_selected="tool_zoom_active.tga"
- image_selected="tool_zoom_active.tga"
+ image_disabled_selected="Tool_Zoom"
+ image_selected="Tool_Zoom"
image_unselected="Tool_Zoom"
layout="topleft"
left="10"
@@ -83,8 +83,8 @@
follows="left|top"
height="20"
image_disabled="Tool_Grab"
- image_disabled_selected="tool_grab_active.tga"
- image_selected="tool_grab_active.tga"
+ image_disabled_selected="Tool_Grab"
+ image_selected="Tool_Grab"
image_unselected="Tool_Grab"
layout="topleft"
left_pad="8"
@@ -100,8 +100,8 @@
follows="left|top"
height="20"
image_disabled="Tool_Face"
- image_disabled_selected="tool_face_active.tga"
- image_selected="tool_face_active.tga"
+ image_disabled_selected="Tool_Face"
+ image_selected="Tool_Face"
image_unselected="Tool_Face"
layout="topleft"
left_pad="8"
@@ -117,8 +117,8 @@
follows="left|top"
height="20"
image_disabled="Tool_Create"
- image_disabled_selected="tool_create_active.tga"
- image_selected="tool_create_active.tga"
+ image_disabled_selected="Tool_Create"
+ image_selected="Tool_Create"
image_unselected="Tool_Create"
layout="topleft"
left_pad="8"
@@ -134,8 +134,8 @@
follows="left|top"
height="20"
image_disabled="Tool_Dozer"
- image_disabled_selected="tool_dozer_active.tga"
- image_selected="tool_dozer_active.tga"
+ image_disabled_selected="Tool_Dozer"
+ image_selected="Tool_Dozer"
image_unselected="Tool_Dozer"
layout="topleft"
left_pad="8"
@@ -148,6 +148,9 @@
parameter="Land" />
</button>
<text
+ height="30"
+ word_wrap="true"
+ use_ellipses="true"
type="string"
text_color="LabelSelectedDisabledColor"
length="1"
@@ -156,7 +159,7 @@
left="8"
name="text status"
top_pad="3"
- width="280">
+ width="275">
Drag to move, shift-drag to copy
</text>
<radio_group
@@ -177,7 +180,7 @@
name="radio orbit" />
<radio_item
top_pad="6"
- label="Pan (Ctrl-Shift)"
+ label="Pan (Ctrl+Shift)"
layout="topleft"
name="radio pan" />
<radio_group.commit_callback
@@ -215,7 +218,7 @@
name="radio lift" />
<radio_item
top_pad="6"
- label="Spin (Ctrl-Shift)"
+ label="Spin (Ctrl+Shift)"
layout="topleft"
name="radio spin" />
<radio_group.commit_callback
@@ -239,7 +242,7 @@
name="radio rotate" />
<radio_item
top_pad="6"
- label="Stretch (Ctrl-Shift)"
+ label="Stretch (Ctrl+Shift)"
layout="topleft"
name="radio stretch" />
<radio_item
@@ -251,39 +254,17 @@
function="BuildTool.commitRadioEdit"/>
</radio_group>
<check_box
- left="10"
+ left="10"
follows="left|top"
+ height="16"
control_name="EditLinkedParts"
label="Edit linked"
layout="topleft"
name="checkbox edit linked parts" >
<check_box.commit_callback
function="BuildTool.selectComponent"/>
- </check_box>
- <combo_box
- height="19"
- left="10"
- layout="topleft"
- follows="left|top"
- top_pad="0"
- name="combobox grid mode"
- width="120">
- <combo_box.item
- label="World ruler"
- name="World"
- value="World" />
- <combo_box.item
- label="Local ruler"
- name="Local"
- value="Local" />
- <combo_box.item
- label="Reference ruler"
- name="Reference"
- value="Reference" />
- <combo_box.commit_callback
- function="BuildTool.gridMode"/>
- </combo_box>
- <check_box
+ </check_box>
+ <check_box
control_name="ScaleUniform"
height="19"
label="Stretch Both Sides"
@@ -301,26 +282,51 @@
name="checkbox stretch textures"
top_pad="0"
width="134" />
- <check_box
+ <check_box
control_name="SnapEnabled"
- height="19"
+ height="20"
initial_value="true"
- label="Snap to Grid"
+ label="Snap to grid"
layout="topleft"
- name="checkbox snap to grid"
top_pad="0"
+ name="checkbox snap to grid"
width="134" />
- <button
- left="163"
- top_pad="0"
- image_overlay="Arrow_Right_Off"
+ <combo_box
+ height="20"
+ layout="topleft"
+ follows="left|top"
+ top_pad="4"
+ name="combobox grid mode"
+ width="108">
+ <combo_box.item
+ label="World grid"
+ name="World"
+ value="World" />
+ <combo_box.item
+ label="Local grid"
+ name="Local"
+ value="Local" />
+ <combo_box.item
+ label="Reference grid"
+ name="Reference"
+ value="Reference" />
+ <combo_box.commit_callback
+ function="BuildTool.gridMode"/>
+ </combo_box>
+ <button
+ left_pad="0"
+ right="-12"
+ image_disabled="ForwardArrow_Disabled"
+ image_selected="ForwardArrow_Press"
+ image_unselected="ForwardArrow_Off"
picture_style="true"
label_selected="Options"
layout="topleft"
name="Options..."
- tool_tip="Set the Grid Options"
- width="26"
- height="22" >
+ tool_tip="Grid Options"
+ top_delta="0"
+ width="18"
+ height="18" >
<button.commit_callback
function="BuildTool.gridOptions"/>
</button>
@@ -328,8 +334,8 @@
follows="left|top"
height="20"
image_disabled="Object_Cube"
- image_disabled_selected="object_cube_active.tga"
- image_selected="object_cube_active.tga"
+ image_disabled_selected="Object_Cube"
+ image_selected="Object_Cube"
image_unselected="Object_Cube"
layout="topleft"
left="4"
@@ -342,8 +348,8 @@
follows="left|top"
height="20"
image_disabled="Object_Prism"
- image_disabled_selected="object_prism_active.tga"
- image_selected="object_prism_active.tga"
+ image_disabled_selected="Object_Prism"
+ image_selected="Object_Prism"
image_unselected="Object_Prism"
layout="topleft"
left_delta="26"
@@ -384,8 +390,8 @@
follows="left|top"
height="20"
image_disabled="Object_Cylinder"
- image_disabled_selected="object_cylinder_active.tga"
- image_selected="object_cylinder_active.tga"
+ image_disabled_selected="Object_Cylinder"
+ image_selected="Object_Cylinder"
image_unselected="Object_Cylinder"
layout="topleft"
left_delta="26"
@@ -398,8 +404,8 @@
follows="left|top"
height="20"
image_disabled="Object_Hemi_Cylinder"
- image_disabled_selected="object_hemi_cylinder_active.tga"
- image_selected="object_hemi_cylinder_active.tga"
+ image_disabled_selected="Object_Hemi_Cylinder"
+ image_selected="Object_Hemi_Cylinder"
image_unselected="Object_Hemi_Cylinder"
layout="topleft"
left_delta="26"
@@ -412,8 +418,8 @@
follows="left|top"
height="20"
image_disabled="Object_Cone"
- image_disabled_selected="object_cone_active.tga"
- image_selected="object_cone_active.tga"
+ image_disabled_selected="Object_Cone"
+ image_selected="Object_Cone"
image_unselected="Object_Cone"
layout="topleft"
left_delta="26"
@@ -426,8 +432,8 @@
follows="left|top"
height="20"
image_disabled="Object_Hemi_Cone"
- image_disabled_selected="object_hemi_cone_active.tga"
- image_selected="object_hemi_cone_active.tga"
+ image_disabled_selected="Object_Hemi_Cone"
+ image_selected="Object_Hemi_Cone"
image_unselected="Object_Hemi_Cone"
layout="topleft"
left_delta="26"
@@ -440,8 +446,8 @@
follows="left|top"
height="20"
image_disabled="Object_Sphere"
- image_disabled_selected="object_sphere_active.tga"
- image_selected="object_sphere_active.tga"
+ image_disabled_selected="Object_Sphere"
+ image_selected="Object_Sphere"
image_unselected="Object_Sphere"
layout="topleft"
left_delta="26"
@@ -454,8 +460,8 @@
follows="left|top"
height="20"
image_disabled="Object_Hemi_Sphere"
- image_disabled_selected="object_hemi_sphere_active.tga"
- image_selected="object_hemi_sphere_active.tga"
+ image_disabled_selected="Object_Hemi_Sphere"
+ image_selected="Object_Hemi_Sphere"
image_unselected="Object_Hemi_Sphere"
layout="topleft"
left_delta="26"
@@ -468,8 +474,8 @@
follows="left|top"
height="20"
image_disabled="Object_Torus"
- image_disabled_selected="object_torus_active.tga"
- image_selected="object_torus_active.tga"
+ image_disabled_selected="Object_Torus"
+ image_selected="Object_Torus"
image_unselected="Object_Torus"
layout="topleft"
left="4"
@@ -482,8 +488,8 @@
follows="left|top"
height="20"
image_disabled="Object_Tube"
- image_disabled_selected="object_tube_active.tga"
- image_selected="object_tube_active.tga"
+ image_disabled_selected="Object_Tube"
+ image_selected="Object_Tube"
image_unselected="Object_Tube"
layout="topleft"
left_delta="26"
@@ -496,8 +502,8 @@
follows="left|top"
height="20"
image_disabled="Object_Ring"
- image_disabled_selected="object_ring_active.tga"
- image_selected="object_ring_active.tga"
+ image_disabled_selected="Object_Ring"
+ image_selected="Object_Ring"
image_unselected="Object_Ring"
layout="topleft"
left_delta="26"
@@ -510,8 +516,8 @@
follows="left|top"
height="20"
image_disabled="Object_Tree"
- image_disabled_selected="object_tree_active.tga"
- image_selected="object_tree_active.tga"
+ image_disabled_selected="Object_Tree"
+ image_selected="Object_Tree"
image_unselected="Object_Tree"
layout="topleft"
left_delta="26"
@@ -524,8 +530,8 @@
follows="left|top"
height="20"
image_disabled="Object_Grass"
- image_disabled_selected="object_grass_active.tga"
- image_selected="object_grass_active.tga"
+ image_disabled_selected="Object_Grass"
+ image_selected="Object_Grass"
image_unselected="Object_Grass"
layout="topleft"
left_delta="26"
@@ -716,25 +722,24 @@
</button>
<text
type="string"
- text_color="LabelSelectedDisabledColor"
length="1"
- top_pad="4"
height="12"
follows="left|top"
halign="right"
layout="topleft"
- left="115"
+ right="-13"
name="obj_count"
+ top_pad="8"
width="143">
Objects: [COUNT]
</text>
<text
type="string"
- text_color="LabelSelectedDisabledColor"
length="1"
follows="left|top"
halign="right"
layout="topleft"
+ right="-13"
name="prim_count"
width="143">
Prims: [COUNT]
@@ -756,6 +761,7 @@
label="General"
layout="topleft"
mouse_opaque="false"
+ help_topic="toolbox_general_tab"
name="General"
top="16">
<panel.string
@@ -827,7 +833,7 @@
name="Object Name"
select_on_focus="true"
top_delta="0"
- width="165" />
+ width="170" />
<text
type="string"
length="1"
@@ -849,7 +855,7 @@
name="Object Description"
select_on_focus="true"
top_delta="0"
- width="165" />
+ width="170" />
<text
type="string"
left="10"
@@ -884,7 +890,7 @@
width="90">
Owner:
</text>
-<!--TODO: add person inspector to creator name-->
+<!--TODO: add person inspector to owner name-->
<text
type="string"
length="1"
@@ -902,41 +908,48 @@
follows="left|top"
layout="topleft"
left="10"
- height="19"
+ height="18"
name="Group:"
- width="70">
+ top_pad="5"
+ width="75">
Group:
</text>
+ <button
+ follows="top|left"
+ height="10"
+ image_disabled="Activate_Checkmark"
+ image_selected="Activate_Checkmark"
+ image_unselected="Activate_Checkmark"
+ image_color="White_50"
+ layout="topleft"
+ left_pad="0"
+ top_delta="2"
+ name="button set group"
+ picture_style="true"
+ tab_stop="false"
+ tool_tip="Choose a group to share this object's permissions"
+ width="10" />
<name_box
follows="left|top"
- height="19"
+ height="18"
initial_value="Loading..."
layout="topleft"
- left_pad="0"
+ left_pad="4"
+ top_delta="-1"
name="Group Name Proxy"
- width="159" />
- <button
- follows="left|top"
- left_pad="0"
- image_overlay="Arrow_Right_Off"
- picture_style="true"
- layout="topleft"
- name="button set group"
- tool_tip="Choose a group to share this object's permissions"
- width="26"
- height="22" />
+ width="150" />
<button
follows="top|left"
font="SansSerifSmall"
- height="19"
+ height="20"
label="Deed"
label_selected="Deed"
layout="topleft"
name="button deed"
top_pad="0"
- left="80"
+ left="83"
tool_tip="Deeding gives this item away with Next Owner permissions. Group shared objects can be deeded by a group officer."
- width="90" />
+ width="100" />
<check_box
height="19"
follows="left|top"
@@ -944,8 +957,8 @@
layout="topleft"
name="checkbox share with group"
tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
- left_pad="5"
- width="93" />
+ left_pad="3"
+ width="100" />
<text
type="string"
length="1"
@@ -960,10 +973,10 @@
</text>
<combo_box
follows="left|top"
- height="22"
+ height="20"
layout="topleft"
name="clickaction"
- width="155"
+ width="158"
left_pad="0">
<combo_box.item
label="Touch (default)"
@@ -1000,12 +1013,12 @@
layout="topleft"
follows="left|top"
allow_text_entry="false"
- height="22"
- width="155"
+ height="20"
+ intial_value="2"
max_chars="20"
mouse_opaque="true"
name="sale type"
- intial_value="2">
+ width="158">
<combo_box.item
name="Copy"
label="Copy"
@@ -1024,21 +1037,23 @@
follows="left|top"
decimal_digits="0"
increment="1"
- top_pad="10"
+ top_pad="8"
+ left="100"
control_name="Edit Cost"
name="Edit Cost"
label="Price: L$"
- label_width="60"
- width="155"
+ label_width="70"
+ width="168"
min_val="1"
- height="19"
+ height="20"
max_val="999999999" />
<check_box
- left="107"
height="15"
width="100"
+ top_pad="3"
label="Show in search"
layout="topleft"
+ left="100"
name="search_check"
tool_tip="Let people see this object in search results"
/>
@@ -1090,13 +1105,6 @@
left_pad="0"
name="checkbox allow everyone copy"
width="90" />
- <check_box
- height="19"
- label="Use"
- layout="topleft"
- left_pad="0"
- name="allow everyone to use"
- width="90" />
<text
type="string"
follows="left|top"
@@ -1133,78 +1141,78 @@
width="90" />
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="EmphasisColor"
length="1"
top_pad="5"
follows="left|top"
layout="topleft"
- left="18"
+ left="10"
name="B:"
height="10"
- width="30">
+ width="45">
B:
</text>
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="White"
length="1"
follows="left|top"
layout="topleft"
left_pad="0"
name="O:"
height="10"
- width="30">
+ width="44">
O:
</text>
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="EmphasisColor"
length="1"
follows="left|top"
layout="topleft"
left_pad="0"
name="G:"
height="10"
- width="30">
+ width="43">
G:
</text>
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="White"
length="1"
follows="left|top"
left_pad="0"
layout="topleft"
name="E:"
height="10"
- width="30">
+ width="43">
E:
</text>
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="EmphasisColor"
length="1"
follows="left|top"
layout="topleft"
left_pad="0"
name="N:"
height="10"
- width="30">
+ width="48">
N:
</text>
<text
type="string"
- text_color="EmphasisColor_35"
+ text_color="White"
length="1"
follows="left|top"
layout="topleft"
left_pad="0"
name="F:"
height="10"
- width="30">
+ width="50">
F:
</text>
- </panel>
+ </panel>
</panel>
<panel
border="false"
@@ -1214,6 +1222,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="toolbox_object_tab"
name="Object"
top="16"
width="280">
@@ -2002,6 +2011,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="toolbox_features_tab"
name="Features"
top_delta="0"
width="280">
@@ -2169,18 +2179,18 @@
name="colorswatch"
tool_tip="Click to open Color Picker"
width="40" />
- <texture_picker
- allow_no_texture="true"
- top_delta="0"
+ <texture_picker
+ allow_no_texture="true"
+ top_delta="0"
can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="48"
+ default_image_name="Default"
+ follows="left|top"
+ height="48"
label=""
- left_delta="57"
- mouse_opaque="true"
+ left_delta="57"
+ mouse_opaque="true"
name="light texture control"
- tool_tip="Click to choose a projection image (only has effect with deferred rendering enabled)"
+ tool_tip="Click to choose a projection image (only has effect with deferred rendering enabled)"
width="32" />
<spinner
follows="left|top"
@@ -2239,6 +2249,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="toolbox_texture_tab"
name="Texture"
top_delta="0"
width="280">
@@ -2484,7 +2495,7 @@
name="weave"
value="weave" />
</combo_box>
- <!--
+ <!--
<line_editor
bevel_style="in"
border_style="line"
@@ -2517,7 +2528,7 @@
name="media info set"
top_delta="-4"
width="120" />
--->
+-->
<text
type="string"
length="1"
@@ -2570,16 +2581,16 @@
name="checkbox flip t"
top_delta="0"
width="70" />
-
+
<spinner
decimal_digits="2"
follows="left|top"
height="19"
increment="1"
initial_value="0"
- label="Rotation (degrees)"
+ label="Rotation (degrees)"
layout="topleft"
- label_width="100"
+ label_width="100"
left="10"
max_val="9999"
min_val="-9999"
@@ -2682,7 +2693,7 @@
name="media_tex"
width="100">
Media:
- </text>
+ </text>
<line_editor
follows="left|top|right"
height="18"
@@ -2735,7 +2746,7 @@
left_delta="190">
<button.commit_callback
function="BuildTool.EditMedia"/>
- </button>
+ </button>
</panel>
<panel
border="false"
@@ -2744,6 +2755,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="toolbox_contents_tab"
name="Contents"
top_delta="0"
width="280">
@@ -2822,7 +2834,7 @@
</text>
<button
follows="left|top"
- height="22"
+ height="20"
label="Land profile"
label_selected="Land profile"
layout="topleft"
@@ -2837,17 +2849,18 @@
layout="topleft"
left_delta="0"
name="checkbox show owners"
- tool_tip="Colorize the parcels according to the type of owner"
+ tool_tip="Colorize the parcels according to the type of owner: &#10;&#10;Green = Your land &#10;Aqua = Your group&apos;s land &#10;Red = Owned by others &#10;Yellow = For sale &#10;Purple = For auction &#10;Grey = Public"
top_pad="8"
width="205" />
- <button
+ <!--TODO: HOOK UP TO HELP VIEWER-->
+ <!-- <button
image_overlay="Arrow_Right_Off"
picture_style="true"
left_pad="5"
name="button show owners help"
tool_tip="See an explanation of colors"
width="26"
- height="22" />
+ height="22" />-->
<text
type="string"
length="1"
@@ -2863,7 +2876,7 @@
</text>
<button
follows="left|top"
- height="22"
+ height="20"
label="Subdivide"
label_selected="Subdivide"
layout="topleft"
@@ -2873,7 +2886,7 @@
width="112" />
<button
follows="left|top"
- height="22"
+ height="20"
label="Join"
label_selected="Join"
layout="topleft"
@@ -2896,7 +2909,7 @@
</text>
<button
follows="left|top"
- height="22"
+ height="20"
label="Buy Land"
label_selected="Buy Land"
layout="topleft"
@@ -2906,7 +2919,7 @@
width="112" />
<button
follows="left|top"
- height="19"
+ height="20"
label="Abandon Land"
label_selected="Abandon Land"
layout="topleft"
@@ -2914,5 +2927,5 @@
name="button abandon land"
top_pad="4"
width="112" />
- </panel>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_ui_preview.xml b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
index 4ed6787f53..acd770cd38 100644
--- a/indra/newview/skins/default/xui/en/floater_ui_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
@@ -102,7 +102,6 @@
top_delta="0"
width="85" />
<button
- enabled="false"
follows="right|top"
height="25"
is_toggle="true"
@@ -171,6 +170,15 @@
name="export_schema"
top_delta="0"
width="120" />
+ <check_box
+ follows="left|top"
+ label="Show Rectangles"
+ name="show_rectangles"
+ left_pad="10"
+ top_delta="0"
+ height="25"
+ width="120" />
+
<scroll_list
bottom="525"
column_padding="0"
@@ -347,14 +355,22 @@
</panel>
<scroll_container
follows="top|right|bottom"
- height="637"
+ height="600"
layout="topleft"
- left_delta="550"
+ left="750"
name="overlap_scroll"
reserve_scroll_corner="true"
- top_delta="2"
+ top="20"
width="300">
- <panel
+ <panel
+ border="true"
+ name="overlap_dummy_panel"
+ top="0"
+ left="0"
+ width="300"
+ height="600"
+ >
+ <overlap_panel
background_opaque="true"
background_visible="true"
bevel_style="in"
@@ -362,14 +378,14 @@
bg_opaque_color="1 1 1 1"
border="true"
follows="top|right|bottom"
- height="637"
+ height="600"
label="Overlap Panel"
layout="topleft"
- left_delta="0"
+ left="0"
min_width="300"
name="overlap_panel"
tool_tip="This panel displays the currently-selected element and all of the elements that overlap it, separated by horizontal lines"
- top="-607"
+ top="0"
visible="false"
width="300" />
<text
@@ -380,12 +396,11 @@
height="30"
layout="topleft"
left="10"
- left_delta="10"
name="overlap_panel_label"
- right="-50"
- top="0"
+ top="10"
width="150">
Overlapping Elements:
</text>
+ </panel>
</scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml
index febfd1929e..6206ea29c2 100644
--- a/indra/newview/skins/default/xui/en/floater_water.xml
+++ b/indra/newview/skins/default/xui/en/floater_water.xml
@@ -75,6 +75,7 @@
layout="topleft"
left="1"
mouse_opaque="false"
+ help_topic="water_settings_tab"
name="Settings"
top="60"
width="698">
@@ -465,6 +466,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="water_waves_tab"
name="Waves"
top_delta="44"
width="698">
diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
index 872bd704d5..2b3bc5f11a 100644
--- a/indra/newview/skins/default/xui/en/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
@@ -84,6 +84,7 @@
layout="topleft"
left="1"
mouse_opaque="false"
+ help_topic="windlight_atmosphere_tab"
name="Atmosphere"
top="60"
width="698">
@@ -519,6 +520,7 @@
label="Lighting"
layout="topleft"
left_delta="0"
+ help_topic="windlight_lighting_tab"
name="Lighting"
top_delta="4"
width="698">
@@ -978,6 +980,7 @@
layout="topleft"
left_delta="0"
mouse_opaque="false"
+ help_topic="windlight_clouds_tab"
name="Clouds"
top_delta="4"
width="698">
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
index bd76b10312..8f88366842 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -30,6 +30,7 @@
label="Objects"
layout="topleft"
left="1"
+ help_topic="worldmap_objects_tab"
name="objects_mapview"
top="19"
width="540" />
@@ -40,6 +41,7 @@
label="Terrain"
layout="topleft"
left_delta="0"
+ help_topic="worldmap_terrain_tab"
name="terrain_mapview"
top_delta="3"
width="540" />
@@ -417,7 +419,8 @@
left_delta="0"
name="search_results"
top_pad="10"
- width="222">
+ width="222"
+ sort_column="1">
<scroll_list.columns
label=""
name="icon"
diff --git a/indra/newview/skins/default/xui/en/fonts.xml b/indra/newview/skins/default/xui/en/fonts.xml
index dec9839d1a..b261281c64 100644
--- a/indra/newview/skins/default/xui/en/fonts.xml
+++ b/indra/newview/skins/default/xui/en/fonts.xml
@@ -150,9 +150,11 @@
comment="Size of large font (points, or 1/72 of an inch)"
size="10.0"
/>
+ <!-- Changed Medium size to address menu font size not matching spec.
+ May want to revert/update after menu font configuration has been enabled. -->
<font_size name="Medium"
comment="Size of medium font (points, or 1/72 of an inch)"
- size="9.0"
+ size="8.0"
/>
<font_size name="Small"
comment="Size of small font (points, or 1/72 of an inch)"
diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml
index 1af07c35be..a934e541da 100644
--- a/indra/newview/skins/default/xui/en/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml
@@ -148,4 +148,17 @@
right="-10"
top="249"
width="18" />
+ <menu_button
+ visible="false"
+ follows="top|left"
+ height="18"
+ image_disabled="OptionsMenu_Disabled"
+ image_selected="OptionsMenu_Press"
+ image_unselected="OptionsMenu_Off"
+ menu_filename="menu_inspect_self_gear.xml"
+ name="gear_self_btn"
+ picture_style="true"
+ right="-10"
+ top="249"
+ width="18" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/inspect_object.xml b/indra/newview/skins/default/xui/en/inspect_object.xml
index 97df28aa30..73a7bef77d 100644
--- a/indra/newview/skins/default/xui/en/inspect_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_object.xml
@@ -144,7 +144,7 @@ This is a really long description for an object being as how it is at least 80 c
image_disabled="OptionsMenu_Disabled"
image_selected="OptionsMenu_Press"
image_unselected="OptionsMenu_Off"
- menu_filename="menu_inspect_avatar_gear.xml"
+ menu_filename="menu_inspect_object_gear.xml"
name="gear_btn"
picture_style="true"
right="-10"
diff --git a/indra/newview/skins/default/xui/en/menu_bottomtray.xml b/indra/newview/skins/default/xui/en/menu_bottomtray.xml
index e98920f8c2..a7abb223ba 100644
--- a/indra/newview/skins/default/xui/en/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/menu_bottomtray.xml
@@ -31,7 +31,7 @@
parameter="ShowMoveButton" />
</menu_item_check>
<menu_item_check
- label="Camera button"
+ label="View button"
layout="topleft"
name="ShowCameraButton">
<menu_item_check.on_click
@@ -41,4 +41,15 @@
function="CheckControl"
parameter="ShowCameraButton" />
</menu_item_check>
+ <menu_item_check
+ label="Snapshot button"
+ layout="topleft"
+ name="ShowSnapshotButton">
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowSnapshotButton" />
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="ShowSnapshotButton" />
+ </menu_item_check>
</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_favorites.xml b/indra/newview/skins/default/xui/en/menu_favorites.xml
index 951cf63c76..be380e11e5 100644
--- a/indra/newview/skins/default/xui/en/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/en/menu_favorites.xml
@@ -29,7 +29,7 @@
parameter="copy_slurl" />
</menu_item_call>
<menu_item_call
- label="Show On Map"
+ label="Show on Map"
layout="topleft"
name="Show On Map">
<menu_item_call.on_click
@@ -55,6 +55,9 @@
<menu_item_call.on_click
function="Favorites.DoToSelected"
parameter="paste" />
+ <menu_item_call.on_enable
+ function="Favorites.EnableSelected"
+ parameter="can_paste" />
</menu_item_call>
<menu_item_separator
diff --git a/indra/newview/skins/default/xui/en/menu_group_plus.xml b/indra/newview/skins/default/xui/en/menu_group_plus.xml
index 2029b19c1c..e83d07baec 100644
--- a/indra/newview/skins/default/xui/en/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/en/menu_group_plus.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu name="menu_group_plus"
left="0" bottom="0" visible="false"
- mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="false">
<menu_item_call name="item_join" label="Join Group...">
<menu_item_call.on_click function="People.Group.Plus.Action" userdata="join_group" />
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
index 9f5b7f3813..5279f9d141 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
@@ -99,10 +99,11 @@
function="InspectAvatar.VisibleFindOnMap"/>
</menu_item_call>
<menu_item_call
- enabled="false"
label="Zoom In"
layout="topleft"
name="zoom_in">
+ <menu_item_call.on_click
+ function="InspectAvatar.ZoomIn"/>
</menu_item_call>
<menu_item_call
label="Pay"
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
index 1bba8eb264..93c53981f3 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
@@ -105,10 +105,11 @@
function="Object.VisibleMute" />
</menu_item_call>
<menu_item_call
- enabled="false"
label="Zoom In"
layout="topleft"
name="zoom_in">
+ <menu_item_call.on_click
+ function="InspectObject.ZoomIn" />
</menu_item_call>
<menu_item_call
label="Remove"
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
new file mode 100644
index 0000000000..240822e5ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu
+ create_jump_keys="true"
+ layout="topleft"
+ mouse_opaque="false"
+ visible="false"
+ name="Gear Menu">
+ <menu_item_call
+ label="Stand Up"
+ layout="topleft"
+ enabled="true"
+ name="stand_up">
+ <menu_item_call.on_click
+ function="Self.StandUp"
+ parameter="" />
+ <menu_item_call.on_visible
+ function="Self.VisibleStandUp" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="my_appearance">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Profile"
+ layout="topleft"
+ enabled="true"
+ name="my_profile">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Friends"
+ layout="topleft"
+ name="my_friends">
+ <menu_item_call.on_click
+ function="Self.Friends"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Groups"
+ layout="topleft"
+ name="my_groups">
+ <menu_item_call.on_click
+ function="Self.Groups" />
+ </menu_item_call>
+</menu> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index d3a2b2c66b..8cb0a69906 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -178,7 +178,7 @@
</menu>
<menu_item_separator />
<menu_item_call
- label="Debug Settings editor"
+ label="Show Debug Settings"
layout="topleft"
name="Debug Settings">
<menu_item_call.on_click
@@ -239,5 +239,12 @@
function="ShowFloater"
parameter="message_critical" />
</menu_item_call>
+ <menu_item_call
+ label="Web Browser Test"
+ name="Web Browser Test">
+ <menu_item_call.on_click
+ function="Advanced.WebBrowserTest"
+ parameter="http://join.secondlife.com/"/>
+ </menu_item_call>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
index 6ef1eb9513..3c7b6dad14 100644
--- a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu name="menu_group_plus"
left="0" bottom="0" visible="false"
- mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="false">
<menu_item_call name="sort_name" label="Sort by Name">
<menu_item_call.on_click function="People.Friends.ViewSort.Action" userdata="sort_name" />
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/en/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_groups_view_sort.xml
index ec8582f5b5..2bec745410 100644
--- a/indra/newview/skins/default/xui/en/menu_people_groups_view_sort.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_groups_view_sort.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu name="menu_group_plus"
left="0" bottom="0" visible="false"
- mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="false">
<menu_item_check
label="Display Group Icons"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml
index 2b0f029016..f91a961388 100644
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu name="menu_group_plus"
left="0" bottom="0" visible="false"
- mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="false">
<menu_item_call name="sort_recent" label="Sort by Recent Speakers">
<menu_item_call.on_click function="People.Nearby.ViewSort.Action" userdata="sort_recent" />
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/en/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_recent_view_sort.xml
index d9606de90d..ed03cd467c 100644
--- a/indra/newview/skins/default/xui/en/menu_people_recent_view_sort.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_recent_view_sort.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu name="menu_group_plus"
left="0" bottom="0" visible="false"
- mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="false">
<menu_item_call name="sort_most" label="Sort by Most Recent">
<menu_item_call.on_click function="People.Recent.ViewSort.Action" userdata="sort_recent" />
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml
new file mode 100644
index 0000000000..6768d7fccb
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_teleport_history_gear.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ name="Teleport History Gear Context Menu"
+ left="0"
+ bottom="0"
+ visible="false"
+ mouse_opaque="false"
+ opaque="true"
+ color="MenuDefaultBgColor"
+ drop_shadow="true" >
+ <menu_item_call
+ label="Expand all folders"
+ name="Expand all folders">
+ <menu_item_call.on_click
+ function="TeleportHistory.ExpandAllFolders" />
+ </menu_item_call>
+ <menu_item_call
+ label="Collapse all folders"
+ name="Collapse all folders">
+ <menu_item_call.on_click
+ function="TeleportHistory.CollapseAllFolders" />
+ </menu_item_call>
+ <menu_item_separator layout="topleft" />
+ <menu_item_call
+ label="Clear Teleport History"
+ name="Clear Teleport History">
+ <menu_item_call.on_click
+ function="TeleportHistory.ClearTeleportHistory" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
index d9cba27b88..515278c23d 100644
--- a/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/menu_teleport_history_item.xml
@@ -23,11 +23,4 @@
<menu_item_call.on_click
function="TeleportHistory.Copy" />
</menu_item_call>
- <menu_item_call
- label="Make Landmark"
- layout="topleft"
- name="Make Landmark">
- <menu_item_call.on_click
- function="TeleportHistory.MakeLandmark" />
- </menu_item_call>
</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_url_agent.xml b/indra/newview/skins/default/xui/en/menu_url_agent.xml
index 885ebbcd52..fa05dac148 100644
--- a/indra/newview/skins/default/xui/en/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_agent.xml
@@ -12,14 +12,14 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy Name To Clipboard"
+ label="Copy Name to clipboard"
layout="topleft"
name="url_copy_label">
<menu_item_call.on_click
function="Url.CopyLabel" />
</menu_item_call>
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_group.xml b/indra/newview/skins/default/xui/en/menu_url_group.xml
index 68da7a0ced..c5eaf94d22 100644
--- a/indra/newview/skins/default/xui/en/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_group.xml
@@ -12,14 +12,14 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy Group To Clipboard"
+ label="Copy Group to clipboard"
layout="topleft"
name="url_copy_label">
<menu_item_call.on_click
function="Url.CopyLabel" />
</menu_item_call>
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_http.xml b/indra/newview/skins/default/xui/en/menu_url_http.xml
index 2503b4a2a3..7a4b1e619b 100644
--- a/indra/newview/skins/default/xui/en/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_http.xml
@@ -28,7 +28,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy URL To Clipboard"
+ label="Copy URL to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_objectim.xml b/indra/newview/skins/default/xui/en/menu_url_objectim.xml
index d7106da177..6f7e659f48 100644
--- a/indra/newview/skins/default/xui/en/menu_url_objectim.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_objectim.xml
@@ -21,14 +21,14 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy Object Name To Clipboard"
+ label="Copy Object Name to clipboard"
layout="topleft"
name="url_copy_label">
<menu_item_call.on_click
function="Url.CopyLabel" />
</menu_item_call>
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_parcel.xml b/indra/newview/skins/default/xui/en/menu_url_parcel.xml
index cbeb1f8e51..3804f7f780 100644
--- a/indra/newview/skins/default/xui/en/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_parcel.xml
@@ -12,7 +12,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_slapp.xml b/indra/newview/skins/default/xui/en/menu_url_slapp.xml
index 3eeef0f47e..6d1060b633 100644
--- a/indra/newview/skins/default/xui/en/menu_url_slapp.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_slapp.xml
@@ -12,7 +12,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_slurl.xml b/indra/newview/skins/default/xui/en/menu_url_slurl.xml
index 933f8a4484..58714f1f42 100644
--- a/indra/newview/skins/default/xui/en/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_slurl.xml
@@ -21,7 +21,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_url_teleport.xml b/indra/newview/skins/default/xui/en/menu_url_teleport.xml
index 62c7a2f5a9..ff52d7e109 100644
--- a/indra/newview/skins/default/xui/en/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/en/menu_url_teleport.xml
@@ -3,7 +3,7 @@
layout="topleft"
name="Url Popup">
<menu_item_call
- label="Teleport To This Location"
+ label="Teleport to this Location"
layout="topleft"
name="teleport">
<menu_item_call.on_click
@@ -12,7 +12,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Copy SLurl To Clipboard"
+ label="Copy SLurl to clipboard"
layout="topleft"
name="url_copy">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index b0839ce255..93a0b917f9 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -18,23 +18,7 @@
function="Floater.Show"
parameter="preferences" />
</menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu
- label="My Account"
- layout="topleft"
- name="My Account"
- tear_off="true">
- <menu_item_call
- label="Account History"
- layout="topleft"
- name="Account History">
- <menu_item_call.on_click
- function="PromptShowURL"
- name="AccountHistory_url"
- parameter="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" />
- </menu_item_call>
- <menu_item_call
+ <menu_item_call
label="Manage My Account"
layout="topleft"
name="Manage My Account">
@@ -42,28 +26,7 @@
function="PromptShowURL"
name="ManageMyAccount_url"
parameter="WebLaunchJoinNow,http://secondlife.com/account/" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="My Land"
- layout="topleft"
- name="My Land">
- <menu_item_call.on_click
- function="ShowFloater"
- parameter="land_holdings" />
- </menu_item_call>
- <menu_item_call
- label="Buy Land"
- layout="topleft"
- name="Buy Land">
- <menu_item_call.on_click
- function="ShowFloater"
- parameter="buy land" />
- <menu_item_call.on_enable
- function="World.EnableBuyLand" />
- </menu_item_call>
- </menu>
+ </menu_item_call>
<menu_item_call
label="Buy L$"
layout="topleft"
@@ -113,15 +76,13 @@
function="ShowFloater"
parameter="gestures" />
</menu_item_call>
- <menu_item_separator
- layout="topleft" />
<menu
- label="Status"
+ label="My Status"
layout="topleft"
name="Status"
tear_off="true">
<menu_item_call
- label="Set Away"
+ label="Away"
layout="topleft"
name="Set Away">
<menu_item_call.on_click
@@ -130,7 +91,7 @@
<menu_item_separator
layout="topleft"/>
<menu_item_call
- label="Set Busy"
+ label="Busy"
layout="topleft"
name="Set Busy">
<menu_item_call.on_click
@@ -183,7 +144,7 @@
function="World.Chat" />
</menu_item_call-->
<menu_item_check
- label="Local Chat"
+ label="Nearby Chat"
layout="topleft"
name="Nearby Chat"
shortcut="control|H">
@@ -246,32 +207,32 @@
layout="topleft"
name="World"
tear_off="true">
- <menu_item_check
- label="Camera Controls"
+ <menu_item_check
+ label="Move"
layout="topleft"
- name="Camera Controls">
+ name="Movement Controls">
<menu_item_check.on_check
function="Floater.Visible"
- parameter="camera" />
+ parameter="moveview" />
<menu_item_check.on_click
function="Floater.Toggle"
- parameter="camera" />
+ parameter="moveview" />
</menu_item_check>
<menu_item_check
- label="Movement Controls"
+ label="View"
layout="topleft"
- name="Movement Controls">
+ name="Camera Controls">
<menu_item_check.on_check
function="Floater.Visible"
- parameter="moveview" />
+ parameter="camera" />
<menu_item_check.on_click
function="Floater.Toggle"
- parameter="moveview" />
+ parameter="camera" />
</menu_item_check>
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Place Information"
+ label="Place Profile"
layout="topleft"
name="About Land">
<menu_item_call.on_click
@@ -286,14 +247,32 @@
function="Floater.Show"
parameter="region_info" />
</menu_item_call>
+ <menu_item_call
+ label="Buy Land"
+ layout="topleft"
+ name="Buy Land">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="buy land" />
+ <menu_item_call.on_enable
+ function="World.EnableBuyLand" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Land"
+ layout="topleft"
+ name="My Land">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="land_holdings" />
+ </menu_item_call>
<menu
create_jump_keys="true"
- label="Land Options"
+ label="Show"
layout="topleft"
name="Land"
tear_off="true">
<menu_item_check
- label="Show Property Lines"
+ label="Property Lines"
layout="topleft"
name="Property Lines"
shortcut="control|alt|shift|P">
@@ -304,7 +283,7 @@
parameter="ShowPropertyLines" />
</menu_item_check>
<menu_item_check
- label="Show Land Owners"
+ label="Land Owners"
layout="topleft"
name="Land Owners">
<menu_item_check.on_check
@@ -314,7 +293,7 @@
parameter="ShowParcelOwners" />
</menu_item_check>
<menu_item_check
- label="Show Ban Lines"
+ label="Ban Lines"
layout="topleft"
name="Ban Lines">
<menu_item_check.on_check
@@ -360,19 +339,7 @@
function="World.EnableTeleportHome" />
</menu_item_call>
</menu>
- <menu_item_check
- label="World Map"
- layout="topleft"
- name="World Map"
- shortcut="control|M">
- <menu_item_check.on_check
- function="Floater.Visible"
- parameter="world_map" />
- <menu_item_check.on_click
- function="Floater.Toggle"
- parameter="world_map" />
- </menu_item_check>
- <menu_item_check
+ <menu_item_check
label="Mini-Map"
layout="topleft"
name="Mini-Map"
@@ -384,34 +351,45 @@
function="Floater.Toggle"
parameter="mini_map" />
</menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
+ <menu_item_check
+ label="World Map"
+ layout="topleft"
+ name="World Map"
+ shortcut="control|M"
+ use_mac_ctrl="true">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="world_map" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="world_map" />
+ </menu_item_check>
+ <!-- <menu_item_check
label="Show Navigation Bar"
layout="topleft"
name="ShowNavbarNavigationPanel">
<menu_item_check.on_click
function="ToggleControl"
- parameter="ShowNavbarNavigationPanel" />
+ parameter="ShowNavbarNavigationPanel" />
<menu_item_check.on_check
function="CheckControl"
parameter="ShowNavbarNavigationPanel" />
- </menu_item_check>
- <menu_item_check
+ </menu_item_check>
+ <menu_item_check
label="Show Favorites Bar"
layout="topleft"
name="ShowNavbarFavoritesPanel">
<menu_item_check.on_click
function="ToggleControl"
- parameter="ShowNavbarFavoritesPanel" />
+ parameter="ShowNavbarFavoritesPanel" />
<menu_item_check.on_check
function="CheckControl"
parameter="ShowNavbarFavoritesPanel" />
- </menu_item_check>
+ </menu_item_check>
<menu_item_separator
- layout="topleft" />
+ layout="topleft" />-->
<menu_item_call
- label="Take Snapshot"
+ label="Snapshot"
layout="topleft"
name="Take Snapshot"
shortcut="control|shift|S">
@@ -419,11 +397,9 @@
function="Floater.Show"
parameter="snapshot" />
</menu_item_call>
- <menu_item_separator
- layout="topleft" />
<menu
create_jump_keys="true"
- label="Sun Settings"
+ label="Sun"
layout="topleft"
name="Environment Settings"
tear_off="true">
@@ -462,7 +438,7 @@
parameter="midnight" />
</menu_item_call>
<menu_item_call
- label="Use region settings"
+ label="Use the Estate Time"
layout="topleft"
name="Revert to Region Default">
<menu_item_call.on_click
@@ -489,7 +465,7 @@
tear_off="true"
visible="true">
<menu_item_check
- label="Show Build Tools"
+ label="Build"
layout="topleft"
name="Show Build Tools"
shortcut="control|B">
@@ -825,12 +801,23 @@
function="Tools.EnableToolNotPie" />
</menu_item_check>
<menu_item_call
- label="Set Default Permissions"
+ label="Set Default Upload Permissions"
layout="topleft"
name="perm prefs">
<menu_item_call.on_click
function="Floater.Toggle"
parameter="perm_prefs" />
+ <menu_item_check
+ label="Show Advanced Permissions"
+ layout="topleft"
+ name="DebugPermissions">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugPermissions" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugPermissions" />
+ </menu_item_check>
</menu_item_call>
<!--menu_item_call
label="Show Script Warning/Error Window"
@@ -995,6 +982,57 @@
</menu_item_check>
</menu>
</menu>
+ <menu
+ create_jump_keys="true"
+ label="Select Linked Parts"
+ layout="topleft"
+ name="Select Linked Parts"
+ tear_off="true">
+ <menu_item_call
+ label="Select Next Part"
+ layout="topleft"
+ name="Select Next Part"
+ shortcut="control|.">
+ <menu_item_call.on_click
+ function="Tools.SelectNextPart"
+ parameter="next" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSelectNextPart" />
+ </menu_item_call>
+ <menu_item_call
+ label="Select Previous Part"
+ layout="topleft"
+ name="Select Previous Part"
+ shortcut="control|,">
+ <menu_item_call.on_click
+ function="Tools.SelectNextPart"
+ parameter="previous" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSelectNextPart" />
+ </menu_item_call>
+ <menu_item_call
+ label="Include Next Part"
+ layout="topleft"
+ name="Include Next Part"
+ shortcut="control|shift|.">
+ <menu_item_call.on_click
+ function="Tools.SelectNextPart"
+ parameter="includenext" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSelectNextPart" />
+ </menu_item_call>
+ <menu_item_call
+ label="Include Previous Part"
+ layout="topleft"
+ name="Include Previous Part"
+ shortcut="control|shift|,">
+ <menu_item_call.on_click
+ function="Tools.SelectNextPart"
+ parameter="includeprevious" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSelectNextPart" />
+ </menu_item_call>
+ </menu>
</menu>
<menu
label="Help"
@@ -1018,19 +1056,10 @@
function="Floater.Show"
parameter="hud" />
</menu_item_call>
- <menu_item_check
- label="Show Quick Tips"
- layout="topleft"
- name="Show Quick Tips">
- <menu_item_check.on_check
- function="Help.CheckShowFirstTimeTip" />
- <menu_item_check.on_click
- function="Help.ShowQuickTips" />
- </menu_item_check>
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Report Abuse..."
+ label="Report Abuse"
layout="topleft"
name="Report Abuse">
<menu_item_call.on_click
@@ -1054,233 +1083,8 @@
name="Advanced"
tear_off="true"
visible="false">
- <menu
- label="Shortcuts"
- layout="topleft"
- name="Shortcuts"
- tear_off="true"
- visible="false">
- <menu_item_check
- label="Search"
- layout="topleft"
- name="Search"
- shortcut="control|F">
- <menu_item_check.on_check
- function="Floater.Visible"
- parameter="search" />
- <menu_item_check.on_click
- function="Floater.Toggle"
- parameter="search" />
- </menu_item_check>
- <menu_item_call
- enabled="false"
- label="Release Keys"
- layout="topleft"
- name="Release Keys">
- <menu_item_call.on_click
- function="Tools.ReleaseKeys"
- parameter="" />
- <menu_item_call.on_enable
- function="Tools.EnableReleaseKeys"
- parameter="" />
- </menu_item_call>
- <menu_item_call
- label="Set UI Size to Default"
- layout="topleft"
- name="Set UI Size to Default">
- <menu_item_call.on_click
- function="View.DefaultUISize" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
- label="Always Run"
- layout="topleft"
- name="Always Run"
- shortcut="control|R">
- <menu_item_check.on_check
- function="World.CheckAlwaysRun" />
- <menu_item_check.on_click
- function="World.AlwaysRun" />
- </menu_item_check>
- <menu_item_check
- label="Fly"
- layout="topleft"
- name="Fly"
- shortcut="Home">
- <menu_item_check.on_click
- function="Agent.toggleFlying" />
- <menu_item_check.on_enable
- function="Agent.enableFlying" />
- </menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Close Window"
- layout="topleft"
- name="Close Window"
- shortcut="control|W">
- <menu_item_call.on_click
- function="File.CloseWindow" />
- <menu_item_call.on_enable
- function="File.EnableCloseWindow" />
- </menu_item_call>
- <menu_item_call
- label="Close All Windows"
- layout="topleft"
- name="Close All Windows"
- shortcut="control|shift|W">
- <menu_item_call.on_click
- function="File.CloseAllWindows" />
- <menu_item_call.on_enable
- function="File.EnableCloseAllWindows" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Snapshot to Disk"
- layout="topleft"
- name="Snapshot to Disk"
- shortcut="control|`"
- use_mac_ctrl="true">
- <menu_item_call.on_click
- function="File.TakeSnapshotToDisk" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Mouselook"
- layout="topleft"
- name="Mouselook"
- shortcut="M">
- <menu_item_call.on_click
- function="View.Mouselook" />
- <menu_item_call.on_enable
- function="View.EnableMouselook" />
- </menu_item_call>
- <menu_item_check
- label="Joystick Flycam"
- layout="topleft"
- name="Joystick Flycam"
- shortcut="alt|shift|F">
- <menu_item_check.on_check
- function="View.CheckJoystickFlycam" />
- <menu_item_check.on_click
- function="View.JoystickFlycam" />
- <menu_item_check.on_enable
- function="View.EnableJoystickFlycam" />
- </menu_item_check>
- <menu_item_call
- label="Reset View"
- layout="topleft"
- name="Reset View"
- shortcut="Esc">
- <menu_item_call.on_click
- function="View.ResetView" />
- </menu_item_call>
- <menu_item_call
- label="Look at Last Chatter"
- layout="topleft"
- name="Look at Last Chatter"
- shortcut="control|\">
- <menu_item_call.on_click
- function="View.LookAtLastChatter" />
- <menu_item_call.on_enable
- function="View.EnableLastChatter" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu
- create_jump_keys="true"
- label="Select Tool"
- layout="topleft"
- name="Select Tool"
- tear_off="true">
- <menu_item_call
- label="Focus"
- layout="topleft"
- name="Focus"
- shortcut="control|1">
- <menu_item_call.on_click
- function="Tools.SelectTool"
- parameter="focus" />
- </menu_item_call>
- <menu_item_call
- label="Move"
- layout="topleft"
- name="Move"
- shortcut="control|2">
- <menu_item_call.on_click
- function="Tools.SelectTool"
- parameter="move" />
- </menu_item_call>
- <menu_item_call
- label="Edit"
- layout="topleft"
- name="Edit"
- shortcut="control|3">
- <menu_item_call.on_click
- function="Tools.SelectTool"
- parameter="edit" />
- </menu_item_call>
- <menu_item_call
- label="Create"
- layout="topleft"
- name="Create"
- shortcut="control|4">
- <menu_item_call.on_click
- function="Tools.SelectTool"
- parameter="create" />
- </menu_item_call>
- <menu_item_call
- label="Land"
- layout="topleft"
- name="Land"
- shortcut="control|5">
- <menu_item_call.on_click
- function="Tools.SelectTool"
- parameter="land" />
- </menu_item_call>
- </menu>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Zoom In"
- layout="topleft"
- name="Zoom In"
- shortcut="control|0">
- <menu_item_call.on_click
- function="View.ZoomIn" />
- </menu_item_call>
- <menu_item_call
- label="Zoom Default"
- layout="topleft"
- name="Zoom Default"
- shortcut="control|9">
- <menu_item_call.on_click
- function="View.ZoomDefault" />
- </menu_item_call>
- <menu_item_call
- label="Zoom Out"
- layout="topleft"
- name="Zoom Out"
- shortcut="control|8">
- <menu_item_call.on_click
- function="View.ZoomOut" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Toggle Fullscreen"
- layout="topleft"
- name="Toggle Fullscreen"
- shortcut="alt|Enter">
- <menu_item_call.on_click
- function="View.Fullscreen" />
- </menu_item_call>
- </menu>
<menu_item_check
- label="Go Away/AFK When Idle"
+ label="Set Away After 30 Minutes"
layout="topleft"
name="Go Away/AFK When Idle">
<menu_item_check.on_check
@@ -1291,14 +1095,14 @@
parameter="AllowIdleAFK" />
</menu_item_check>
<menu_item_call
- label="Stop Animating My Avatar"
+ label="Stop Animating Me"
layout="topleft"
name="Stop Animating My Avatar">
<menu_item_call.on_click
function="Tools.StopAllAnimations" />
</menu_item_call>
<menu_item_call
- label="Rebake Texture"
+ label="Rebake Textures"
layout="topleft"
name="Rebake Texture"
shortcut="control|alt|R">
@@ -1363,7 +1167,7 @@
parameter="CompressSnapshotsToDisk" />
</menu_item_check>
<menu_item_call
- label="Save Texture As..."
+ label="Save Texture As"
layout="topleft"
name="Save Texture As">
<menu_item_call.on_click
@@ -1399,6 +1203,17 @@
function="Floater.Toggle"
parameter="stats" />
</menu_item_check>
+ <menu_item_check
+ label="Show Avatar Rendering Cost"
+ layout="topleft"
+ name="Avatar Rendering Cost">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="shame" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="shame" />
+ </menu_item_check>
</menu>
<menu
create_jump_keys="true"
@@ -1407,16 +1222,6 @@
name="Highlighting and Visibility"
tear_off="true">
<menu_item_check
- label="Highlight Transparent"
- layout="topleft"
- name="Highlight Transparent"
- shortcut="control|alt|T">
- <menu_item_check.on_check
- function="View.CheckHighlightTransparent" />
- <menu_item_check.on_click
- function="View.HighlightTransparent" />
- </menu_item_check>
- <menu_item_check
label="Hide Particles"
layout="topleft"
name="Hide Particles"
@@ -1429,16 +1234,6 @@
parameter="hideparticles" />
</menu_item_check>
<menu_item_check
- label="Show HUD Attachments"
- layout="topleft"
- name="Show HUD Attachments"
- shortcut="alt|shift|H">
- <menu_item_check.on_check
- function="View.CheckHUDAttachments" />
- <menu_item_check.on_click
- function="View.ShowHUDAttachments" />
- </menu_item_check>
- <menu_item_check
label="Hide Selected"
layout="topleft"
name="Hide Selected">
@@ -1450,6 +1245,26 @@
parameter="HideSelectedObjects" />
</menu_item_check>
<menu_item_check
+ label="Highlight Transparent"
+ layout="topleft"
+ name="Highlight Transparent"
+ shortcut="control|alt|T">
+ <menu_item_check.on_check
+ function="View.CheckHighlightTransparent" />
+ <menu_item_check.on_click
+ function="View.HighlightTransparent" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show HUD Attachments"
+ layout="topleft"
+ name="Show HUD Attachments"
+ shortcut="alt|shift|H">
+ <menu_item_check.on_check
+ function="View.CheckHUDAttachments" />
+ <menu_item_check.on_click
+ function="View.ShowHUDAttachments" />
+ </menu_item_check>
+ <menu_item_check
label="Show Mouselook Crosshairs"
layout="topleft"
name="ShowCrosshairs">
@@ -1460,8 +1275,7 @@
function="ToggleControl"
parameter="ShowCrosshairs" />
</menu_item_check>
- </menu>
- <menu
+ <!-- <menu
create_jump_keys="true"
label="Hover Tips"
layout="topleft"
@@ -1478,9 +1292,9 @@
function="View.ShowHoverTips" />
</menu_item_check>
<menu_item_separator
- layout="topleft" />
+ layout="topleft" />-->
<menu_item_check
- label="Land Tips"
+ label="Show Land Tooltips"
layout="topleft"
name="Land Tips">
<menu_item_check.on_check
@@ -1491,8 +1305,8 @@
<menu_item_check.on_enable
function="View.CheckShowHoverTips" />
</menu_item_check>
- <menu_item_check
- label="Tips On All Objects"
+ <!-- <menu_item_check
+ label="Show Tips On All Objects"
layout="topleft"
name="Tips On All Objects">
<menu_item_check.on_check
@@ -1503,33 +1317,10 @@
<menu_item_check.on_enable
function="View.CheckShowHoverTips" />
</menu_item_check>
+ </menu>-->
+
</menu>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
- label="Run Multiple Threads"
- layout="topleft"
- name="Run Multiple Threads">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="RunMultipleThreads" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="RunMultipleThreads" />
- </menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
- label="Avatar Rendering Cost"
- layout="topleft"
- name="Avatar Rendering Cost">
- <menu_item_check.on_check
- function="Advanced.CheckInfoDisplay"
- parameter="shame" />
- <menu_item_check.on_click
- function="Advanced.ToggleInfoDisplay"
- parameter="shame" />
- </menu_item_check>
+
<menu
create_jump_keys="true"
label="Rendering Types"
@@ -1573,7 +1364,7 @@
parameter="tree" />
</menu_item_check>
<menu_item_check
- label="Character"
+ label="Avatars"
layout="topleft"
name="Character"
shortcut="control|alt|shift|4">
@@ -1796,66 +1587,17 @@
parameter="flexible" />
</menu_item_check>
</menu>
- <menu_item_separator
- layout="topleft" />
- <menu
- create_jump_keys="true"
- label="Recorder"
- layout="topleft"
- name="Recorder"
- tear_off="true">
- <menu_item_call
- label="Start Playback"
- layout="topleft"
- name="Start Playback">
- <menu_item_call.on_click
- function="Advanced.AgentPilot"
- parameter="start playback" />
- </menu_item_call>
- <menu_item_call
- label="Stop Playback"
- layout="topleft"
- name="Stop Playback">
- <menu_item_call.on_click
- function="Advanced.AgentPilot"
- parameter="stop playback" />
- </menu_item_call>
- <menu_item_check
- label="Loop Playback"
- layout="topleft"
- name="Loop Playback">
- <menu_item_check.on_check
- function="Advanced.CheckAgentPilotLoop"
- parameter="loopPlayback" />
- <menu_item_check.on_click
- function="Advanced.ToggleAgentPilotLoop" />
- </menu_item_check>
- <menu_item_call
- label="Start Record"
- layout="topleft"
- name="Start Record">
- <menu_item_call.on_click
- function="Advanced.AgentPilot"
- parameter="start record" />
- </menu_item_call>
- <menu_item_call
- label="Stop Record"
- layout="topleft"
- name="Stop Record">
- <menu_item_call.on_click
- function="Advanced.AgentPilot"
- parameter="stop record" />
- </menu_item_call>
- </menu>
- <menu_item_call
- label="Dump Scripted Camera"
+ <menu_item_check
+ label="Run Multiple Threads"
layout="topleft"
- name="Dump Scripted Camera">
- <menu_item_call.on_click
- function="Advanced.DumpScriptedCamera" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
+ name="Run Multiple Threads">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RunMultipleThreads" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RunMultipleThreads" />
+ </menu_item_check>
<menu_item_call
label="Clear Group Cache"
layout="topleft"
@@ -1863,7 +1605,7 @@
<menu_item_call.on_click
function="Advanced.ClearGroupCache"
parameter="ClearGroupCache" />
- </menu_item_call>
+ </menu_item_call>
<menu_item_check
label="Mouse Smoothing"
layout="topleft"
@@ -1878,7 +1620,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Debug Settings editor"
+ label="Show Debug Settings"
layout="topleft"
name="Debug Settings">
<menu_item_call.on_click
@@ -1886,7 +1628,7 @@
parameter="all" />
</menu_item_call>
<menu_item_check
- label="Activate Debug Mode (QA)"
+ label="Show Develop Menu"
layout="topleft"
name="Debug Mode"
shortcut="control|alt|Q">
@@ -1900,9 +1642,9 @@
</menu>
<menu
create_jump_keys="true"
- label="Debug"
+ label="Develop"
layout="topleft"
- name="Debug"
+ name="Develop"
tear_off="true"
visible="false">
<menu
@@ -1915,7 +1657,8 @@
label="Texture Console"
layout="topleft"
name="Texture Console"
- shortcut="control|shift|3">
+ shortcut="control|shift|3"
+ use_mac_ctrl="true">
<menu_item_check.on_check
function="Advanced.CheckConsole"
parameter="texture" />
@@ -1927,7 +1670,8 @@
label="Debug Console"
layout="topleft"
name="Debug Console"
- shortcut="control|shift|4">
+ shortcut="control|shift|4"
+ use_mac_ctrl="true">
<menu_item_check.on_check
function="Advanced.CheckConsole"
parameter="debug" />
@@ -1939,7 +1683,8 @@
label="Fast Timers"
layout="topleft"
name="Fast Timers"
- shortcut="control|shift|9">
+ shortcut="control|shift|9"
+ use_mac_ctrl="true">
<menu_item_check.on_check
function="Advanced.CheckConsole"
parameter="fast timers" />
@@ -1951,7 +1696,8 @@
label="Memory"
layout="topleft"
name="Memory"
- shortcut="control|shift|0">
+ shortcut="control|shift|0"
+ use_mac_ctrl="true">
<menu_item_check.on_check
function="Advanced.CheckConsole"
parameter="memory view" />
@@ -1963,7 +1709,8 @@
label="Notifications Console"
layout="topleft"
name="Notifications"
- shortcut="control|shift|5">
+ shortcut="control|shift|5"
+ use_mac_ctrl="true">
<menu_item_check.on_check
function="Advanced.CheckConsole"
parameter="notifications" />
@@ -1997,6 +1744,41 @@
function="Advanced.DumpInfoToConsole"
parameter="capabilities" />
</menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Camera"
+ layout="topleft"
+ name="Camera">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="camera" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="camera" />
+ </menu_item_check>
+ <menu_item_check
+ label="Wind"
+ layout="topleft"
+ name="Wind">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="wind" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="wind" />
+ </menu_item_check>
+ <menu_item_check
+ label="FOV"
+ layout="topleft"
+ name="FOV">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="fov" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="fov" />
+ </menu_item_check>
</menu>
<menu
create_jump_keys="true"
@@ -2051,7 +1833,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_check
- label="Show Updates to objects"
+ label="Show Updates to Objects"
layout="topleft"
name="Show Updates"
shortcut="control|alt|shift|U">
@@ -2317,184 +2099,6 @@
parameter="raycast" />
</menu_item_check>
</menu>
- <menu_item_separator
- layout="topleft" />
- <menu
- create_jump_keys="true"
- label="Network"
- layout="topleft"
- name="Network"
- tear_off="true">
- <menu_item_check
- label="Pause Agent"
- layout="topleft"
- name="AgentPause">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="AgentPause" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="AgentPause" />
- </menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Enable Message Log"
- layout="topleft"
- name="Enable Message Log">
- <menu_item_call.on_click
- function="Advanced.EnableMessageLog" />
- </menu_item_call>
- <menu_item_call
- label="Disable Message Log"
- layout="topleft"
- name="Disable Message Log">
- <menu_item_call.on_click
- function="Advanced.DisableMessageLog" />
- </menu_item_call>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
- label="Velocity Interpolate Objects"
- layout="topleft"
- name="Velocity Interpolate Objects">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="VelocityInterpolate" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="VelocityInterpolate" />
- </menu_item_check>
- <menu_item_check
- label="Ping Interpolate Object Positions"
- layout="topleft"
- name="Ping Interpolate Object Positions">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="PingInterpolate" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="PingInterpolate" />
- </menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Drop a Packet"
- layout="topleft"
- name="Drop a Packet"
- shortcut="control|alt|L">
- <menu_item_call.on_click
- function="Advanced.DropPacket" />
- </menu_item_call>
- </menu>
- <menu_item_separator
- layout="topleft" />
- <menu_item_call
- label="Bumps, Pushes &amp; Hits..."
- layout="topleft"
- name="Bumps, Pushes &amp;amp; Hits">
- <menu_item_call.on_click
- function="Floater.Show"
- parameter="bumps" />
- </menu_item_call>
- <menu_item_check
- label="Output Debug Minidump"
- layout="topleft"
- name="Output Debug Minidump">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="SaveMinidump" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="SaveMinidump" />
- </menu_item_check>
- <menu_item_check
- label="Debug Permissions in Build Tool"
- layout="topleft"
- name="DebugPermissions">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="DebugPermissions" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="DebugPermissions" />
- </menu_item_check>
- <menu_item_separator
- layout="topleft" />
- <menu_item_check
- label="View Admin Options"
- layout="topleft"
- name="View Admin Options">
- <menu_item_check.on_check
- function="Advanced.CheckViewAdminOptions"
- parameter="ViewAdminOptions" />
- <menu_item_check.on_click
- function="Advanced.ToggleViewAdminOptions" />
- </menu_item_check>
- <menu_item_call
- label="Request Admin Status"
- layout="topleft"
- name="Request Admin Options"
- shortcut="control|alt|G">
- <menu_item_call.on_click
- function="Advanced.RequestAdminStatus" />
- </menu_item_call>
- <menu_item_call
- label="Deactivate Admin Status"
- layout="topleft"
- name="Leave Admin Options"
- shortcut="control|alt|shift|G">
- <menu_item_call.on_click
- function="Advanced.LeaveAdminStatus" />
- </menu_item_call>
- </menu>
- <menu
- create_jump_keys="true"
- label="Develop"
- layout="topleft"
- name="Develop"
- tear_off="true"
- visible="false">
- <menu
- create_jump_keys="true"
- label="HUD Info"
- layout="topleft"
- name="HUD Info"
- tear_off="true">
- <menu_item_check
- label="Camera"
- layout="topleft"
- name="Camera">
- <menu_item_check.on_check
- function="Advanced.CheckHUDInfo"
- parameter="camera" />
- <menu_item_check.on_click
- function="Advanced.ToggleHUDInfo"
- parameter="camera" />
- </menu_item_check>
- <menu_item_check
- label="Wind"
- layout="topleft"
- name="Wind">
- <menu_item_check.on_check
- function="Advanced.CheckHUDInfo"
- parameter="wind" />
- <menu_item_check.on_click
- function="Advanced.ToggleHUDInfo"
- parameter="wind" />
- </menu_item_check>
- <menu_item_check
- label="FOV"
- layout="topleft"
- name="FOV">
- <menu_item_check.on_check
- function="Advanced.CheckHUDInfo"
- parameter="fov" />
- <menu_item_check.on_click
- function="Advanced.ToggleHUDInfo"
- parameter="fov" />
- </menu_item_check>
- </menu>
<menu
create_jump_keys="true"
label="Rendering"
@@ -2587,9 +2191,7 @@
<menu_item_check.on_enable
function="Advanced.EnableRenderDeferredGI" />
</menu_item_check>
-
<menu_item_separator />
-
<menu_item_check
label="Debug GL"
name="Debug GL">
@@ -2679,6 +2281,367 @@
parameter="RenderHighlightEnable" />
</menu_item_check>
</menu>
+
+ <menu
+ create_jump_keys="true"
+ label="Network"
+ layout="topleft"
+ name="Network"
+ tear_off="true">
+ <menu_item_check
+ label="Pause Agent"
+ layout="topleft"
+ name="AgentPause">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="AgentPause" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="AgentPause" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Enable Message Log"
+ layout="topleft"
+ name="Enable Message Log">
+ <menu_item_call.on_click
+ function="Advanced.EnableMessageLog" />
+ </menu_item_call>
+ <menu_item_call
+ label="Disable Message Log"
+ layout="topleft"
+ name="Disable Message Log">
+ <menu_item_call.on_click
+ function="Advanced.DisableMessageLog" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Velocity Interpolate Objects"
+ layout="topleft"
+ name="Velocity Interpolate Objects">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="VelocityInterpolate" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="VelocityInterpolate" />
+ </menu_item_check>
+ <menu_item_check
+ label="Ping Interpolate Object Positions"
+ layout="topleft"
+ name="Ping Interpolate Object Positions">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="PingInterpolate" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="PingInterpolate" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Drop a Packet"
+ layout="topleft"
+ name="Drop a Packet"
+ shortcut="control|alt|L">
+ <menu_item_call.on_click
+ function="Advanced.DropPacket" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="Dump Scripted Camera"
+ layout="topleft"
+ name="Dump Scripted Camera">
+ <menu_item_call.on_click
+ function="Advanced.DumpScriptedCamera" />
+ </menu_item_call>
+ <menu_item_call
+ label="Bumps, Pushes &amp; Hits"
+ layout="topleft"
+ name="Bumps, Pushes &amp;amp; Hits">
+ <menu_item_call.on_click
+ function="Floater.Show"
+ parameter="bumps" />
+ </menu_item_call>
+
+ <menu
+ create_jump_keys="true"
+ label="Recorder"
+ layout="topleft"
+ name="Recorder"
+ tear_off="true">
+ <menu_item_call
+ label="Start Playback"
+ layout="topleft"
+ name="Start Playback">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="start playback" />
+ </menu_item_call>
+ <menu_item_call
+ label="Stop Playback"
+ layout="topleft"
+ name="Stop Playback">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="stop playback" />
+ </menu_item_call>
+ <menu_item_check
+ label="Loop Playback"
+ layout="topleft"
+ name="Loop Playback">
+ <menu_item_check.on_check
+ function="Advanced.CheckAgentPilotLoop"
+ parameter="loopPlayback" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleAgentPilotLoop" />
+ </menu_item_check>
+ <menu_item_call
+ label="Start Record"
+ layout="topleft"
+ name="Start Record">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="start record" />
+ </menu_item_call>
+ <menu_item_call
+ label="Stop Record"
+ layout="topleft"
+ name="Stop Record">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="stop record" />
+ </menu_item_call>
+ </menu>
+ <menu
+ label="Shortcuts"
+ layout="topleft"
+ name="Shortcuts"
+ tear_off="true"
+ visible="false">
+ <menu_item_check
+ label="Search"
+ layout="topleft"
+ name="Search"
+ shortcut="control|F">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="search" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="search" />
+ </menu_item_check>
+ <menu_item_call
+ enabled="false"
+ label="Release Keys"
+ layout="topleft"
+ name="Release Keys">
+ <menu_item_call.on_click
+ function="Tools.ReleaseKeys"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Tools.EnableReleaseKeys"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set UI Size to Default"
+ layout="topleft"
+ name="Set UI Size to Default">
+ <menu_item_call.on_click
+ function="View.DefaultUISize" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Always Run"
+ layout="topleft"
+ name="Always Run"
+ shortcut="control|R">
+ <menu_item_check.on_check
+ function="World.CheckAlwaysRun" />
+ <menu_item_check.on_click
+ function="World.AlwaysRun" />
+ </menu_item_check>
+ <menu_item_check
+ label="Fly"
+ layout="topleft"
+ name="Fly"
+ shortcut="Home">
+ <menu_item_check.on_click
+ function="Agent.toggleFlying" />
+ <menu_item_check.on_enable
+ function="Agent.enableFlying" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Close Window"
+ layout="topleft"
+ name="Close Window"
+ shortcut="control|W">
+ <menu_item_call.on_click
+ function="File.CloseWindow" />
+ <menu_item_call.on_enable
+ function="File.EnableCloseWindow" />
+ </menu_item_call>
+ <menu_item_call
+ label="Close All Windows"
+ layout="topleft"
+ name="Close All Windows"
+ shortcut="control|shift|W">
+ <menu_item_call.on_click
+ function="File.CloseAllWindows" />
+ <menu_item_call.on_enable
+ function="File.EnableCloseAllWindows" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Snapshot to Disk"
+ layout="topleft"
+ name="Snapshot to Disk"
+ shortcut="control|`"
+ use_mac_ctrl="true">
+ <menu_item_call.on_click
+ function="File.TakeSnapshotToDisk" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Mouselook"
+ layout="topleft"
+ name="Mouselook"
+ shortcut="M">
+ <menu_item_call.on_click
+ function="View.Mouselook" />
+ <menu_item_call.on_enable
+ function="View.EnableMouselook" />
+ </menu_item_call>
+ <menu_item_check
+ label="Joystick Flycam"
+ layout="topleft"
+ name="Joystick Flycam"
+ shortcut="alt|shift|F">
+ <menu_item_check.on_check
+ function="View.CheckJoystickFlycam" />
+ <menu_item_check.on_click
+ function="View.JoystickFlycam" />
+ <menu_item_check.on_enable
+ function="View.EnableJoystickFlycam" />
+ </menu_item_check>
+ <menu_item_call
+ label="Reset View"
+ layout="topleft"
+ name="Reset View"
+ shortcut="Esc">
+ <menu_item_call.on_click
+ function="View.ResetView" />
+ </menu_item_call>
+ <menu_item_call
+ label="Look at Last Chatter"
+ layout="topleft"
+ name="Look at Last Chatter"
+ shortcut="control|\">
+ <menu_item_call.on_click
+ function="View.LookAtLastChatter" />
+ <menu_item_call.on_enable
+ function="View.EnableLastChatter" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Select Build Tool"
+ layout="topleft"
+ name="Select Tool"
+ tear_off="true">
+ <menu_item_call
+ label="Focus Tool"
+ layout="topleft"
+ name="Focus"
+ shortcut="control|1">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="focus" />
+ </menu_item_call>
+ <menu_item_call
+ label="Move Tool"
+ layout="topleft"
+ name="Move"
+ shortcut="control|2">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="move" />
+ </menu_item_call>
+ <menu_item_call
+ label="Edit Tool"
+ layout="topleft"
+ name="Edit"
+ shortcut="control|3">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="edit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Create Tool"
+ layout="topleft"
+ name="Create"
+ shortcut="control|4">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="create" />
+ </menu_item_call>
+ <menu_item_call
+ label="Land Tool"
+ layout="topleft"
+ name="Land"
+ shortcut="control|5">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="land" />
+ </menu_item_call>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Zoom In"
+ layout="topleft"
+ name="Zoom In"
+ shortcut="control|0">
+ <menu_item_call.on_click
+ function="View.ZoomIn" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Default"
+ layout="topleft"
+ name="Zoom Default"
+ shortcut="control|9">
+ <menu_item_call.on_click
+ function="View.ZoomDefault" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Out"
+ layout="topleft"
+ name="Zoom Out"
+ shortcut="control|8">
+ <menu_item_call.on_click
+ function="View.ZoomOut" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Toggle Fullscreen"
+ layout="topleft"
+ name="Toggle Fullscreen"
+ >
+ <!-- Note: shortcut="alt|Enter" was deleted from the preceding node-->
+ <menu_item_call.on_click
+ function="View.Fullscreen" />
+ </menu_item_call>
+ </menu>
+
<menu
create_jump_keys="true"
label="World"
@@ -2732,7 +2695,7 @@
layout="topleft"
name="UI"
tear_off="true">
- <menu_item_check
+ <!-- <menu_item_check
label="New Bottom Bar"
layout="topleft"
name="New Bottom Bar">
@@ -2742,21 +2705,14 @@
<menu_item_check.on_click
function="ToggleControl"
parameter="BottomPanelNew" />
- </menu_item_check>
+ </menu_item_check>-->
<menu_item_call
label="Web Browser Test"
layout="topleft"
name="Web Browser Test">
<menu_item_call.on_click
- function="Advanced.WebBrowserTest" />
- </menu_item_call>
- <menu_item_call
- label="UI/Color Settings"
- layout="topleft"
- name="UI/Color Settings">
- <menu_item_call.on_click
- function="Advanced.ShowDebugSettings"
- parameter="skin" />
+ function="Advanced.WebBrowserTest"
+ parameter="http://secondlife.com/app/search/slurls.html"/>
</menu_item_call>
<menu_item_call
label="Dump SelectMgr"
@@ -2773,6 +2729,12 @@
function="Advanced.DumpInventory" />
</menu_item_call>
<menu_item_call
+ label="Dump Timers"
+ name="Dump Timers">
+ <menu_item_call.on_click
+ function="Advanced.DumpTimers" />
+ </menu_item_call>
+ <menu_item_call
label="Dump Focus Holder"
layout="topleft"
name="Dump Focus Holder"
@@ -2815,8 +2777,8 @@
function="ToggleControl"
parameter="DoubleClickAutoPilot" />
</menu_item_check>
- <menu_item_separator
- layout="topleft" />
+
+ <menu_item_separator />
<menu_item_check
label="Debug SelectMgr"
layout="topleft"
@@ -2952,7 +2914,7 @@
</menu>
<menu
create_jump_keys="true"
- label="Character"
+ label="Avatar"
layout="topleft"
name="Character"
tear_off="true">
@@ -3226,7 +3188,18 @@
function="Advanced.CompressImage" />
</menu_item_call>
<menu_item_check
- label="Console Window"
+ label="Output Debug Minidump"
+ layout="topleft"
+ name="Output Debug Minidump">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="SaveMinidump" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="SaveMinidump" />
+ </menu_item_check>
+ <menu_item_check
+ label="Console Window on next Run"
layout="topleft"
name="Console Window">
<menu_item_check.on_check
@@ -3236,6 +3209,34 @@
function="ToggleControl"
parameter="ShowConsoleWindow" />
</menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Show Admin Menu"
+ layout="topleft"
+ name="View Admin Options">
+ <menu_item_check.on_check
+ function="Advanced.CheckViewAdminOptions"
+ parameter="ViewAdminOptions" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleViewAdminOptions" />
+ </menu_item_check>
+ <menu_item_call
+ label="Request Admin Status"
+ layout="topleft"
+ name="Request Admin Options"
+ shortcut="control|alt|G">
+ <menu_item_call.on_click
+ function="Advanced.RequestAdminStatus" />
+ </menu_item_call>
+ <menu_item_call
+ label="Leave Admin Status"
+ layout="topleft"
+ name="Leave Admin Options"
+ shortcut="control|alt|shift|G">
+ <menu_item_call.on_click
+ function="Advanced.LeaveAdminStatus" />
+ </menu_item_call>
</menu>
<menu
create_jump_keys="true"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index f141a909a8..95dd8677b4 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -485,6 +485,20 @@ You do not have enough L$ to join this group.
<notification
icon="alertmodal.tga"
+ name="CreateGroupCost"
+ type="alertmodal">
+Creating this group will cost L$100.
+Groups need more than one member, or they are deleted forever.
+Please invite members within 48 hours.
+ <usetemplate
+ canceltext="Cancel"
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Create group for L$100"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="LandBuyPass"
type="alertmodal">
For L$[COST] you can enter this land (&apos;[PARCEL_NAME]&apos;) for [TIME] hours. Buy a pass?
@@ -493,7 +507,7 @@ For L$[COST] you can enter this land (&apos;[PARCEL_NAME]&apos;) for [TIME] hour
notext="Cancel"
yestext="OK"/>
</notification>
-
+
<notification
icon="alertmodal.tga"
name="SalePriceRestriction"
@@ -650,7 +664,7 @@ Scripts must be allowed to run for weapons to work.
icon="alertmodal.tga"
name="MultipleFacesSelected"
type="alertmodal">
- Multiple faces are currently selected.
+Multiple faces are currently selected.
If you continue this action, separate instances of media will be set on multiple faces of the object.
To place the media on only one face, choose Select Texture and click on the desired face of that object then click Add.
<usetemplate
@@ -3468,7 +3482,7 @@ You can click &apos;Change Preference&apos; to raise your maturity Rating prefer
icon="alertmodal.tga"
name="TooManyPrimsSelected"
type="alertmodal">
- "There are too many prims selected. Please select [MAX_PRIM_COUNT] or fewer prims and try again"
+There are too many prims selected. Please select [MAX_PRIM_COUNT] or fewer prims and try again
<usetemplate
name="okbutton"
yestext="OK"/>
@@ -3742,7 +3756,7 @@ Default: Disallow
label="Disable Scripts"
name="HelpRegionDisableScripts"
type="alertmodal">
-When sim performance is poor, a script may be to blame. Open the Statistics Bar (Ctrl-Shift-1). Look at the Simulator Physics FPS.
+When sim performance is poor, a script may be to blame. Open the Statistics Bar (Ctrl+Shift+1). Look at the Simulator Physics FPS.
If it is lower than 45, open the Time panel located at the bottom of the Stats Bar. If Script Time reads 25 ms or higher, click the Get Top Scripts button. You will be given the name and location of scripts that may be causing poor performance.
Checking the Disable Scripts box and then pressing the Apply button will temporarily disable all scripts in this region. You may need to do this in order to travel to the location of a noted &apos;top script&apos;. Once you have arrived at the location, investigate the script to determine if it is causing the problem. You may want to contact the owner of the script or delete or return the object.
@@ -3757,7 +3771,7 @@ Default: off
name="HelpRegionDisableCollisions"
type="alertmodal">
When sim performance is poor, physical objects may be to blame.
-Open the Statistics Bar (Ctrl-Shift-1). Look at the Simulator Physics FPS. If it is lower than 45, open the Time panel located at the bottom of the Stats Bar. If Sim Time (Physics) reads 20 ms or higher, click the Get Top Colliders button.
+Open the Statistics Bar (Ctrl+Shift+1). Look at the Simulator Physics FPS. If it is lower than 45, open the Time panel located at the bottom of the Stats Bar. If Sim Time (Physics) reads 20 ms or higher, click the Get Top Colliders button.
You will be given the name and location of physical objects that may be causing poor performance.
Checking the Disable Collisions box and then pressing the Apply button will temporarily disable object-object collisions. You may need to do this in order to travel to the location of a noted &apos;top collider&apos;. Once you have arrived at the location, investigate the object - is it constantly colliding with other objects? You may want to contact the owner of the object or delete or return the object.
@@ -4418,7 +4432,7 @@ Are you sure you want to delete your travel, web, and search history?
<usetemplate
name="okcancelbuttons"
notext="Cancel"
- yestext="Yes"/>
+ yestext="OK"/>
</notification>
<notification
@@ -5014,347 +5028,349 @@ The string [STRING_NAME] is missing from strings.xml
icon="notifytip.tga"
name="SystemMessageTip"
type="notifytip">
- [MESSAGE]
+[MESSAGE]
</notification>
<notification
icon="notifytip.tga"
name="Cancelled"
type="notifytip">
- Cancelled
+Cancelled
</notification>
<notification
icon="notifytip.tga"
name="CancelledSit"
type="notifytip">
- Cancelled Sit
+Cancelled Sit
</notification>
<notification
icon="notifytip.tga"
name="CancelledAttach"
type="notifytip">
- Cancelled Attach
+Cancelled Attach
</notification>
<notification
icon="notifytip.tga"
name="ReplacedMissingWearable"
type="notifytip">
- Replaced missing clothing/body part with default.
+Replaced missing clothing/body part with default.
</notification>
<notification
icon="groupnotify"
name="GroupNotice"
type="groupnotify">
- Topic: [SUBJECT], Message: [MESSAGE]
+Topic: [SUBJECT], Message: [MESSAGE]
</notification>
<notification
icon="notifytip.tga"
name="FriendOnline"
type="notifytip">
- [FIRST] [LAST] is Online
+[FIRST] [LAST] is Online
</notification>
<notification
icon="notifytip.tga"
name="FriendOffline"
type="notifytip">
- [FIRST] [LAST] is Offline
+[FIRST] [LAST] is Offline
</notification>
<notification
icon="notifytip.tga"
name="AddSelfFriend"
type="notifytip">
- Although you&apos;re very nice, you can&apos;t add yourself as a friend.
+Although you&apos;re very nice, you can&apos;t add yourself as a friend.
</notification>
<notification
icon="notifytip.tga"
name="UploadingAuctionSnapshot"
type="notifytip">
- Uploading in-world and web site snapshots...
- (Takes about 5 minutes.)
+Uploading in-world and web site snapshots...
+(Takes about 5 minutes.)
</notification>
<notification
icon="notify.tga"
name="UploadPayment"
type="notify">
- You paid L$[AMOUNT] to upload.
+You paid L$[AMOUNT] to upload.
</notification>
<notification
icon="notifytip.tga"
name="UploadWebSnapshotDone"
type="notifytip">
- Web site snapshot upload done.
+Web site snapshot upload done.
</notification>
<notification
icon="notifytip.tga"
name="UploadSnapshotDone"
type="notifytip">
- In-world snapshot upload done
+In-world snapshot upload done
</notification>
<notification
icon="notifytip.tga"
name="TerrainDownloaded"
type="notifytip">
- Terrain.raw downloaded
+Terrain.raw downloaded
</notification>
<notification
icon="notifytip.tga"
name="GestureMissing"
type="notifytip">
- Hmm. Gesture [NAME] is missing from the database.
+Hmm. Gesture [NAME] is missing from the database.
</notification>
<notification
icon="notifytip.tga"
name="UnableToLoadGesture"
type="notifytip">
- Unable to load gesture [NAME].
- Please try again.
+Unable to load gesture [NAME].
+Please try again.
</notification>
<notification
icon="notifytip.tga"
name="LandmarkMissing"
type="notifytip">
- Landmark is missing from database.
+Landmark is missing from database.
</notification>
<notification
icon="notifytip.tga"
name="UnableToLoadLandmark"
type="notifytip">
- Unable to load landmark. Please try again.
+Unable to load landmark. Please try again.
</notification>
<notification
icon="notifytip.tga"
name="CapsKeyOn"
type="notifytip">
- Your Caps Lock key is on.
- This might affect your password.
+Your Caps Lock key is on.
+This might affect your password.
</notification>
<notification
icon="notifytip.tga"
name="NotecardMissing"
type="notifytip">
- Notecard is missing from database.
+Notecard is missing from database.
</notification>
<notification
icon="notifytip.tga"
name="NotecardNoPermissions"
type="notifytip">
- You don&apos;t have permission to view this notecard.
+You don&apos;t have permission to view this notecard.
</notification>
<notification
icon="notifytip.tga"
name="RezItemNoPermissions"
type="notifytip">
- Insufficient permissions to rez object.
+Insufficient permissions to rez object.
</notification>
<notification
icon="notifytip.tga"
name="UnableToLoadNotecard"
type="notifytip">
- Unable to load notecard.
- Please try again.
+Unable to load notecard.
+Please try again.
</notification>
<notification
icon="notifytip.tga"
name="ScriptMissing"
type="notifytip">
- Script is missing from database.
+Script is missing from database.
</notification>
<notification
icon="notifytip.tga"
name="ScriptNoPermissions"
type="notifytip">
- Insufficient permissions to view script.
+Insufficient permissions to view script.
</notification>
<notification
icon="notifytip.tga"
name="UnableToLoadScript"
type="notifytip">
- Unable to load script. Please try again.
+Unable to load script. Please try again.
</notification>
<notification
icon="notifytip.tga"
name="IncompleteInventory"
type="notifytip">
- The complete contents you are offering are not yet locally available. Please try offering those items again in a minute.
+The complete contents you are offering are not yet locally available. Please try offering those items again in a minute.
</notification>
<notification
icon="notifytip.tga"
name="CannotModifyProtectedCategories"
type="notifytip">
- You cannot modify protected categories.
+You cannot modify protected categories.
</notification>
<notification
icon="notifytip.tga"
name="CannotRemoveProtectedCategories"
type="notifytip">
- You cannot remove protected categories.
+You cannot remove protected categories.
</notification>
<notification
icon="notifytip.tga"
name="OfferedCard"
type="notifytip">
- You have offered a calling card to [FIRST] [LAST]
+You have offered a calling card to [FIRST] [LAST]
</notification>
<notification
icon="notifytip.tga"
name="UnableToBuyWhileDownloading"
type="notifytip">
- Unable to buy while downloading object data.
- Please try again.
+Unable to buy while downloading object data.
+Please try again.
</notification>
<notification
icon="notifytip.tga"
name="UnableToLinkWhileDownloading"
type="notifytip">
- Unable to link while downloading object data.
- Please try again.
+Unable to link while downloading object data.
+Please try again.
</notification>
<notification
icon="notifytip.tga"
name="CannotBuyObjectsFromDifferentOwners"
type="notifytip">
- You can only buy objects from one owner at a time.
- Please select a single object.
+You can only buy objects from one owner at a time.
+Please select a single object.
</notification>
<notification
icon="notifytip.tga"
name="ObjectNotForSale"
type="notifytip">
- This object is not for sale.
+This object is not for sale.
</notification>
<notification
icon="notifytip.tga"
name="EnteringGodMode"
type="notifytip">
- Entering god mode, level [LEVEL]
+Entering god mode, level [LEVEL]
</notification>
<notification
icon="notifytip.tga"
name="LeavingGodMode"
type="notifytip">
- Now leaving god mode, level [LEVEL]
+Now leaving god mode, level [LEVEL]
</notification>
<notification
icon="notifytip.tga"
name="CopyFailed"
type="notifytip">
- You don&apos;t have permission to copy this.
+You don&apos;t have permission to copy this.
</notification>
<notification
icon="notifytip.tga"
name="InventoryAccepted"
type="notifytip">
- [NAME] accepted your inventory offer.
+[NAME] accepted your inventory offer.
</notification>
<notification
icon="notifytip.tga"
name="InventoryDeclined"
type="notifytip">
- [NAME] declined your inventory offer.
+[NAME] declined your inventory offer.
</notification>
<notification
icon="notifytip.tga"
name="ObjectMessage"
type="notifytip">
- [NAME]: [MESSAGE]
+[NAME]: [MESSAGE]
</notification>
<notification
icon="notifytip.tga"
name="CallingCardAccepted"
type="notifytip">
- Your calling card was accepted.
+Your calling card was accepted.
</notification>
<notification
icon="notifytip.tga"
name="CallingCardDeclined"
type="notifytip">
- Your calling card was declined.
+Your calling card was declined.
</notification>
<notification
icon="notifytip.tga"
name="TeleportToLandmark"
type="notifytip">
- Now that you have reached the mainland, you can teleport to locations like &apos;[NAME]&apos; by clicking on the Inventory button on the bottom right of your screen, and then select the Landmarks folder.
- Double click on the landmark and click on Teleport to travel there.
+You can teleport to locations like &apos;[NAME]&apos; by opening the Places panel on the right side of your screen, and then select the Landmarks tab.
+Click on any landmark to select it, then click &apos;Teleport&apos; at the bottom of the panel.
+(You can also double-click on the landmark, or right-click it and choose &apos;Teleport&apos;.)
</notification>
<notification
icon="notifytip.tga"
name="TeleportToPerson"
type="notifytip">
- Now that you have reached the mainland, you can contact residents like &apos;[NAME]&apos; by clicking on the Inventory button on the bottom right of your screen, and then select the Calling Cards folder.
- Double click on the card, click on Instant Message, and type a message.
+You can contact residents like &apos;[NAME]&apos; by opening the People panel on the right side of your screen.
+Select the resident from the list, then click &apos;IM&apos; at the bottom of the panel.
+(You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
</notification>
<notification
icon="notifytip.tga"
name="CantSelectLandFromMultipleRegions"
type="notifytip">
- Can&apos;t select land across server boundaries.
- Try selecting a smaller piece of land.
+Can&apos;t select land across server boundaries.
+Try selecting a smaller piece of land.
</notification>
<notification
icon="notifytip.tga"
name="SearchWordBanned"
type="notifytip">
- Some terms in your search query were excluded due to content restrictions as clarified in the Community Standards.
+Some terms in your search query were excluded due to content restrictions as clarified in the Community Standards.
</notification>
<notification
icon="notifytip.tga"
name="NoContentToSearch"
type="notifytip">
- Please select at least one type of content to search (PG, Mature, or Adult).
+Please select at least one type of content to search (PG, Mature, or Adult).
</notification>
<notification
icon="notify.tga"
name="GroupVote"
type="notify">
- [NAME] has proposed to vote on:
- [MESSAGE]
+[NAME] has proposed to vote on:
+[MESSAGE]
<form name="form">
<button
index="0"
@@ -5371,17 +5387,17 @@ The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="SystemMessage"
type="notify">
- [MESSAGE]
+[MESSAGE]
</notification>
<notification
icon="notify.tga"
name="EventNotification"
type="notify">
- Event Notification:
+Event Notification:
- [NAME]
- [DATE]
+[NAME]
+[DATE]
<form name="form">
<button
index="0"
@@ -5402,9 +5418,9 @@ The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="TransferObjectsHighlighted"
type="notify">
- All objects on this parcel that will transfer to the purchaser of this parcel are now highlighted.
+All objects on this parcel that will transfer to the purchaser of this parcel are now highlighted.
- * Trees and grasses that will transfer are not highlighted.
+* Trees and grasses that will transfer are not highlighted.
<form name="form">
<button
index="0"
@@ -5417,79 +5433,79 @@ The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="DeactivatedGesturesTrigger"
type="notify">
- Deactivated gestures with same trigger:
- [NAMES]
+Deactivated gestures with same trigger:
+[NAMES]
</notification>
<notification
icon="notify.tga"
name="NoQuickTime"
type="notify">
- Apple&apos;s QuickTime software does not appear to be installed on your system.
- If you want to view streaming media on parcels that support it you should go to the QuickTime site (http://www.apple.com/quicktime) and install the QuickTime Player.
+Apple&apos;s QuickTime software does not appear to be installed on your system.
+If you want to view streaming media on parcels that support it you should go to the QuickTime site (http://www.apple.com/quicktime) and install the QuickTime Player.
</notification>
<notification
icon="notify.tga"
name="NoPlugin"
type="notify">
- No Media Plugin was found to handle the "[MIME_TYPE]" mime type. Media of this type will be unavailable.
+No Media Plugin was found to handle the "[MIME_TYPE]" mime type. Media of this type will be unavailable.
</notification>
<notification
icon="alertmodal.tga"
name="MediaPluginFailed"
type="alertmodal">
- The following Media Plugin has failed:
+The following Media Plugin has failed:
[PLUGIN]
Please re-install the plugin or contact the vendor if you continue to experience problems.
<form name="form">
<ignore name="ignore"
- text="When a Media Plugin fails"/>
+ text="A Media Plugin fails to run"/>
</form>
</notification>
<notification
icon="notify.tga"
name="OwnedObjectsReturned"
type="notify">
- The objects you own on the selected parcel of land have been returned back to your inventory.
+The objects you own on the selected parcel of land have been returned back to your inventory.
</notification>
<notification
icon="notify.tga"
name="OtherObjectsReturned"
type="notify">
- The objects on the selected parcel of land that is owned by [FIRST] [LAST] have been returned to his or her inventory.
+The objects on the selected parcel of land that is owned by [FIRST] [LAST] have been returned to his or her inventory.
</notification>
<notification
icon="notify.tga"
name="OtherObjectsReturned2"
type="notify">
- The objects on the selected parcel of land owned by the resident &apos;[NAME]&apos; have been returned to their owner.
+The objects on the selected parcel of land owned by the resident &apos;[NAME]&apos; have been returned to their owner.
</notification>
<notification
icon="notify.tga"
name="GroupObjectsReturned"
type="notify">
- The objects on the selected parcel of land shared with the group [GROUPNAME] have been returned back to their owner&apos;s inventory.
- Transferable deeded objects have been returned to their previous owners.
- Non-transferable objects that are deeded to the group have been deleted.
+The objects on the selected parcel of land shared with the group [GROUPNAME] have been returned back to their owner&apos;s inventory.
+Transferable deeded objects have been returned to their previous owners.
+Non-transferable objects that are deeded to the group have been deleted.
</notification>
<notification
icon="notify.tga"
name="UnOwnedObjectsReturned"
type="notify">
- The objects on the selected parcel that are NOT owned by you have been returned to their owners.
+The objects on the selected parcel that are NOT owned by you have been returned to their owners.
</notification>
<notification
icon="notify.tga"
name="NotSafe"
type="notify">
- This land has damage enabled.
- You can be hurt here. If you die, you will be teleported to your home location.
+This land has damage enabled.
+You can be hurt here. If you die, you will be teleported to your home location.
<unique/>
</notification>
@@ -5497,8 +5513,8 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="NoFly"
type="notify">
- This area has flying disabled.
- You can&apos;t fly here.
+This area has flying disabled.
+You can&apos;t fly here.
<unique/>
</notification>
@@ -5506,7 +5522,7 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="PushRestricted"
type="notify">
- This area does not allow pushing. You can&apos;t push others here unless you own the land.
+This area does not allow pushing. You can&apos;t push others here unless you own the land.
<unique/>
</notification>
@@ -5514,7 +5530,7 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="NoVoice"
type="notify">
- This area has voice chat disabled. You won&apos;t be able to hear anyone talking.
+This area has voice chat disabled. You won&apos;t be able to hear anyone talking.
<unique/>
</notification>
@@ -5522,7 +5538,7 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="NoBuild"
type="notify">
- This area has building disabled. You can&apos;t build or rez objects here.
+This area has building disabled. You can&apos;t build or rez objects here.
<unique/>
</notification>
@@ -5530,232 +5546,232 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="ScriptsStopped"
type="notify">
- An administrator has temporarily stopped scripts in this region.
+An administrator has temporarily stopped scripts in this region.
</notification>
<notification
icon="notify.tga"
name="ScriptsNotRunning"
type="notify">
- This region is not running any scripts.
+This region is not running any scripts.
</notification>
<notification
icon="notify.tga"
name="NoOutsideScripts"
type="notify">
- This land has outside scripts disabled.
+This land has outside scripts disabled.
- No scripts will work here except those belonging to the land owner.
+No scripts will work here except those belonging to the land owner.
</notification>
<notification
icon="notify.tga"
name="ClaimPublicLand"
type="notify">
- You can only claim public land in the Region you&apos;re in.
+You can only claim public land in the Region you&apos;re in.
</notification>
<notification
icon="notify.tga"
name="RegionTPAccessBlocked"
type="notify">
- You aren&apos;t allowed in that Region due to your maturity Rating. You may need to validate your age and/or install the latest Viewer.
+You aren&apos;t allowed in that Region due to your maturity Rating. You may need to validate your age and/or install the latest Viewer.
- Please go to the Knowledge Base for details on accessing areas with this maturity Rating.
+Please go to the Knowledge Base for details on accessing areas with this maturity Rating.
</notification>
<notification
icon="notify.tga"
name="URBannedFromRegion"
type="notify">
- You are banned from the region.
+You are banned from the region.
</notification>
<notification
icon="notify.tga"
name="NoTeenGridAccess"
type="notify">
- Your account cannot connect to this teen grid region.
+Your account cannot connect to this teen grid region.
</notification>
<notification
icon="notify.tga"
name="NoHelpIslandTP"
type="notify">
- You cannot teleport back to Help Island.
- Go to &apos;Help Island Public&apos; to repeat the tutorial.
+You cannot teleport back to Help Island.
+Go to &apos;Help Island Public&apos; to repeat the tutorial.
</notification>
<notification
icon="notify.tga"
name="ImproperPaymentStatus"
type="notify">
- You do not have proper payment status to enter this region.
+You do not have proper payment status to enter this region.
</notification>
<notification
icon="notify.tga"
name="MustGetAgeRgion"
type="notify">
- You must be age-verified to enter this region.
+You must be age-verified to enter this region.
</notification>
<notification
icon="notify.tga"
name="MustGetAgeParcel"
type="notify">
- You must be age-verified to enter this parcel.
+You must be age-verified to enter this parcel.
</notification>
<notification
icon="notify.tga"
name="NoDestRegion"
type="notify">
- No destination region found.
+No destination region found.
</notification>
<notification
icon="notify.tga"
name="NotAllowedInDest"
type="notify">
- You are not allowed into the destination.
+You are not allowed into the destination.
</notification>
<notification
icon="notify.tga"
name="RegionParcelBan"
type="notify">
- Cannot region cross into banned parcel. Try another way.
+Cannot region cross into banned parcel. Try another way.
</notification>
<notification
icon="notify.tga"
name="TelehubRedirect"
type="notify">
- You have been redirected to a telehub.
+You have been redirected to a telehub.
</notification>
<notification
icon="notify.tga"
name="CouldntTPCloser"
type="notify">
- Could not teleport closer to destination.
+Could not teleport closer to destination.
</notification>
<notification
icon="notify.tga"
name="TPCancelled"
type="notify">
- Teleport cancelled.
+Teleport cancelled.
</notification>
<notification
icon="notify.tga"
name="FullRegionTryAgain"
type="notify">
- The region you are attempting to enter is currently full.
- Please try again in a few moments.
+The region you are attempting to enter is currently full.
+Please try again in a few moments.
</notification>
<notification
icon="notify.tga"
name="GeneralFailure"
type="notify">
- General failure.
+General failure.
</notification>
<notification
icon="notify.tga"
name="RoutedWrongRegion"
type="notify">
- Routed to wrong region. Please try again.
+Routed to wrong region. Please try again.
</notification>
<notification
icon="notify.tga"
name="NoValidAgentID"
type="notify">
- No valid agent id.
+No valid agent id.
</notification>
<notification
icon="notify.tga"
name="NoValidSession"
type="notify">
- No valid session id.
+No valid session id.
</notification>
<notification
icon="notify.tga"
name="NoValidCircuit"
type="notify">
- No valid circuit code.
+No valid circuit code.
</notification>
<notification
icon="notify.tga"
name="NoValidTimestamp"
type="notify">
- No valid timestamp.
+No valid timestamp.
</notification>
<notification
icon="notify.tga"
name="NoPendingConnection"
type="notify">
- Unable to create pending connection.
+Unable to create pending connection.
</notification>
<notification
icon="notify.tga"
name="InternalUsherError"
type="notify">
- Internal error attempting to connect agent usher.
+Internal error attempting to connect agent usher.
</notification>
<notification
icon="notify.tga"
name="NoGoodTPDestination"
type="notify">
- Unable to find a good teleport destination in this region.
+Unable to find a good teleport destination in this region.
</notification>
<notification
icon="notify.tga"
name="InternalErrorRegionResolver"
type="notify">
- Internal error attempting to activate region resolver.
+Internal error attempting to activate region resolver.
</notification>
<notification
icon="notify.tga"
name="NoValidLanding"
type="notify">
- A valid landing point could not be found.
+A valid landing point could not be found.
</notification>
<notification
icon="notify.tga"
name="NoValidParcel"
type="notify">
- No valid parcel could be found.
+No valid parcel could be found.
</notification>
<notification
icon="notify.tga"
name="ObjectGiveItem"
type="notify">
- An object named [OBJECTFROMNAME] owned by [FIRST] [LAST] has given you a [OBJECTTYPE] named [OBJECTNAME].
+An object named [OBJECTFROMNAME] owned by [FIRST] [LAST] has given you a [OBJECTTYPE] named [OBJECTNAME].
<form name="form">
<button
index="0"
name="Keep"
- text="Keep"/>
+ text="OK"/>
<button
index="1"
name="Discard"
- text="Discard"/>
+ text="Cancel"/>
<button
index="2"
name="Mute"
@@ -5767,16 +5783,16 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="ObjectGiveItemUnknownUser"
type="notify">
- An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a [OBJECTTYPE] named [OBJECTNAME].
+An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a [OBJECTTYPE] named [OBJECTNAME].
<form name="form">
<button
index="0"
name="Keep"
- text="Keep"/>
+ text="OK"/>
<button
index="1"
name="Discard"
- text="Discard"/>
+ text="Cancel"/>
<button
index="2"
name="Mute"
@@ -5788,16 +5804,16 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="UserGiveItem"
type="notify">
- [NAME] has given you a [OBJECTTYPE] named &apos;[OBJECTNAME]&apos;.
+[NAME] has given you a [OBJECTTYPE] named &apos;[OBJECTNAME]&apos;.
<form name="form">
<button
index="0"
name="Keep"
- text="Keep"/>
+ text="OK"/>
<button
index="1"
name="Discard"
- text="Discard"/>
+ text="Cancel"/>
<button
index="2"
name="Mute"
@@ -5809,15 +5825,15 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="GodMessage"
type="notify">
- [NAME]
- [MESSAGE]
+[NAME]
+[MESSAGE]
</notification>
<notification
icon="notify.tga"
name="JoinGroup"
type="notify">
- [MESSAGE]
+[MESSAGE]
<form name="form">
<button
index="0"
@@ -5838,9 +5854,9 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="TeleportOffered"
type="notify">
- [NAME] has offered to teleport you to their location:
+[NAME] has offered to teleport you to their location:
- [MESSAGE]
+[MESSAGE]
<form name="form">
<button
index="0"
@@ -5857,8 +5873,8 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="GotoURL"
type="notify">
- [MESSAGE]
- [URL]
+[MESSAGE]
+[URL]
<form name="form">
<button
index="0"
@@ -5875,11 +5891,11 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="OfferFriendship"
type="notify">
- [NAME] is offering friendship.
+[NAME] is offering friendship.
- [MESSAGE]
+[MESSAGE]
- (By default, you will be able to see each other&apos;s online status.)
+(By default, you will be able to see each other&apos;s online status.)
<form name="form">
<button
index="0"
@@ -5896,9 +5912,9 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="OfferFriendshipNoMessage"
type="notify">
- [NAME] is offering friendship.
+[NAME] is offering friendship.
- (By default, you will be able to see each other&apos;s online status.)
+(By default, you will be able to see each other&apos;s online status.)
<form name="form">
<button
index="0"
@@ -5915,22 +5931,22 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="FriendshipAccepted"
type="notify">
- [NAME] accepted your friendship offer.
+[NAME] accepted your friendship offer.
</notification>
<notification
icon="notify.tga"
name="FriendshipDeclined"
type="notify">
- [NAME] declined your friendship offer.
+[NAME] declined your friendship offer.
</notification>
<notification
icon="notify.tga"
name="OfferCallingCard"
type="notify">
- [FIRST] [LAST] is offering their calling card.
- This will add a bookmark in your inventory so you can quickly IM this resident.
+[FIRST] [LAST] is offering their calling card.
+This will add a bookmark in your inventory so you can quickly IM this resident.
<form name="form">
<button
index="0"
@@ -5949,8 +5965,8 @@ Please re-install the plugin or contact the vendor if you continue to experience
priority="high"
sound="UISndAlert"
type="notify">
- This region will restart in [MINUTES] minutes.
- If you stay in this region you will be logged out.
+This region will restart in [MINUTES] minutes.
+If you stay in this region you will be logged out.
</notification>
<notification
@@ -5959,19 +5975,19 @@ Please re-install the plugin or contact the vendor if you continue to experience
priority="high"
sound="UISndAlert"
type="notify">
- This region will restart in [SECONDS] seconds.
- If you stay in this region you will be logged out.
+This region will restart in [SECONDS] seconds.
+If you stay in this region you will be logged out.
</notification>
<notification
icon="notify.tga"
name="LoadWebPage"
type="notify">
- Load web page [URL]?
+Load web page [URL]?
- [MESSAGE]
+[MESSAGE]
- From object: [OBJECTNAME], owner: [NAME]?
+From object: [OBJECTNAME], owner: [NAME]?
<form name="form">
<button
index="0"
@@ -5988,31 +6004,31 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="FailedToFindWearableUnnamed"
type="notify">
- Failed to find [TYPE] in database.
+Failed to find [TYPE] in database.
</notification>
<notification
icon="notify.tga"
name="FailedToFindWearable"
type="notify">
- Failed to find [TYPE] named [DESC] in database.
+Failed to find [TYPE] named [DESC] in database.
</notification>
<notification
icon="notify.tga"
name="InvalidWearable"
type="notify">
- The item you are trying to wear uses a feature that your Viewer can&apos;t read. Please upgrade your version of [APP_NAME] to wear this item.
+The item you are trying to wear uses a feature that your Viewer can&apos;t read. Please upgrade your version of [APP_NAME] to wear this item.
</notification>
<notification
icon="notify.tga"
name="ScriptQuestion"
type="notify">
- &apos;[OBJECTNAME]&apos;, an object owned by &apos;[NAME]&apos;, would like to:
+&apos;[OBJECTNAME]&apos;, an object owned by &apos;[NAME]&apos;, would like to:
- [QUESTIONS]
- Is this OK?
+[QUESTIONS]
+Is this OK?
<form name="form">
<button
index="0"
@@ -6034,12 +6050,12 @@ Please re-install the plugin or contact the vendor if you continue to experience
name="ScriptQuestionCaution"
priority="high"
type="notify">
- An object named &apos;[OBJECTNAME]&apos;, owned by &apos;[NAME]&apos; would like to:
+An object named &apos;[OBJECTNAME]&apos;, owned by &apos;[NAME]&apos; would like to:
- [QUESTIONS]
- If you do not trust this object and its creator, you should deny the request.
+[QUESTIONS]
+If you do not trust this object and its creator, you should deny the request.
- Grant this request?
+Grant this request?
<form name="form">
<button
index="0"
@@ -6061,8 +6077,8 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="ScriptDialog"
type="notify">
- [FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
- [MESSAGE]
+[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
<form name="form">
<button
index="-1"
@@ -6075,8 +6091,8 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="ScriptDialogGroup"
type="notify">
- [GROUPNAME]&apos;s &apos;[TITLE]&apos;
- [MESSAGE]
+[GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
<form name="form">
<button
index="-1"
@@ -6089,41 +6105,41 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="FirstBalanceIncrease"
type="notify">
- You just received L$[AMOUNT].
- Your L$ balance is shown in the upper-right.
+You just received L$[AMOUNT].
+Your L$ balance is shown in the upper-right.
</notification>
<notification
icon="notify.tga"
name="FirstBalanceDecrease"
type="notify">
- You just paid L$[AMOUNT].
- Your L$ balance is shown in the upper-right.
+You just paid L$[AMOUNT].
+Your L$ balance is shown in the upper-right.
</notification>
<notification
icon="notify.tga"
name="FirstSit"
type="notify">
- You are sitting.
- Use your arrow keys (or AWSD) to look around.
- Click the &apos;Stand Up&apos; button to stand.
+You are sitting.
+Use your arrow keys (or AWSD) to look around.
+Click the &apos;Stand Up&apos; button to stand.
</notification>
<notification
icon="notify.tga"
name="FirstMap"
type="notify">
- Click and drag the map to look around.
- Double-click to teleport.
- Use the controls on the right to find things and display different backgrounds.
+Click and drag the map to look around.
+Double-click to teleport.
+Use the controls on the right to find things and display different backgrounds.
</notification>
<notification
icon="notify.tga"
name="FirstBuild"
type="notify">
- You have opened the Build Tools. Every object you see around you was created using these tools.
+You have opened the Build Tools. Every object you see around you was created using these tools.
</notification>
<!--
@@ -6140,24 +6156,24 @@ Please re-install the plugin or contact the vendor if you continue to experience
icon="notify.tga"
name="FirstTeleport"
type="notify">
- You can only teleport to certain areas in this region. The arrow points to your specific destination. Click the arrow to dismiss it.
+You can only teleport to certain areas in this region. The arrow points to your specific destination. Click the arrow to dismiss it.
</notification>
<notification
icon="notify.tga"
name="FirstOverrideKeys"
type="notify">
- Your movement keys are now being handled by an object.
- Try the arrow keys or AWSD to see what they do.
- Some objects (like guns) require you to go into mouselook to use them.
- Press &apos;M&apos; to do this.
+Your movement keys are now being handled by an object.
+Try the arrow keys or AWSD to see what they do.
+Some objects (like guns) require you to go into mouselook to use them.
+Press &apos;M&apos; to do this.
</notification>
<notification
icon="notify.tga"
name="FirstAppearance"
type="notify">
- You are editing your Appearance.
+You are editing your Appearance.
Use the arrow keys to look around.
When you are done, press &apos;Save All&apos;.
</notification>
@@ -6166,38 +6182,38 @@ When you are done, press &apos;Save All&apos;.
icon="notify.tga"
name="FirstInventory"
type="notify">
- This is your Inventory, which contains items you own.
+This is your Inventory, which contains items you own.
- * To wear something, drag it onto yourself.
- * To rez something inworld, drag it onto the ground.
- * To read a notecard, double-click it.
+* To wear something, drag it onto yourself.
+* To rez something inworld, drag it onto the ground.
+* To read a notecard, double-click it.
</notification>
<notification
icon="notify.tga"
name="FirstSandbox"
type="notify">
- This is a sandbox area, and is meant to help Residents learn how to build.
+This is a sandbox area, and is meant to help Residents learn how to build.
- Things you build here will be deleted after you leave, so don&apos;t forget to right-click and choose &apos;Take&apos; to move your creation to your Inventory.
+Things you build here will be deleted after you leave, so don&apos;t forget to right-click and choose &apos;Take&apos; to move your creation to your Inventory.
</notification>
<notification
icon="notify.tga"
name="FirstFlexible"
type="notify">
- This object is flexible. Flexis must be phantom and not physical.
+This object is flexible. Flexis must be phantom and not physical.
</notification>
<notification
icon="notify.tga"
name="FirstDebugMenus"
type="notify">
- You opened the Advanced menu.
+You opened the Advanced menu.
- To toggle this menu,
- Windows: Ctrl-Alt-D
- Mac: &#8984;-Opt-D
+To toggle this menu,
+ Windows: Ctrl+Alt+D
+ Mac: &#8997;&#8984;D
</notification>
@@ -6205,7 +6221,7 @@ When you are done, press &apos;Save All&apos;.
icon="notify.tga"
name="FirstSculptedPrim"
type="notify">
- You are editing a Sculpted prim. Sculpties require a special texture to define their shape.
+You are editing a Sculpted prim. Sculpties require a special texture to define their shape.
</notification>
<!--notification
@@ -6219,7 +6235,7 @@ When you are done, press &apos;Save All&apos;.
icon="notifytip.tga"
name="MaxListSelectMessage"
type="notifytip">
- You may only select up to [MAX_SELECT] items from this list.
+You may only select up to [MAX_SELECT] items from this list.
</notification>
<notification
@@ -6348,7 +6364,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceChannelFull"
type="notifytip">
- The voice call you are trying to join, [VOICE_CHANNEL_NAME], has reached maximum capacity. Please try again later.
+The voice call you are trying to join, [VOICE_CHANNEL_NAME], has reached maximum capacity. Please try again later.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6358,7 +6374,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="ProximalVoiceChannelFull"
type="notifytip">
- We&apos;re sorry. This area has reached maximum capacity for voice conversations. Please try to use voice in another area.
+We&apos;re sorry. This area has reached maximum capacity for voice conversations. Please try to use voice in another area.
<unique/>
</notification>
@@ -6366,7 +6382,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceChannelDisconnected"
type="notifytip">
- You have been disconnected from [VOICE_CHANNEL_NAME]. You will now be reconnected to spatial voice chat.
+You have been disconnected from [VOICE_CHANNEL_NAME]. You will now be reconnected to spatial voice chat.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6376,7 +6392,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceChannelDisconnectedP2P"
type="notifytip">
- [VOICE_CHANNEL_NAME] has ended the call. You will now be reconnected to spatial voice chat.
+[VOICE_CHANNEL_NAME] has ended the call. You will now be reconnected to spatial voice chat.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6386,7 +6402,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="P2PCallDeclined"
type="notifytip">
- [VOICE_CHANNEL_NAME] has declined your call. You will now be reconnected to spatial voice chat.
+[VOICE_CHANNEL_NAME] has declined your call. You will now be reconnected to spatial voice chat.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6396,7 +6412,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="P2PCallNoAnswer"
type="notifytip">
- [VOICE_CHANNEL_NAME] is not available to take your call. You will now be reconnected to spatial voice chat.
+[VOICE_CHANNEL_NAME] is not available to take your call. You will now be reconnected to spatial voice chat.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6406,7 +6422,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceChannelJoinFailed"
type="notifytip">
- Failed to connect to [VOICE_CHANNEL_NAME], please try again later. You will now be reconnected to spatial voice chat.
+Failed to connect to [VOICE_CHANNEL_NAME], please try again later. You will now be reconnected to spatial voice chat.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6417,7 +6433,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceLoginRetry"
type="notifytip">
- We are creating a voice channel for you. This may take up to one minute.
+We are creating a voice channel for you. This may take up to one minute.
<unique/>
</notification>
@@ -6425,28 +6441,28 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="Cannot enter parcel: not a group member"
type="notifytip">
- Only members of a certain group can visit this area.
+Only members of a certain group can visit this area.
</notification>
<notification
icon="notifytip.tga"
name="Cannot enter parcel: banned"
type="notifytip">
- Cannot enter parcel, you have been banned.
+Cannot enter parcel, you have been banned.
</notification>
<notification
icon="notifytip.tga"
name="Cannot enter parcel: not on access list"
type="notifytip">
- Cannot enter parcel, you are not on the access list.
+Cannot enter parcel, you are not on the access list.
</notification>
<notification
icon="notifytip.tga"
name="VoiceNotAllowed"
type="notifytip">
- You do not have permission to connect to voice chat for [VOICE_CHANNEL_NAME].
+You do not have permission to connect to voice chat for [VOICE_CHANNEL_NAME].
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6456,7 +6472,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
icon="notifytip.tga"
name="VoiceCallGenericError"
type="notifytip">
- An error has occurred while trying to connect to voice chat for [VOICE_CHANNEL_NAME]. Please try again later.
+An error has occurred while trying to connect to voice chat for [VOICE_CHANNEL_NAME]. Please try again later.
<unique>
<context key="VOICE_CHANNEL_NAME"/>
</unique>
@@ -6468,7 +6484,7 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
name="ServerVersionChanged"
priority="high"
type="notifytip">
- You just entered a region using a different server version, which may affect performance. Click to see the release notes.
+You just entered a region using a different server version, which may affect performance. Click to see the release notes.
</notification>
<notification
@@ -6476,33 +6492,19 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
name="UnsupportedCommandSLURL"
priority="high"
type="notifytip">
- The SLurl you clicked on is not supported.
+The SLurl you clicked on is not supported.
</notification>
<notification name="IMToast" type="notifytoast">
- [MESSAGE]
+[MESSAGE]
<form name="form">
<button index="0" name="respondbutton" text="Respond"/>
</form>
</notification>
-
- <notification
- icon="alertmodal.tga"
- name="CreateGroupCost"
- type="alertmodal">
- Creating this group will cost L$100.
- Groups need more than one member, or they are deleted forever.
- Please invite members within 48 hours.
- <usetemplate
- canceltext="Cancel"
- name="okcancelbuttons"
- notext="Cancel"
- yestext="Create group for L$100"/>
- </notification>
<notification icon="notifytip.tga"
name="AttachmentSaved" type="notifytip">
- Attachment has been saved.
+Attachment has been saved.
</notification>
<notification
@@ -6523,6 +6525,17 @@ Server Error: Media update or get failed.
yestext="OK"/>
</notification>
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmClearTeleportHistory"
+ type="alertmodal">
+Are you sure you want to delete your teleport history?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
<global name="UnsupportedCPU">
- Your CPU speed does not meet the minimum requirements.
</global>
diff --git a/indra/newview/skins/default/xui/en/panel_audio_device.xml b/indra/newview/skins/default/xui/en/panel_audio_device.xml
index 4329982209..546f46205f 100644
--- a/indra/newview/skins/default/xui/en/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/en/panel_audio_device.xml
@@ -81,7 +81,6 @@
enabled="false"
height="60"
border_visible="false"
- hide_scrollbar="true"
layout="topleft"
left_delta="10"
max_length="65535"
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
index c3ae2d953a..f7f08b9b6a 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
@@ -47,7 +47,7 @@
top="4"
use_ellipses="true"
value="Unknown"
- width="180" />
+ width="162" />
<text
follows="right"
font="SansSerif"
@@ -85,4 +85,19 @@
picture_style="true"
top="2"
width="18" />
+ <button
+ follows="right"
+ font="SansSerifBigBold"
+ height="18"
+ image_disabled="profile_chevron_btn.tga"
+ image_disabled_selected="profile_chevron_btn.tga"
+ image_hover_selected="profile_chevron_btn_active.tga"
+ image_selected="profile_chevron_btn_active.tga"
+ image_unselected="profile_chevron_btn.tga"
+ layout="topleft"
+ left_pad="2"
+ name="profile_btn"
+ picture_style="true"
+ top="2"
+ width="18" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
index 34b4736979..e4f6e7bd44 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
@@ -61,7 +61,6 @@
font="SansSerifSmall"
read_only="true"
bg_readonly_color="0 0 0 0"
- hide_scrollbar="true"
word_wrap="true"
mouse_opaque="true"
name="msg_text" >
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index cd7e340ff1..b4847368b2 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -83,7 +83,7 @@
top="6"
width="70">
<button.init_callback
- function="Button.SetFloaterToggle"
+ function="Button.SetDockableFloaterToggle"
parameter="moveview" />
</button>
</layout_panel>
@@ -105,10 +105,10 @@
height="28"
layout="topleft"
min_height="28"
- min_width="150"
+ min_width="100"
name="cam_panel"
top_delta="-10"
- width="150">
+ width="100">
<button
follows="right"
height="20"
@@ -121,7 +121,7 @@
name="camera_btn"
width="70">
<button.init_callback
- function="Button.SetFloaterToggle"
+ function="Button.SetDockableFloaterToggle"
parameter="camera" />
</button>
<button
@@ -136,15 +136,28 @@
image_selected="toggle_button_selected"
image_unselected="toggle_button_off">
<button.init_callback
- function="Button.SetFloaterToggle"
+ function="Button.SetDockableFloaterToggle"
parameter="camera_presets"
/>
</button>
+ </layout_panel>
+ <layout_panel
+ mouse_opaque="false"
+ auto_resize="false"
+ follows="right"
+ height="28"
+ layout="topleft"
+ min_height="28"
+ min_width="35"
+ name="snapshot_panel"
+ top_delta="-10"
+ width="35">
<split_button
arrow_position="right"
follows="right"
height="18"
- left_pad="4"
+ left="0"
+ layout="topleft"
name="snapshots"
top="6"
width="35">
@@ -160,19 +173,8 @@
image_unselected="camera_presets/camera_presets_snapshot.png"
name="snapshot"
tool_tip="Take Snapshot" />
- </split_button>
+ </split_button>
</layout_panel>
- <icon
- auto_resize="false"
- color="0 0 0 0"
- follows="left|right"
- height="10"
- image_name="spacer24.tga"
- layout="topleft"
- left="0"
- name="DUMMY"
- top="0"
- width="5"/>
<layout_panel
mouse_opaque="false"
follows="left|right"
diff --git a/indra/newview/skins/default/xui/en/panel_chat_item.xml b/indra/newview/skins/default/xui/en/panel_chat_item.xml
index 713c3a41a2..78f53562cd 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_item.xml
@@ -16,7 +16,7 @@
/>
<text
width="130" top="25" left="40" height="20" follows="left|right|top"
- font="SansSerifBigBold" text_color="white" word_wrap="true"
+ font="SansSerifBigBold" text_color="white" word_wrap="false" use_ellipses="true"
mouse_opaque="true" name="sender_name" >
Jerry Knight
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 5dd03656c6..453e1319a6 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -2,13 +2,13 @@
<panel
background_visible="true"
bevel_style="in"
- height="420"
+ height="570"
label="Edit Pick"
layout="topleft"
left="0"
name="panel_edit_pick"
top="0"
- width="255">
+ width="333">
<text
type="string"
length="1"
@@ -36,34 +36,26 @@
<scroll_container
color="DkGray2"
follows="left|top|right|bottom"
- height="300"
+ height="470"
layout="topleft"
- left="0"
+ left="10"
+ top_pad="10"
name="profile_scroll"
reserve_scroll_corner="true"
opaque="true"
- width="255">
+ width="313">
<panel
name="scroll_content_panel"
follows="left|top|right"
layout="topleft"
top="0"
left="0"
- width="240"
- height="575">
- <panel
- background_visible="true"
- bg_alpha_color="DkGray2"
- width="220"
- follows="left|right|top|bottom"
- height="560"
- layout="topleft"
- left="0"
- top="0">
+ width="298"
+ height="555">
<texture_picker
follows="left|top|right"
- height="190"
- width="220"
+ height="197"
+ width="280"
layout="topleft"
top="20"
left="10"
@@ -101,7 +93,7 @@
max_length="63"
name="pick_name"
text_color="black"
- width="220" />
+ width="280" />
<text
type="string"
length="1"
@@ -119,8 +111,8 @@
<text_editor
follows="left|top|right"
height="100"
- width="220"
- hide_scrollbar="true"
+ width="280"
+ hide_scrollbar="false"
layout="topleft"
left="10"
top_pad="2"
@@ -153,7 +145,7 @@
right="-10"
top_pad="2"
text_color="white"
- width="250"
+ width="280"
word_wrap="true">
loading...
</text>
@@ -166,7 +158,6 @@
name="set_to_curr_location_btn"
width="200" />
</panel>
- </panel>
</scroll_container>
<panel
follows="left|right|bottom"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index b13058f40a..0202323dcf 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -14,7 +14,8 @@
width="255">
<string
name="CaptionTextAcctInfo">
- [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ [ACCTTYPE]
+[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string
name="AcctTypeResident"
@@ -138,6 +139,7 @@
layout="topleft"
left="120"
top="30"
+ max_length="511"
name="sl_description_edit"
width="115"
word_wrap="true">
@@ -193,6 +195,7 @@
layout="topleft"
left="120"
top="195"
+ max_length="254"
name="fl_description_edit"
width="115"
word_wrap="true">
@@ -294,7 +297,7 @@
width="100"/>
<text
follows="left|top|right"
- height="15"
+ height="20"
layout="topleft"
left="10"
name="acc_status_text"
diff --git a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
index a9363df259..be38492c82 100644
--- a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
@@ -1,31 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="panel_im_control_panel"
- width="96"
- height="215"
- border="false">
- <avatar_list
- width="90"
- column_padding="0"
- draw_heading="true"
- draw_stripes="false"
- follows="left|top|bottom|right"
- layout="topleft"
- left="3"
- name="speakers_list"
- search_column="1"
- sort_column="2"
- top="10"
- height="150" />
-
- <button name="group_info_btn"
- label="Group Info"
- left_delta="3"
- width="90"
- height="20" />
-
- <button name="call_btn"
- label="Call"
- width="90"
- height="20" />
-
+<panel
+ name="panel_im_control_panel"
+ width="146"
+ height="215"
+ border="false">
+ <avatar_list_tmp
+ color="DkGray2"
+ follows="left|top|right|bottom"
+ height="150"
+ layout="topleft"
+ left="3"
+ name="speakers_list"
+ top="10"
+ width="140"/>
+ <button
+ name="group_info_btn"
+ label="Group Info"
+ left_delta="3"
+ width="90"
+ height="20" />
+ <button
+ name="call_btn"
+ label="Call"
+ width="90"
+ height="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
index 03e2d35b9f..6f01202680 100644
--- a/indra/newview/skins/default/xui/en/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
@@ -12,9 +12,7 @@
width="280">
<panel.string
name="help_text">
- The General tab contains general information about
-this group, a list of Owners and visible Members,
-general Group Preferences and member options.
+ The General tab contains general information about this group, a list of members, general Group Preferences and member options.
Hover your mouse over the options for more help.
</panel.string>
@@ -45,7 +43,6 @@ Hover your mouse over the options for more help.
follows="left|top"
left="5"
height="75"
- hide_scrollbar="true"
layout="topleft"
max_length="511"
name="charter"
@@ -114,7 +111,7 @@ Hover your mouse over the options for more help.
layout="topleft"
left_delta="0"
name="active_title"
- tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active."
+ tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active."
top_pad="0"
width="240" />
<check_box
@@ -124,7 +121,7 @@ Hover your mouse over the options for more help.
layout="topleft"
left_delta="0"
name="receive_notices"
- tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you."
+ tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you."
top_pad="5"
width="240" />
<check_box
@@ -180,7 +177,7 @@ Hover your mouse over the options for more help.
max_val="99999"
top_pad="5"
name="spin_enrollment_fee"
- tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked."
+ tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked."
top_delta="-2"
width="75" />
<check_box
@@ -202,7 +199,7 @@ Hover your mouse over the options for more help.
top_pad="10"
width="240">
<combo_box.item
- label="Select Mature -"
+ label="- Select Mature -"
name="select_mature"
value="Select" />
<combo_box.item
@@ -215,4 +212,4 @@ Hover your mouse over the options for more help.
value="Not Mature" />
</combo_box>
</panel>
-</panel> \ No newline at end of file
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index 999aa814b1..d61fcf529a 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -259,6 +259,7 @@
label="Planning"
layout="topleft"
left="1"
+ help_topic="group_money_planning_tab"
name="group_money_planning_tab"
top="5"
width="265">
@@ -284,6 +285,7 @@
label="Details"
layout="topleft"
left_delta="0"
+ help_topic="group_money_details_tab"
name="group_money_details_tab"
top_delta="0"
width="265">
@@ -329,6 +331,7 @@
label="Sales"
layout="topleft"
left_delta="0"
+ help_topic="group_money_sales_tab"
name="group_money_sales_tab"
top_delta="-1"
width="265">
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index ffc2f279bc..82a3c98dd9 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -187,7 +187,6 @@ the General tab.
</text>
<text_editor
height="75"
- hide_scrollbar="true"
layout="topleft"
left_pad="3"
max_length="511"
@@ -344,7 +343,6 @@ the General tab.
<text_editor
enabled="false"
height="150"
- hide_scrollbar="true"
layout="topleft"
left="10"
max_length="511"
diff --git a/indra/newview/skins/default/xui/en/panel_group_notify.xml b/indra/newview/skins/default/xui/en/panel_group_notify.xml
index f97daf922f..bd98996ae1 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notify.xml
@@ -7,13 +7,13 @@
4
</string>
<panel follows="top" background_visible="true" bevel_style="in" bg_alpha_color="black"
- height="50" label="header" layout="topleft" left="0" name="header"
+ height="30" label="header" layout="topleft" left="0" name="header"
top="0" width="350">
- <icon follows="left|top|right|bottom" height="40" width="40" layout="topleft"
+ <icon follows="left|top|right|bottom" height="20" width="20" layout="topleft"
top="5" left="5" mouse_opaque="true" name="group_icon"/>
<text type="string" length="1" follows="left|top|right|bottom"
- font="SansSerifBigBold" height="20" layout="topleft" left="60" name="title"
- text_color="GroupNotifyTextColor" top="20" width="275" use_ellipses="true">
+ font="SansSerifBigBold" height="20" layout="topleft" left_pad="10" name="title"
+ text_color="GroupNotifyTextColor" top="5" width="275" use_ellipses="true">
Sender Name / Group Name
</text>
</panel>
@@ -65,7 +65,7 @@
follows="left|bottom|right" height="15" width="15"
layout="topleft" bottom="122" left="25" mouse_opaque="true" name="attachment_icon" visible="true"
/>
- <text font="SansSerif" font.style="UNDERLINE" font_shadow="hard"
+ <text font="SansSerif" font.style="UNDERLINE" font_shadow="none"
type="string" length="1" follows="left|bottom|right" layout="topleft"
left="45" bottom="122" height="15" width="280" name="attachment"
text_color="GroupNotifyTextColor" visible="true">
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index 7b8bd8b337..bf861af4f2 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -174,6 +174,7 @@
label="Members"
layout="topleft"
left="1"
+ help_topic="roles_members_tab"
name="members_sub_tab"
tool_tip="Members"
top="17"
@@ -283,6 +284,7 @@ clicking on their names.
label="Roles"
layout="topleft"
left_delta="0"
+ help_topic="roles_roles_tab"
name="roles_sub_tab"
class="panel_group_roles_subtab"
top="17"
@@ -400,6 +402,7 @@ including the Everyone and Owner Roles.
label="Abilities"
layout="topleft"
left_delta="0"
+ help_topic="roles_actions_tab"
name="actions_sub_tab"
class="panel_group_actions_subtab"
top="17"
@@ -625,7 +628,6 @@ things in this group. There&apos;s a broad variety of Abilities.
type="string"
halign="left"
height="48"
- hide_scrollbar="true"
layout="topleft"
left="135"
max_length="254"
@@ -723,7 +725,6 @@ things in this group. There&apos;s a broad variety of Abilities.
enabled="false"
halign="left"
height="48"
- hide_scrollbar="true"
layout="topleft"
left_delta="0"
max_length="512"
diff --git a/indra/newview/skins/default/xui/en/panel_instant_message.xml b/indra/newview/skins/default/xui/en/panel_instant_message.xml
index 7db1b9e916..00ede1fb2c 100644
--- a/indra/newview/skins/default/xui/en/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_instant_message.xml
@@ -80,7 +80,8 @@
use_ellipses="true"
value="MESSAGE"
width="330"
- word_wrap="true" />
+ word_wrap="true"
+ max_length="350" />
<button
follows="bottom"
font="SansSerifBigBold"
diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml
index aeeb884036..afe00271f7 100644
--- a/indra/newview/skins/default/xui/en/panel_login.xml
+++ b/indra/newview/skins/default/xui/en/panel_login.xml
@@ -164,7 +164,7 @@
control_name="RememberPassword"
follows="left|bottom"
height="16"
- label="Remember me"
+ label="Remember password"
layout="topleft"
left_pad="10"
name="remember_check"
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
index f1e2560356..c725334fc0 100644
--- a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
@@ -196,7 +196,7 @@
left="30"
width="340"
enabled="false"
- name="meida_setting_note">
+ name="media_setting_note">
Note: Residents can override this setting
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 1178d75b2c..00100693cc 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -4,7 +4,7 @@
background_visible="true"
bg_opaque_color="MouseGray"
follows="left|top|right"
- height="60"
+ height="65"
layout="topleft"
name="navigation_bar"
width="600">
@@ -64,13 +64,13 @@
left_pad="7"
name="home_btn"
picture_style="true"
- tool_tip="Teleport to your home location"
+ tool_tip="Teleport to my home location"
top_delta="0"
width="32" />
<location_input
follows="left|right|top"
halign="right"
- height="22"
+ height="23"
label="Location"
layout="topleft"
left_pad="7"
@@ -133,7 +133,7 @@
follows="left|right|top"
height="25"
layout="topleft"
- left="5"
+ left="0"
name="favorite"
image_drag_indication="Arrow_Down"
chevron_button_tool_tip="Show more of My Favorites"
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
index 4088d96ebf..3c8bf31e13 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
@@ -18,18 +18,31 @@
left_delta="7"
left="0"
name="chat_box"
- tool_tip="Press Enter to say, Ctrl-Enter to shout."
+ tool_tip="Press Enter to say, Ctrl+Enter to shout."
top="3"
width="250" />
+ <output_monitor
+ auto_update="true"
+ follows="right"
+ draw_border="false"
+ halign="left"
+ height="16"
+ layout="topleft"
+ left_pad="-24"
+ mouse_opaque="true"
+ name="chat_zone_indicator"
+ top="4"
+ visible="true"
+ width="20" />
<button
- follows="right"
- width="45"
- top="3"
- layout="topleft"
- left_pad="5"
- label="Log"
- height="20">
- <button.commit_callback function="Floater.Toggle" parameter="nearby_chat"/>
+ follows="right"
+ width="45"
+ top="3"
+ layout="topleft"
+ left_pad="5"
+ label="Log"
+ height="20">
+ <button.commit_callback function="Floater.Toggle" parameter="nearby_chat"/>
</button>
<chiclet_talk
follows="right"
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
index 2056ec14d5..5333dfa2f5 100644
--- a/indra/newview/skins/default/xui/en/panel_notes.xml
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- bevel_style="in"
- follows="left|top|right|bottom"
- height="460"
+ follows="all"
+ height="535"
label="Notes &amp; Privacy"
layout="topleft"
left="0"
name="panel_notes"
top="0"
- width="313">
+ width="313"
+>
<layout_stack
name="layout"
orientation="vertical"
@@ -16,34 +16,28 @@
layout="topleft"
left="0"
top="0"
- height="430"
- width="313"
+ height="517"
border_size="0">
<panel
name="notes_stack"
follows="all"
layout="topleft"
top="0"
- left="0"
- height="390"
- width="313">
+ left="0">
<scroll_container
color="DkGray2"
- follows="left|top|right|bottom"
- height="390"
+ follows="all"
layout="topleft"
left="0"
name="profile_scroll"
opaque="true"
- top="0"
- width="313">
+ top="0">
<panel
- height="350"
- layout="topleft"
- name="profile_scroll_panel"
- top="0"
- left="0"
- width="293">
+ layout="topleft"
+ name="profile_scroll_panel"
+ top="0"
+ left="0"
+ width="303">
<text
follows="left|top"
font="SansSerifBold"
@@ -52,18 +46,17 @@
left="10"
name="status_message"
text_color="white"
- top="5"
+ top="20"
value="My private notes:"
width="293" />
<text_editor
follows="left|top"
- height="200"
- hide_scrollbar="true"
+ height="120"
layout="topleft"
left="10"
max_length="1000"
name="notes_edit"
- text_color="black"
+ text_color="DkGray"
top_pad="10"
width="280"
word_wrap="true" />
@@ -75,70 +68,91 @@
left="10"
name="status_message2"
text_color="white"
- top_pad="10"
- value="Let this person:"
+ top_pad="30"
+ value="Allow this person to:"
width="293" />
<check_box
enabled="false"
- height="20"
+ height="16"
label="See my online status"
layout="topleft"
left="20"
name="status_check"
- top_pad="0"
width="293" />
<check_box
enabled="false"
- height="20"
+ height="16"
label="See me on the map"
layout="topleft"
left="20"
name="map_check"
- top_pad="0"
width="293" />
<check_box
enabled="false"
- height="20"
+ height="16"
label="Edit, delete or take my objects"
layout="topleft"
left="20"
name="objects_check"
- top_pad="0"
width="293" />
</panel>
</scroll_container>
</panel>
<panel
- follows="bottom"
+ follows="bottom|left"
height="30"
layout="topleft"
- left="10"
+ left="0"
name="notes_buttons_panel"
- top_pad="5"
- width="280"
auto_resize="false">
- <button
- enabled="false"
- follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
- label="Teleport"
- layout="topleft"
- left="0"
- name="teleport_btn"
- top="0"
- width="75" />
- <button
- enabled="false"
- follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
- label="Map"
- layout="topleft"
- name="show_on_map_btn"
- top="0"
- left_pad="5"
- width="85" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="Add"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="add_friend"
+ top="5"
+ width="55" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="IM"
+ layout="topleft"
+ name="im"
+ top="5"
+ left_pad="5"
+ width="40" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="19"
+ label="Call"
+ layout="topleft"
+ name="call"
+ left_pad="5"
+ top="5"
+ width="55" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="19"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ top="5"
+ left_pad="5"
+ width="50" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="Teleport"
+ layout="topleft"
+ name="teleport"
+ left_pad="5"
+ top="5"
+ width="90" />
</panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 786c39c5e9..b51d53a1b4 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -60,6 +60,7 @@ color="DkGray"
label="Nearby"
layout="topleft"
left="0"
+ help_topic="people_nearby_tab"
name="nearby_panel"
top="0"
width="313">
@@ -109,6 +110,7 @@ color="DkGray"
top="0"
label="Friends"
layout="topleft"
+ help_topic="people_friends_tab"
name="friends_panel"
width="313">
<accordion
@@ -214,6 +216,7 @@ color="DkGray"
label="Groups"
top="0"
layout="topleft"
+ help_topic="people_groups_tab"
name="groups_panel"
width="313">
<group_list
@@ -301,6 +304,7 @@ color="DkGray"
height="390"
label="Recent"
layout="topleft"
+ help_topic="people_recent_tab"
name="recent_panel"
width="313">
<avatar_list
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 9edd14ce49..7d5ae3d78a 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -31,8 +31,8 @@
<scroll_container
color="DkGray2"
opaque="true"
- follows="left|top|bottom"
- height="490"
+ follows="all"
+ height="470"
layout="topleft"
left="10"
top_pad="10"
@@ -41,14 +41,14 @@
width="313">
<panel
name="scroll_content_panel"
- follows="left|top|right|bottom"
+ follows="left|top"
min_height="300"
layout="topleft"
top="0"
background_visible="false"
- height="488"
+ height="470"
left="0"
- width="311">
+ width="295">
<texture_picker
enabled="false"
follows="left|top"
@@ -57,11 +57,11 @@
left="10"
name="pick_snapshot"
top="20"
- width="290" />
+ width="280" />
<text
follows="left|top|right"
height="20"
- width="291"
+ width="280"
layout="topleft"
font="SansSerifBig"
font.style="BOLD"
@@ -77,16 +77,16 @@
layout="topleft"
left="10"
name="pick_location"
- width="291"
+ width="280"
word_wrap="true"
value="[loading...]" />
<text
follows="left|top|right"
- height="400"
+ height="280"
layout="topleft"
left="10"
name="pick_desc"
- width="290"
+ width="280"
value="[description]"
word_wrap="true" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 1bd1953397..2869ec78f4 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- follows="left|top|right|bottom"
- height="555"
+ follows="all"
+ height="535"
label="Picks"
layout="topleft"
left="0"
name="panel_picks"
top="0"
width="313">
- <flat_list_view
+ <flat_list_view
color="DkGray2"
- follows="left|top|right|bottom"
+ follows="all"
height="465"
layout="topleft"
left="0"
@@ -18,14 +18,14 @@
opaque="true"
top="0"
width="313" />
- <panel
+ <panel
background_visible="true"
bevel_style="none"
enabled="false"
auto_resize="false"
follows="bottom"
left="0"
- height="23"
+ height="18"
label="bottom_panel"
layout="topleft"
name="edit_panel"
@@ -34,26 +34,24 @@
<button
enabled="false"
follows="bottom|left"
- font="SansSerifBigBold"
height="18"
image_selected="OptionsMenu_Press"
image_unselected="OptionsMenu_Off"
image_disabled="OptionsMenu_Disabled"
layout="topleft"
- left="10"
+ left="0"
name="gear_menu_btn"
picture_style="true"
top="5"
width="18" />
<button
follows="bottom|left"
- font="SansSerifBigBold"
height="18"
image_disabled="AddItem_Disabled"
image_selected="AddItem_Press"
image_unselected="AddItem_Off"
layout="topleft"
- left="35"
+ left_pad="15"
name="new_btn"
picture_style="true"
tool_tip="Create New Pick at Current Location"
@@ -61,7 +59,6 @@
width="18" />
<button
follows="bottom|right"
- font="SansSerifBigBold"
height="18"
image_disabled="TrashItem_Disabled"
image_selected="TrashItem_Press"
@@ -77,17 +74,56 @@
follows="bottom"
auto_resize="false"
layout="topleft"
- height="30"
+ height="19"
name="buttons_cucks"
width="313">
- <button
- enabled="false"
- follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
- label="Map"
- layout="topleft"
- name="show_on_map_btn"
- width="85" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="Add"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="add_friend"
+ top="5"
+ width="55" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="IM"
+ layout="topleft"
+ name="im"
+ top="5"
+ left_pad="5"
+ width="40" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="19"
+ label="Call"
+ layout="topleft"
+ name="call"
+ left_pad="5"
+ top="5"
+ width="55" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="19"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ top="5"
+ left_pad="5"
+ width="50" />
+ <button
+ follows="bottom|left"
+ height="19"
+ label="Teleport"
+ layout="topleft"
+ name="teleport"
+ left_pad="5"
+ top="5"
+ width="90" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index 696e0b3c33..1ea6e1149d 100644
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -41,6 +41,7 @@
height="326"
layout="topleft"
left="0"
+ help_topic="places_info_tab"
name="panel_place_info"
top="30"
visible="false" />
@@ -48,6 +49,7 @@
height="25"
layout="topleft"
left="0"
+ help_topic="places_button_tab"
name="button_panel"
top_pad="10"
width="313">
@@ -60,7 +62,7 @@
left="5"
name="teleport_btn"
top="0"
- width="70" />
+ width="77" />
<button
follows="bottom|left"
font="SansSerifSmallBold"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 06ecfdc995..f7d7d52b68 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -217,7 +217,7 @@ My Avatar:
width="237"
top_pad="0"/>
<check_box
- control_name="TapTapHoldtoRun"
+ control_name="AllowTapTapHoldRun"
height="20"
label="Tap-tap-hold to run"
layout="topleft"
@@ -225,36 +225,15 @@ My Avatar:
name="tap_tap_hold_to_run"
width="237"
top_pad="0"/>
- <!--menu_item_check
- label="Tap-Tap-Hold to Run"
- layout="topleft"
- name="Tap-Tap-Hold to Run">
- <menu_item_check.on_check
- function="Advanced.CheckAllowTapTapHoldRun"
- parameter="TapTapHoldRun" />
- <menu_item_check.on_click
- function="Advanced.ToggleAllowTapTapHoldRun" />
- </menu_item_check-->
<check_box
- control_name="EnableLipSync"
+ control_name="LipSyncEnabled"
height="20"
- label="Move my avatar's lips when speaking"
+ label="Move avatar lips when speaking"
layout="topleft"
left_delta="0"
name="enable_lip_sync"
width="237"
top_pad="0" />
- <!--menu_item_check
- label="Enable Lip Sync(Beta)"
- layout="topleft"
- name="Enable Lip Sync(Beta)">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="LipSyncEnabled" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="LipSyncEnabled" />
- </menu_item_check-->
<check_box
control_name="test"
height="20"
@@ -293,4 +272,4 @@ My Avatar:
</radio_group>
-</panel> \ No newline at end of file
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index ecfb0048a3..84fcf21623 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -48,41 +48,36 @@
length="1"
enabled="true"
name="640x480"
- value="640 x 480">
- 640x480
- </combo_box.item>
+ value="640 x 480"
+ label="640x480"/>
<combo_box.item
type="string"
length="1"
enabled="true"
name="800x600"
- value="800 x 600">
- 800x600
- </combo_box.item>
+ value="800 x 600"
+ label="800x600"/>
<combo_box.item
type="string"
length="1"
enabled="true"
name="720x480"
- value="720 x 480">
- 720x480 (NTSC)
- </combo_box.item>
+ value="720 x 480"
+ label="720x480 (NTSC)"/>
<combo_box.item
type="string"
length="1"
enabled="true"
name="768x576"
- value="768 x 576">
- 768x576 (PAL)
- </combo_box.item>
+ value="768 x 576"
+ label="768x576 (PAL)"/>
<combo_box.item
type="string"
length="1"
enabled="true"
name="1024x768"
- value="1024 x 768">
- 1024x768
- </combo_box.item>
+ value="1024 x 768"
+ label="1024x768"/>
<combo_box.commit_callback
function="Pref.setControlFalse"
parameter="FullScreenAutoDetectAspectRatio" />
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 9cf699ad46..ba933683e3 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="560"
+ height="535"
label="Profile"
layout="topleft"
left="0"
@@ -10,7 +10,8 @@
width="313">
<string
name="CaptionTextAcctInfo">
- [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ [ACCTTYPE]
+[PAYMENTINFO] [AGEVERIFICATION]
</string>
<string
name="payment_update_link_url">
@@ -26,33 +27,31 @@
<string
name="no_partner_text"
value="None" />
- <scroll_container
+ <scroll_container
color="DkGray2"
- follows="left|top|right|bottom"
- height="500"
+ follows="all"
+ height="485"
min_height="300"
layout="topleft"
name="profile_scroll"
reserve_scroll_corner="true"
opaque="true"
- top="0"
- width="313">
- <panel
- name="scroll_content_panel"
- follows="left|top|right"
- layout="topleft"
- top="0"
- left="0"
- width="300"
- height="700">
+ top="0">
+ <panel
+ name="scroll_content_panel"
+ follows="left|top|right"
+ layout="topleft"
+ top="0"
+ left="0"
+ width="313">
<panel
- follows="left|top"
- height="117"
- layout="topleft"
- left="10"
- name="second_life_image_panel"
- top="10"
- width="285">
+ follows="left|top"
+ height="117"
+ layout="topleft"
+ left="10"
+ name="second_life_image_panel"
+ top="0"
+ width="285">
<texture_picker
allow_no_texture="true"
default_image_name="None"
@@ -66,7 +65,6 @@
width="102" />
<text
follows="left|top|right"
- font="SansSerifSmall"
font.style="BOLD"
height="15"
layout="topleft"
@@ -81,9 +79,9 @@
height="90"
layout="topleft"
name="sl_description_edit"
- width="170"
+ width="173"
expanded_bg_visible="true"
- expanded_bg_color="black">
+ expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</expandable_text>
</panel>
@@ -107,7 +105,6 @@
width="102" />
<text
follows="left|top|right"
- font="SansSerifSmall"
font.style="BOLD"
height="15"
layout="topleft"
@@ -116,7 +113,7 @@
text_color="white"
top_delta="0"
value="Real World:"
- width="175" />
+ width="173" />
<expandable_text
follows="left|top|right"
height="90"
@@ -124,7 +121,7 @@
name="fl_description_edit"
width="170"
expanded_bg_visible="true"
- expanded_bg_color="black">
+ expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</expandable_text>
</panel>
@@ -138,7 +135,7 @@
left="10"
name="me_homepage_text"
text_color="white"
- top_pad="10"
+ top_pad="0"
width="280">
Homepage:
</text>
@@ -148,19 +145,21 @@
layout="topleft"
left="10"
name="homepage_edit"
+ top_pad="0"
value="http://librarianavengers.org"
- width="280"
- word_wrap="false" />
+ width="290"
+ word_wrap="false"
+ use_elipsis="true"
+ />
<text
follows="left|top"
- font="SansSerifSmall"
font.style="BOLD"
- height="15"
+ height="10"
layout="topleft"
left="10"
name="title_member_text"
text_color="white"
- top_pad="20"
+ top_pad="10"
value="Member Since:"
width="280" />
<text
@@ -169,20 +168,18 @@
layout="topleft"
left="10"
name="register_date"
- top_pad="5"
value="05/31/1976"
width="280"
word_wrap="true" />
<text
follows="left|top"
- font="SansSerifSmall"
font.style="BOLD"
height="15"
layout="topleft"
left="10"
name="title_acc_status_text"
text_color="white"
- top_pad="15"
+ top_pad="10"
value="Account Status:"
width="280" />
<!-- <text
@@ -198,24 +195,23 @@
width="100"/> -->
<text
follows="left|top"
- height="15"
+ height="20"
layout="topleft"
left="10"
name="acc_status_text"
- top_pad="5"
+ top_pad="0"
value="Resident. No payment info on file."
- width="280"
+ width="295"
word_wrap="true" />
<text
follows="left|top"
- font="SansSerifSmall"
font.style="BOLD"
height="15"
layout="topleft"
left="10"
name="title_partner_text"
text_color="white"
- top_pad="15"
+ top_pad="10"
value="Partner:"
width="280" />
<panel
@@ -224,11 +220,11 @@
layout="topleft"
left="10"
name="partner_data_panel"
- top_pad="5"
+ top_pad="0"
width="280">
<text
follows="left|top"
- height="15"
+ height="10"
layout="topleft"
left="0"
name="partner_text"
@@ -239,14 +235,13 @@
</panel>
<text
follows="left|top"
- font="SansSerifSmall"
font.style="BOLD"
height="15"
layout="topleft"
left="10"
name="title_groups_text"
text_color="white"
- top_pad="15"
+ top_pad="10"
value="Groups:"
width="280" />
<text
@@ -255,91 +250,93 @@
layout="topleft"
left="10"
name="sl_groups"
- top_pad="5"
- width="280"
- word_wrap="true">
+ top_pad="0"
+ width="290"
+ word_wrap="true"
+ use_elipsis="true">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</text>
</panel>
- </scroll_container>
-
- <panel
+ </scroll_container>
+ <panel
follows="bottom|left"
layout="topleft"
left="0"
name="profile_buttons_panel"
- top_pad="0"
- height="25"
- width="313">
+ top_pad="2"
+ bottom="10"
+ height="19">
<button
follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
- label="Add Friend"
+ height="19"
+ label="Add"
layout="topleft"
left="0"
mouse_opaque="false"
name="add_friend"
- top="0"
- width="90" />
+ top="5"
+ width="55" />
<button
follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
+ height="19"
label="IM"
layout="topleft"
name="im"
- top="0"
- left_pad="0"
+ top="5"
+ left_pad="5"
width="40" />
<button
enabled="false"
follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
+ height="19"
label="Call"
layout="topleft"
name="call"
- left_pad="0"
- top="0"
+ left_pad="5"
+ top="5"
+ width="55" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="19"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ top="5"
+ left_pad="5"
width="50" />
<button
follows="bottom|left"
- font="SansSerifSmallBold"
- height="25"
+ height="19"
label="Teleport"
layout="topleft"
name="teleport"
- left_pad="0"
- top="0"
- width="75" />
- </panel>
- <panel
+ left_pad="5"
+ top="5"
+ width="90" />
+ </panel>
+ <panel
follows="bottom|left"
layout="topleft"
left="0"
name="profile_me_buttons_panel"
- top_pad="0"
+ top_pad="-3"
visible="false"
- height="25"
- width="313">
+ height="19">
<button
- follows="bottom|left"
- height="23"
+ follows="bottom|right"
+ height="19"
+ left="10"
label="Edit Profile"
- layout="topleft"
- left="0"
name="edit_profile_btn"
- top="0"
width="130" />
<button
- follows="bottom|left"
- height="23"
+ follows="bottom|right"
+ height="19"
label="Edit Appearance"
- layout="topleft"
- left_pad="5"
+ left_pad="10"
name="edit_appearance_btn"
- top="0"
+ right="-10"
width="130" />
- </panel>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
index 606535115d..8a48574440 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -5,7 +5,6 @@
height="570"
layout="topleft"
min_height="350"
- min_width="240"
name="panel_target_profile"
width="333">
<string
@@ -16,65 +15,69 @@
name="status_offline">
Offline
</string>
+ <button
+ follows="top|right"
+ height="23"
+ image_overlay="BackArrow_Off"
+ layout="topleft"
+ name="back"
+ picture_style="true"
+ left="10"
+ tab_stop="false"
+ top="2"
+ width="23" />
<text
follows="top|left|right"
font="SansSerifHugeBold"
- height="20"
+ height="26"
layout="topleft"
- left="10"
+ left_pad="10"
name="user_name"
text_color="white"
top="0"
value="(Loading...)"
- width="250" />
+ use_elipsis="true"
+ width="275" />
<text
follows="top|left"
- height="16"
+ height="13"
layout="topleft"
- left="10"
+ left="45"
name="status"
text_color="LtGray_50"
- top_pad="5"
value="Online"
- width="100" />
- <button
- follows="top|right"
- height="25"
- image_overlay="BackArrow_Off"
- layout="topleft"
- name="back"
- picture_style="true"
- right="-10"
- tab_stop="false"
- top="0"
- width="25" />
+ width="150" />
<tab_container
- follows="left|top|right|bottom"
- height="560"
+ follows="all"
+ height="535"
layout="topleft"
left="10"
name="tabs"
- tab_min_width="75"
+ tab_min_width="95"
+ tab_height="30"
tab_position="top"
- top_pad="15"
- width="285">
+ top_pad="10"
+ width="313">
<panel
class="panel_profile"
filename="panel_profile.xml"
label="Profile"
layout="topleft"
+ help_topic="profile_profile_tab"
name="panel_profile" />
<panel
class="panel_picks"
filename="panel_picks.xml"
label="Picks"
layout="topleft"
+ help_topic="profile_picks_tab"
name="panel_picks" />
<panel
class="panel_notes"
filename="panel_notes.xml"
label="Notes &amp; Privacy"
layout="topleft"
+ help_topic="profile_notes_tab"
name="panel_notes" />
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml
index 9abaf29f57..a312e4cf13 100644
--- a/indra/newview/skins/default/xui/en/panel_progress.xml
+++ b/indra/newview/skins/default/xui/en/panel_progress.xml
@@ -62,7 +62,7 @@
<text
follows="left|right|top"
font="SansSerifHuge"
- font_shadow="hard"
+ font_shadow="none"
halign="left"
height="20"
layout="topleft"
@@ -74,7 +74,7 @@
<text
follows="left|right|top"
font="SansSerif"
- font_shadow="hard"
+ font_shadow="none"
halign="left"
height="20"
layout="topleft"
@@ -96,7 +96,7 @@
<text
follows="left|right|top|bottom"
font="SansSerifLarge"
- font_shadow="hard"
+ font_shadow="none"
halign="left"
height="100"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
index 01fbc81c32..b3147f5e6b 100644
--- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
@@ -2,13 +2,13 @@
<panel
border="true"
follows="top|left"
- height="350"
+ height="320"
label="Covenant"
layout="topleft"
left="0"
name="Covenant"
top="320"
- width="280">
+ width="480">
<panel.string
name="can_resell">
Purchased land in this region may be resold.
@@ -45,14 +45,14 @@
mouse_opaque="false"
name="estate_name_lbl"
top_pad="5"
- width="75">
+ width="100">
Name:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="estate_name_text"
top_delta="0"
@@ -67,41 +67,40 @@
mouse_opaque="false"
name="estate_owner_lbl"
top_pad="5"
- width="75">
+ width="100">
Owner:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="estate_owner_text"
top_delta="0"
width="150">
(none)
</text>
-
- <text
+ <text
follows="left|top"
- height="20"
+ height="20"
layout="topleft"
left="10"
- mouse_opaque="false"
- name="estate_cov_lbl"
+ mouse_opaque="false"
+ name="estate_cov_lbl"
top_pad="5"
- width="75">
+ width="100">
Covenant:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="covenant_timestamp_text"
top_delta="0"
- width="167">
+ width="308">
Last Modified Wed Dec 31 16:00:00 1969
</text>
<button
@@ -120,12 +119,12 @@
follows="left|top"
height="100"
layout="topleft"
- left="80"
+ left="110"
max_length="65535"
name="covenant_editor"
top_delta="30"
handle_edit_keys_directly="true"
- width="193"
+ width="340"
word_wrap="true">
There is no Covenant provided for this Estate.
</text_editor>
@@ -135,7 +134,7 @@
height="18"
label="Reset"
layout="topleft"
- left_delta="75"
+ left_delta="250"
name="reset_covenant"
top_pad="5"
width="90" />
@@ -144,12 +143,11 @@
follows="left|top"
height="20"
layout="topleft"
- left="85"
+ left="120"
name="covenant_help_text"
top_pad="10"
- width="190">
- Changes to the covenant will show
-on all parcels in the estate.
+ width="460">
+ Changes to the covenant will show on all parcels in the estate.
</text>
<text
follows="left|top"
@@ -157,10 +155,10 @@ on all parcels in the estate.
layout="topleft"
left_delta="0"
name="covenant_instructions"
- top_pad="15"
- width="190">
+ top_pad="5"
+ width="465">
Drag and drop a notecard to change
-the Covenant for this Estate.
+ the Covenant for this Estate.
</text>
<text
@@ -171,7 +169,7 @@ the Covenant for this Estate.
left="5"
mouse_opaque="false"
name="region_section_lbl"
- top_pad="10"
+ top_pad="5"
width="100">
Region
</text>
@@ -183,19 +181,19 @@ the Covenant for this Estate.
mouse_opaque="false"
name="region_name_lbl"
top_pad="5"
- width="75">
+ width="100">
Name:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="region_name_text"
top_delta="0"
width="150">
- leyla
+ Erica
</text>
<text
follows="left|top"
@@ -205,14 +203,14 @@ the Covenant for this Estate.
mouse_opaque="false"
name="region_landtype_lbl"
top_pad="5"
- width="75">
+ width="100">
Type:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="region_landtype_text"
top_delta="0"
@@ -227,14 +225,14 @@ the Covenant for this Estate.
mouse_opaque="false"
name="region_maturity_lbl"
top_pad="5"
- width="75">
+ width="100">
Rating:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="region_maturity_text"
top_delta="0"
@@ -249,20 +247,19 @@ the Covenant for this Estate.
mouse_opaque="false"
name="resellable_lbl"
top_pad="5"
- width="75">
+ width="100">
Resale:
</text>
<text
follows="left|top"
height="20"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="resellable_clause"
top_delta="0"
- width="190">
- Land in this region may not be
-resold.
+ width="330">
+ Land in this region may not be resold.
</text>
<text
follows="left|top"
@@ -271,21 +268,20 @@ resold.
left="10"
mouse_opaque="false"
name="changeable_lbl"
- top_pad="10"
- width="75">
+ top_pad="5"
+ width="100">
Subdivide:
</text>
<text
follows="left|top"
height="30"
layout="topleft"
- left_pad="0"
+ left_pad="10"
mouse_opaque="false"
name="changeable_clause"
top_delta="0"
- width="190">
- Land in this region may not be
-joined/subdivided.
+ width="330">
+ Land in this region may not be joined/subdivided.
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_debug.xml b/indra/newview/skins/default/xui/en/panel_region_debug.xml
index 54664bb6b9..78e5678455 100644
--- a/indra/newview/skins/default/xui/en/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_debug.xml
@@ -8,7 +8,7 @@
left="0"
name="Debug"
top="320"
- width="280">
+ width="480">
<text
follows="left|top"
font="SansSerif"
@@ -28,7 +28,7 @@
left_delta="50"
name="region_text"
top_delta="0"
- width="220">
+ width="400">
unknown
</text>
<check_box
@@ -91,15 +91,16 @@
<button
enabled="false"
follows="left|top"
- height="20"
font="SansSerifSmall"
+ height="20"
label="Apply"
layout="topleft"
left="60"
name="apply_btn"
top="100"
- width="80" />
+ width="100" />
<text
+
follows="left|top"
height="20"
layout="topleft"
@@ -110,16 +111,18 @@
Object Return
</text>
<text
+
follows="left|top"
height="20"
layout="topleft"
- left="20"
+ left="30"
name="resident_text_lbl"
top="175"
width="60">
Resident:
</text>
<line_editor
+
border_style="line"
border_thickness="1"
enabled="false"
@@ -130,7 +133,7 @@
mouse_opaque="false"
name="target_avatar_name"
top_delta="-2"
- width="115">
+ width="180">
(none)
</line_editor>
<button
@@ -143,17 +146,17 @@
name="choose_avatar_btn"
top_delta="0"
width="70" />
- <text
+ <text
follows="left|top"
height="20"
layout="topleft"
- left="20"
+ left="30"
name="options_text_lbl"
top="198"
width="60">
Options:
</text>
- <check_box
+ <check_box
height="20"
label="With scripts"
layout="topleft"
@@ -192,15 +195,15 @@
width="80" />
<button
follows="left|top"
- height="20"
font="SansSerifSmall"
+ height="20"
label="Get Top Colliders..."
layout="topleft"
left="10"
name="top_colliders_btn"
tool_tip="List of objects experiencing the most potential collisions"
top="313"
- width="130" />
+ width="150" />
<button
follows="left|top"
font="SansSerifSmall"
@@ -213,15 +216,15 @@
width="18" />
<button
follows="left|top"
- height="20"
font="SansSerifSmall"
+ height="20"
label="Get Top Scripts..."
layout="topleft"
left="10"
name="top_scripts_btn"
tool_tip="List of objects spending the most time running scripts"
top_pad="5"
- width="130" />
+ width="150" />
<button
follows="left|top"
font="SansSerifSmall"
@@ -234,15 +237,15 @@
width="18" />
<button
follows="left|top"
- height="20"
font="SansSerifSmall"
+ height="20"
label="Restart Region"
layout="topleft"
left="10"
name="restart_btn"
tool_tip="Give 2 minute countdown and restart region"
top_pad="5"
- width="110" />
+ width="130" />
<button
follows="left|top"
font="SansSerifSmall"
@@ -255,13 +258,13 @@
width="18" />
<button
follows="left|top"
- height="20"
font="SansSerifSmall"
+ height="20"
label="Delay Restart"
layout="topleft"
left="10"
name="cancel_restart_btn"
tool_tip="Delay region restart by one hour"
top_pad="5"
- width="110" />
+ width="130" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
index 6e837bcfee..afcefcbd3b 100644
--- a/indra/newview/skins/default/xui/en/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
@@ -2,474 +2,518 @@
<panel
border="false"
follows="top|left"
- height="512"
- top="0"
- left="0"
- name="EstateWrapper"
+ height="320"
label="Estate"
layout="topleft"
- width="313">
- <panel
- follows="top|left"
- height="950"
- label="Estate"
+ left="0"
+ name="Estate"
+ top="320"
+ width="480">
+ <panel.string
+ name="email_unsupported">
+ Feature unsupported
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="32"
layout="topleft"
- name="Estate"
+ left="10"
+ name="estate_help_text"
+ top="14"
width="313">
- <panel.string
- name="email_unsupported">
- Feature unsupported
- </panel.string>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="32"
- layout="topleft"
- left="0"
- name="estate_help_text"
- top="5"
- width="313">
Changes to settings on this tab will affect all
- regions in the estate.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
-
- layout="topleft"
- name="estate_text"
- top_pad="5"
- width="313">
+regions in the estate.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_text"
+ top_pad="2"
+ width="80">
Estate:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- layout="topleft"
- name="estate_name"
- top_pad="5"
- width="313">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_name"
+ top_delta="16"
+ width="150">
(unknown)
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- layout="topleft"
- left_delta="0"
- name="owner_text"
- top_pad="5"
- width="313">
- Estate Owner:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- layout="topleft"
- name="estate_owner"
- top_pad="5"
- width="313">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="owner_text"
+ top_pad="2"
+ width="80">
+ Estate owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_owner"
+ top_delta="16"
+ width="150">
(unknown)
- </text>
- <check_box
- height="23"
- label="Use Global Time"
- layout="topleft"
- left="12"
- name="use_global_time_check"
- top="102"
- width="200" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="use_global_time_help"
- top_delta="2"
- width="18" />
- <check_box
- height="23"
- label="Fixed Sun"
- layout="topleft"
- left="12"
- name="fixed_sun_check"
- top_pad="10"
- width="100" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="120"
- name="fixed_sun_help"
- top_delta="2"
- width="18" />
- <icon
- height="23"
- image_name="icon_day_cycle.tga"
- layout="topleft"
- left="47"
- name="daycycle"
- top_pad="10"
- width="165" />
- <slider
- follows="left|top"
- height="23"
- increment="0.001"
- label="Phase"
- layout="topleft"
- left="12"
- max_val="30"
- min_val="6"
- name="sun_hour_slider"
- show_text="false"
- top_pad="10"
- width="200" />
- <check_box
- height="23"
- label="Allow Public Access"
- layout="topleft"
- left_delta="0"
- name="externally_visible_check"
- top_pad="10" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="externally_visible_help"
- top_delta="2"
- width="18" />
- <text
- type="string"
- length="1"
- follows="top|left"
- height="16"
- layout="topleft"
- left="32"
- name="Only Allow"
- top_pad="5"
- width="278">
+ </text>
+ <view_border
+ bevel_style="in"
+ follows="top|left"
+ height="290"
+ layout="topleft"
+ left_delta="-4"
+ top_pad="5"
+ width="250" />
+ <check_box
+ height="20"
+ label="Use Global Time"
+ layout="topleft"
+ left="12"
+ name="use_global_time_check"
+ top="132"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="use_global_time_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Fixed Sun"
+ layout="topleft"
+ left="12"
+ name="fixed_sun_check"
+ top="152"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="120"
+ name="fixed_sun_help"
+ top_delta="2"
+ width="18" />
+ <icon
+ height="20"
+ image_name="icon_day_cycle.tga"
+ layout="topleft"
+ left="47"
+ name="daycycle"
+ top="177"
+ width="165" />
+ <slider
+ follows="left|top"
+ height="20"
+ increment="0.001"
+ label="Phase"
+ layout="topleft"
+ left="12"
+ max_val="30"
+ min_val="6"
+ name="sun_hour_slider"
+ show_text="false"
+ top="202"
+ width="200" />
+ <check_box
+ height="20"
+ label="Allow Public Access"
+ layout="topleft"
+ left_delta="0"
+ name="externally_visible_check"
+ top_pad="6"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="externally_visible_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="32"
+ name="Only Allow"
+ top="250"
+ width="278">
Restrict Access To:
- </text>
- <check_box
- follows="top|left"
- height="16"
- label="Residents with payment info on file"
- layout="topleft"
- left_delta="0"
- name="limit_payment"
- tool_tip="Ban unidentified residents."
- top_pad="2"
- width="278" />
- <check_box
- follows="top|left"
- height="16"
- label="Age-verified adults"
- layout="topleft"
- left_delta="0"
- name="limit_age_verified"
- tool_tip="Ban residents who have not verified their age. See the [SUPPORT_SITE] for more information."
- top_pad="2"
- width="278" />
- <check_box
- height="23"
- label="Allow Voice Chat"
- layout="topleft"
- left="12"
- name="voice_chat_check"
- top_pad="5"
- width="200" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="voice_chat_help"
- top_delta="2"
- width="18" />
- <check_box
- height="23"
- label="Allow Direct Teleport"
- layout="topleft"
- left="12"
- name="allow_direct_teleport"
- top_pad="0"
- width="80" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="140"
- name="allow_direct_teleport_help"
- top_delta="2"
- width="18" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="10"
- name="abuse_email_text"
- top_pad="5"
- width="313">
+ </text>
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Residents with payment info on file"
+ layout="topleft"
+ left_delta="0"
+ name="limit_payment"
+ tool_tip="Ban unidentified residents."
+ top_pad="2"
+ width="278" />
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Age-verified adults"
+ layout="topleft"
+ left_delta="0"
+ name="limit_age_verified"
+ tool_tip="Ban residents who have not verified their age. See the [SUPPORT_SITE] for more information."
+ top_pad="2"
+ width="278" />
+ <check_box
+ height="20"
+ label="Allow Voice Chat"
+ layout="topleft"
+ left="12"
+ name="voice_chat_check"
+ top="304"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="voice_chat_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Direct Teleport"
+ layout="topleft"
+ left="12"
+ name="allow_direct_teleport"
+ top_pad="4"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="140"
+ name="allow_direct_teleport_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="abuse_email_text"
+ top_pad="5"
+ width="180">
Abuse email address:
- </text>
- <line_editor
- follows="top|left"
- height="19"
- layout="topleft"
- left="15"
- name="abuse_email_address"
- top_pad="0"
- width="250" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="12"
- name="abuse_email_address_help"
- top_delta="0"
- width="18" />
- <button
- enabled="false"
- follows="left|top"
- height="23"
- label="Apply"
- layout="topleft"
- name="apply_btn"
- right="250"
- top_pad="4"
- width="90" />
- <button
- follows="left|top"
- height="23"
- label="Send Message To Estate..."
- layout="topleft"
- left="8"
- name="message_estate_btn"
- top_pad="5"
- width="250" />
- <button
- follows="left|top"
- height="23"
- label="Kick User from Estate..."
- layout="topleft"
- left="8"
- name="kick_user_from_estate_btn"
- top_pad="5"
- width="250" />
- <text
- type="string"
- length="1"
- top="490"
- follows="left|top"
- height="23"
- layout="topleft"
- name="estate_manager_label"
- left="8"
- width="200">
+ </text>
+ <line_editor
+ follows="top|left"
+ height="19"
+ layout="topleft"
+ left="15"
+ name="abuse_email_address"
+ top_pad="5"
+ width="205" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="12"
+ name="abuse_email_address_help"
+ top_dekta="0"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ name="apply_btn"
+ right="250"
+ top_pad="4"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send Message To Estate..."
+ layout="topleft"
+ left="8"
+ name="message_estate_btn"
+ top_pad="5"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Kick User from Estate..."
+ layout="topleft"
+ left="8"
+ name="kick_user_from_estate_btn"
+ top_pad="5"
+ width="250" />
+
+ <text
+ type="string"
+ length="1"
+ bottom="34"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ name="estate_manager_label"
+ right="470"
+ width="200">
Estate Managers:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="estate_manager_help"
- top_delta="-1"
- width="18" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left="8"
- multi_select="true"
- name="estate_manager_name_list"
- top_pad="0"
- width="300" />
- <button
- follows="left|top"
- height="23"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_estate_manager_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="23"
- label="Remove..."
- layout="topleft"
- name="remove_estate_manager_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="8"
- name="allow_resident_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="estate_manager_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="estate_manager_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_estate_manager_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_estate_manager_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="allow_resident_label"
+ top_pad="5"
+ width="200">
Allowed Residents:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="allow_resident_help"
- top_delta="-1"
- width="18" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left="8"
- multi_select="true"
- name="allowed_avatar_name_list"
- top_pad="0"
- width="300" />
- <button
- follows="left|top"
- height="23"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_allowed_avatar_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="23"
- label="Remove..."
- layout="topleft"
- name="remove_allowed_avatar_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="8"
- name="allow_group_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="allow_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_avatar_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_avatar_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_allowed_avatar_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="allow_group_label"
+ top_pad="5"
+ width="200">
Allowed Groups:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="allow_group_help"
- top_delta="-1"
- width="18" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left="8"
- multi_select="true"
- name="allowed_group_name_list"
- top_pad="0"
- width="300" />
- <button
- follows="left|top"
- height="23"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_allowed_group_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="23"
- label="Remove..."
- layout="topleft"
- name="remove_allowed_group_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="8"
- name="ban_resident_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="allow_group_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_group_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_group_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_allowed_group_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="ban_resident_label"
+ top_pad="5"
+ width="200">
Banned Residents:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="ban_resident_help"
- top_delta="-1"
- width="18" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left="8"
- multi_select="true"
- name="banned_avatar_name_list"
- top_pad="0"
- width="300" />
- <button
- follows="left|top"
- height="23"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_banned_avatar_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="23"
- label="Remove..."
- layout="topleft"
- name="remove_banned_avatar_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- </panel>
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="ban_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="banned_avatar_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_banned_avatar_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_banned_avatar_btn"
+ top_delta="0"
+ width="90" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml
index 9b9c62dbf9..160ae96fc4 100644
--- a/indra/newview/skins/default/xui/en/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_general.xml
@@ -2,13 +2,13 @@
<panel
border="true"
follows="top|left"
- height="360"
+ height="320"
label="Region"
layout="topleft"
left="0"
name="General"
- top="360"
- width="280">
+ top="320"
+ width="480">
<text
follows="left|top"
font="SansSerif"
@@ -28,7 +28,7 @@
left_delta="50"
name="region_text"
top_delta="0"
- width="200">
+ width="400">
unknown
</text>
<text
@@ -279,7 +279,7 @@
label="PG"
name="PG"
value="13" />
- </combo_box>
+ </combo_box>
<button
follows="left|top"
font="SansSerifSmall"
@@ -300,10 +300,10 @@
name="apply_btn"
top="320"
width="100">
- <button.commit_callback
+ <button.commit_callback
function="RegionInfo.Cancel" />
</button>
- <button
+ <button
follows="left|top"
height="20"
label="Teleport Home One User..."
@@ -335,8 +335,8 @@
height="20"
label="Manage Telehub..."
layout="topleft"
- left_delta="0"
+ left="250"
name="manage_telehub_btn"
- top_pad="20"
- width="150" />
+ top="70"
+ width="150" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_general_layout.xml b/indra/newview/skins/default/xui/en/panel_region_general_layout.xml
new file mode 100644
index 0000000000..9b9c62dbf9
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_general_layout.xml
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="360"
+ label="Region"
+ layout="topleft"
+ left="0"
+ name="General"
+ top="360"
+ width="280">
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
+ Region:
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="200">
+ unknown
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="version_channel_text_lbl"
+ top="30"
+ width="100">
+ Version:
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="version_channel_text"
+ top_delta="0"
+ width="200">
+ unknown
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_type_lbl"
+ top="50"
+ width="100">
+ Type:
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_type"
+ top_delta="0"
+ width="200">
+ unknown
+ </text>
+ <check_box
+ height="20"
+ label="Block Terraform"
+ layout="topleft"
+ left="10"
+ name="block_terraform_check"
+ top="70"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="terraform_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Block Fly"
+ layout="topleft"
+ left="10"
+ name="block_fly_check"
+ top="90"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="fly_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Damage"
+ layout="topleft"
+ left="10"
+ name="allow_damage_check"
+ top="110"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="damage_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Restrict Pushing"
+ layout="topleft"
+ left="10"
+ name="restrict_pushobject"
+ top="130"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="restrict_pushobject_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Land Resell"
+ layout="topleft"
+ left="10"
+ name="allow_land_resell_check"
+ top="160"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="land_resell_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Land Join/Divide"
+ layout="topleft"
+ left="10"
+ name="allow_parcel_changes_check"
+ top="180"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="parcel_changes_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Block Land Show in Search"
+ layout="topleft"
+ left="10"
+ name="block_parcel_search_check"
+ tool_tip="Let people see this region and its parcels in search results"
+ top="200"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="parcel_search_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="1"
+ label="Agent Limit"
+ label_width="97"
+ layout="topleft"
+ left="10"
+ max_val="100"
+ min_val="1"
+ name="agent_limit_spin"
+ top="240"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="25"
+ name="agent_limit_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Object Bonus"
+ label_width="97"
+ layout="topleft"
+ left="10"
+ max_val="10"
+ min_val="1"
+ name="object_bonus_spin"
+ top="260"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="25"
+ name="object_bonus_help"
+ top_delta="2"
+ width="18" />
+ <text
+ follows="left|top"
+ height="20"
+ label="Maturity"
+ layout="topleft"
+ left="10"
+ name="access_text"
+ top="290"
+ width="100">
+ Rating:
+ </text>
+ <combo_box
+ height="20"
+ label="Mature"
+ layout="topleft"
+ left_delta="100"
+ name="access_combo"
+ top_delta="0"
+ width="85">
+ <combo_box.item
+ label="Adult"
+ name="Adult"
+ value="42" />
+ <combo_box.item
+ label="Mature"
+ name="Mature"
+ value="21" />
+ <combo_box.item
+ label="PG"
+ name="PG"
+ value="13" />
+ </combo_box>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="access_help"
+ top_delta="2"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="108"
+ name="apply_btn"
+ top="320"
+ width="100">
+ <button.commit_callback
+ function="RegionInfo.Cancel" />
+ </button>
+ <button
+ follows="left|top"
+ height="20"
+ label="Teleport Home One User..."
+ layout="topleft"
+ left="10"
+ name="kick_btn"
+ top_pad="10"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Teleport Home All Users..."
+ layout="topleft"
+ left_delta="0"
+ name="kick_all_btn"
+ top_pad="3"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send Message To Region..."
+ layout="topleft"
+ left_delta="0"
+ name="im_btn"
+ top_pad="20"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Manage Telehub..."
+ layout="topleft"
+ left_delta="0"
+ name="manage_telehub_btn"
+ top_pad="20"
+ width="150" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_terrain.xml b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
index a78a1ea98c..148d9500bb 100644
--- a/indra/newview/skins/default/xui/en/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
@@ -2,13 +2,13 @@
<panel
border="true"
follows="top|left"
- height="340"
+ height="320"
label="Terrain"
layout="topleft"
left="0"
name="Terrain"
top="320"
- width="280">
+ width="480">
<text
follows="left|top"
font="SansSerif"
@@ -28,7 +28,7 @@
left_delta="50"
name="region_text"
top_delta="0"
- width="200">
+ width="400">
unknown
</text>
<spinner
@@ -101,9 +101,9 @@
height="20"
label="Use Estate Sun"
layout="topleft"
- left="15"
+ left="250"
name="use_estate_sun_check"
- top="105"
+ top="35"
width="100" />
<button
follows="left|top"
@@ -111,7 +111,7 @@
height="18"
label="?"
layout="topleft"
- left_pad="85"
+ left_pad="70"
name="use_estate_sun_help"
top_delta="2"
width="18" />
@@ -119,9 +119,9 @@
height="20"
label="Fixed Sun"
layout="topleft"
- left="15"
+ left="250"
name="fixed_sun_check"
- top_pad="0"
+ top="55"
width="100" />
<button
follows="left|top"
@@ -129,7 +129,7 @@
height="18"
label="?"
layout="topleft"
- left_pad="85"
+ left_pad="70"
name="fixed_sun_help"
top_delta="2"
width="18" />
@@ -137,9 +137,9 @@
height="20"
image_name="icon_day_cycle.tga"
layout="topleft"
- left="50"
+ left="285"
name="daycycle"
- top_delta="25"
+ top="80"
width="165" />
<slider
follows="left|top"
@@ -147,12 +147,12 @@
increment="0.001"
label="Phase"
layout="topleft"
- left="15"
+ left="250"
max_val="30"
min_val="6"
name="sun_hour_slider"
show_text="false"
- top_delta="30"
+ top="105"
width="200" />
<button
enabled="false"
@@ -160,18 +160,18 @@
height="20"
label="Apply"
layout="topleft"
- left="130"
+ left="350"
name="apply_btn"
- top_delta="30"
+ top="135"
width="90" />
<view_border
bevel_style="none"
follows="top|left"
- height="210"
+ height="130"
layout="topleft"
left="8"
top="30"
- width="240" />
+ width="460" />
<button
follows="left|top"
height="20"
@@ -180,7 +180,7 @@
left_delta="2"
name="download_raw_btn"
tool_tip="Available only to estate owners, not managers"
- top_pad="15"
+ top_pad="60"
width="170" />
<button
follows="left|top"
@@ -200,7 +200,7 @@
left="10"
name="upload_raw_btn"
tool_tip="Available only to estate owners, not managers"
- top_pad="0"
+ top="243"
width="170" />
<button
follows="left|top"
@@ -220,7 +220,7 @@
left="10"
name="bake_terrain_btn"
tool_tip="Set current terrain as mid-point for raise/lower limits"
- top_pad="15"
+ top="283"
width="100" />
<button
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_region_texture.xml b/indra/newview/skins/default/xui/en/panel_region_texture.xml
index 404e1b8907..5089064c07 100644
--- a/indra/newview/skins/default/xui/en/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_texture.xml
@@ -2,231 +2,235 @@
<panel
border="true"
follows="top|left"
- height="512"
- name="TextureWrapper"
+ height="320"
label="Ground Textures"
layout="topleft"
- width="280">
- <scroll_container
- follows="top|left|right|bottom"
- height="508"
- name="container1"
- layout="topleft"
- width="280">
- <panel
- follows="top|left"
- height="575"
- label="Ground Textures"
+ left="0"
+ name="Textures"
+ top="320"
+ width="480">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
layout="topleft"
- name="Textures"
- width="258">
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="10"
- name="region_text_lbl"
- top="10"
- width="100">
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
Region:
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="50"
- name="region_text"
- top_delta="0"
- width="200">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="400">
unknown
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="detail_texture_text"
- top="36"
- width="300">
- Terrain Textures
- (requires 512x512, 24 bit .tga files)
- </text>
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_delta="0"
- name="texture_detail_0"
- top_delta="30"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_pad="10"
- name="texture_detail_1"
- top_delta="0"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left="10"
- name="texture_detail_2"
- top_delta="105"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_pad="10"
- name="texture_detail_3"
- top_delta="0"
- width="100" />
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl"
- top="157"
- width="65">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="detail_texture_text"
+ top="36"
+ width="300">
+ Terrain Textures (requires 512x512, 24 bit .tga files)
+ </text>
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_delta="0"
+ name="texture_detail_0"
+ top_delta="20"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_1"
+ top_delta="0"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_2"
+ top_delta="0"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_3"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl"
+ top="146"
+ width="65">
1 (Low)
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="45"
- name="height_text_lbl2"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="45"
+ name="height_text_lbl2"
+ top_delta="0"
+ width="100">
2
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl3"
- top_delta="105"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl3"
+ top_delta="0"
+ width="100">
3
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl4"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl4"
+ top_delta="0"
+ width="100">
4 (High)
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl5"
- top_delta="25"
- width="300">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl5"
+ top="186"
+ width="300">
Texture Elevation Ranges
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="51"
- name="height_text_lbl6"
- top_delta="20"
- width="100">
+ </text>
+ <text
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="51"
+ name="height_text_lbl6"
+ top="201"
+ width="100">
Southwest
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl7"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl7"
+ top_delta="0"
+ width="100">
Northwest
- </text>
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_0"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_1"
- top_delta="0"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_0"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_1"
- top_delta="0"
- width="100" />
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left="51"
- name="height_text_lbl8"
- top_delta="30"
- width="100">
+ </text>
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_0"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_1"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_0"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_1"
+ top_delta="0"
+ width="100" />
+ <text
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl8"
+ top_delta="0"
+ width="100">
Southeast
- </text>
- <text
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl9"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl9"
+ top_delta="0"
+ width="100">
Northeast
- </text>
+ </text>
<spinner
follows="left|top"
height="20"
@@ -303,17 +307,14 @@
and the HIGH value is the MINIMUM
height of Texture #4.
</text>
-
- <button
- enabled="false"
- follows="left|bottom"
- height="20"
- label="Apply"
- layout="topleft"
- left="120"
- name="apply_btn"
- top_delta="60"
- width="100" />
- </panel>
- </scroll_container>
+ <button
+ enabled="false"
+ follows="left|bottom"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="350"
+ name="apply_btn"
+ top="290"
+ width="100" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml
index d172154d49..d3d45640cb 100644
--- a/indra/newview/skins/default/xui/en/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/en/panel_side_tray.xml
@@ -74,7 +74,7 @@
help_topic="sidebar_places"
tab_title="Places"
label="Places"
- description="Find places to go and places you've been."
+ description="Find places to go and places you&apos;ve visited before."
image="TabIcon_Places_Off"
mouse_opaque="false"
background_visible="true"
@@ -93,7 +93,7 @@
name="sidebar_me"
help_topic="sidebar_me"
tab_title="Me"
- description="Change your profile, your look and quick links to your outfits."
+ description="Edit your public profile and Picks."
image="TabIcon_Me_Off"
mouse_opaque="false"
background_visible="true"
@@ -111,7 +111,7 @@
name="sidebar_appearance"
help_topic="sidebar_appearance"
tab_title="Appearance"
- description="Change your looks and appearance."
+ description="Change your appearance and current look."
image="TabIcon_Appearance_Off"
mouse_opaque="false"
background_opaque="false"
diff --git a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
index d379c60aed..e991861e94 100644
--- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_visible="true"
- bevel_style="in"
- follows="left|top|right|bottom"
- height="420"
+ bevel_style="out"
+ follows="all"
+ height="560"
label="home_tab"
layout="topleft"
name="home_tab"
@@ -13,37 +13,36 @@
bg_alpha_color="DkGray2"
class="panel_sidetray_home_info"
follows="left|top|right"
- height="130"
+ height="120"
layout="topleft"
- left="10"
+ left="15"
+ top="17"
name="sidebar_people"
- width="313">
+ width="303">
<text
follows="left|right|top"
font="SansSerifBigBold"
height="30"
layout="topleft"
- left="5"
+ left="10"
mouse_opaque="false"
name="tab_name"
- text_color="white"
+ text_color="EmphasisColor"
top="10"
value="People"
width="200"
word_wrap="true" />
<icon
- color="DkGray"
follows="top|right"
height="20"
layout="topleft"
name="tab_icon"
right="-10"
top="10"
- image_name="TabIcon_Home_Selected"
+ image_name="TabIcon_People_Selected"
width="20" />
<text
follows="left|right|bottom"
- font="SansSerifBold"
height="120"
layout="topleft"
left="10"
@@ -53,7 +52,7 @@
text_color="white"
top="40"
word_wrap="true">
- Find your friends, contacts and people nearby.
+ Find your friends, your groups, contacts and people nearby.
</text>
</panel>
<panel
@@ -61,37 +60,36 @@
bg_alpha_color="DkGray2"
class="panel_sidetray_home_info"
follows="left|top|right"
- height="130"
+ height="120"
layout="topleft"
- left="10"
+ left="15"
+ top_pad="15"
name="sidebar_places"
- width="313">
+ width="303">
<text
follows="left|right|top"
font="SansSerifBigBold"
height="30"
layout="topleft"
- left="5"
+ left="10"
mouse_opaque="false"
name="tab_name"
- text_color="white"
+ text_color="EmphasisColor"
top="10"
value="Places"
width="200"
word_wrap="true" />
<icon
- color="DkGray"
follows="top|right"
height="20"
layout="topleft"
name="tab_icon"
right="-10"
top="10"
- width="20"
+ width="20"
image_name="TabIcon_Places_Selected"/>
<text
- follows="left|right|bottom|top"
- font="SansSerifBold"
+ follows="all"
height="120"
layout="topleft"
left="10"
@@ -101,7 +99,7 @@
text_color="white"
top="40"
word_wrap="true">
- Find your friends, contacts and people nearby.
+ Find places to go and places you&apos;ve visited before.
</text>
</panel>
<panel
@@ -109,37 +107,36 @@
bg_alpha_color="DkGray2"
class="panel_sidetray_home_info"
follows="left|top|right"
- height="130"
+ height="120"
layout="topleft"
- left="10"
+ left="15"
+ top_pad="15"
name="sidebar_me"
- width="313">
+ width="303">
<text
follows="left|right|top"
font="SansSerifBigBold"
height="30"
layout="topleft"
- left="5"
+ left="10"
mouse_opaque="false"
name="tab_name"
- text_color="white"
+ text_color="EmphasisColor"
top="10"
value="My Profile"
width="200"
word_wrap="true" />
<icon
- color="DkGray"
follows="top|right"
height="20"
layout="topleft"
name="tab_icon"
right="-10"
top="10"
- width="20"
+ width="20"
image_name="TabIcon_Me_Selected"/>
<text
- follows="left|right|bottom|top"
- font="SansSerifBold"
+ follows="all"
height="120"
layout="topleft"
left="10"
@@ -149,7 +146,7 @@
text_color="white"
top="40"
word_wrap="true">
- Change your profile.
+ Edit your public profile.
</text>
</panel>
<panel
@@ -157,37 +154,36 @@
bg_alpha_color="DkGray2"
class="panel_sidetray_home_info"
follows="left|top|right"
- height="130"
+ height="120"
layout="topleft"
- left="10"
+ left="15"
+ top_pad="15"
name="sidebar_appearance"
- width="313">
+ width="303">
<text
follows="left|right|top"
font="SansSerifBigBold"
height="30"
layout="topleft"
- left="5"
+ left="10"
mouse_opaque="false"
name="tab_name"
- text_color="white"
+ text_color="EmphasisColor"
top="10"
value="My Appearance"
width="200"
word_wrap="true" />
<icon
- color="DkGray"
follows="top|right"
height="20"
layout="topleft"
name="tab_icon"
right="-10"
top="10"
- width="20"
- image_name="TabIcon_Things_Selected"/>
+ width="20"
+ image_name="TabIcon_Appearance_Selected"/>
<text
- follows="left|right|bottom|top"
- font="SansSerifBold"
+ follows="all"
height="120"
layout="topleft"
left="10"
@@ -197,7 +193,7 @@
text_color="white"
top="40"
word_wrap="true">
- Change your apperance and looks.
+ Change your appearance and current look.
</text>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index 07f0806ccb..fc61ce9683 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -41,7 +41,7 @@
</panel.string>
<button
auto_resize="true"
- halign="left"
+ halign="right"
follows="right|bottom"
font="SansSerifSmall"
image_color="White_05"
@@ -49,10 +49,11 @@
image_overlay="BuyArrow_Over"
height="18"
layout="topleft"
- left="-210"
+ left="-225"
name="buycurrency"
+ pad_right="23px"
picture_style="true"
- tool_tip="My Balance / Buy L$"
+ tool_tip="My Balance: Click to buy more L$"
top="0"
width="117" />
<text
@@ -64,7 +65,7 @@
height="16"
top="3"
layout="topleft"
- left_pad="5"
+ left_pad="20"
name="TimeText"
text_color="TimeTextColor"
tool_tip="Current Time (Pacific)"
@@ -103,7 +104,7 @@
bg_visible="false"
text_readonly_color="HealthTextColor"
follows="rsight|bottom"
- font_shadow="hard"
+ font_shadow="none"
height="16"
layout="topleft"
left_pad="18"
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history.xml b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
index aa95a2baef..b0cd75117f 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
@@ -1,16 +1,24 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="Teleport History" bottom="0" height="326" left="0" width="380"
border="true" follows="left|top|right|bottom">
+ <string
+ name="cant_create_lm_here"
+ value="Please teleport to selected location before creating Landmark. " />
+ <string
+ name="create_landmark"
+ value="Create Landmark" />
+ <string
+ name="open_landmark"
+ value="Open Landmark panel" />
<accordion
follows="left|top|right|bottom"
- height="326"
+ height="300"
layout="topleft"
left="0"
top="0"
name="history_accordion"
width="380">
-
- <accordion_tab
+ <accordion_tab
can_resize="false"
layout="topleft"
name="today"
@@ -24,9 +32,8 @@
name="today_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -41,9 +48,8 @@
name="yesterday_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -58,9 +64,8 @@
name="2_days_ago"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -75,9 +80,8 @@
name="3_days_ago"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -92,9 +96,8 @@
name="4_days_ago"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -109,9 +112,8 @@
name="5_days_ago_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -126,9 +128,8 @@
name="6_days_and_older_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -143,9 +144,8 @@
name="1_month_and_older_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
-
+ </flat_list_view>
+ </accordion_tab>
<accordion_tab
can_resize="false"
layout="topleft"
@@ -160,7 +160,47 @@
name="6_months_and_older_items"
top="0"
width="380">
- </flat_list_view>
- </accordion_tab>
+ </flat_list_view>
+ </accordion_tab>
</accordion>
+ <panel
+ background_visible="true"
+ bevel_style="none"
+ top_pad="0"
+ follows="left|right|bottom"
+ height="30"
+ label="bottom_panel"
+ layout="topleft"
+ left="0"
+ name="bottom_panel"
+ width="380">
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ tool_tip=""
+ height="18"
+ image_disabled="OptionsMenu_Disabled"
+ image_selected="OptionsMenu_Press"
+ image_unselected="OptionsMenu_Off"
+ layout="topleft"
+ left="10"
+ name="gear_btn"
+ picture_style="true"
+ top="5"
+ width="18" />
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ height="18"
+ image_selected="Favorite_Star_Active"
+ image_disabled="Favorite_Star_Off"
+ image_unselected="Favorite_Star_Press"
+ layout="topleft"
+ left_pad="5"
+ name="star_btn"
+ picture_style="true"
+ tool_tip=""
+ top_delta="0"
+ width="18" />
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index d640d3ad88..63c2d4538e 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -42,7 +42,7 @@
height="20"
layout="topleft"
left_pad="5"
- use_ellipsis="true"
+ use_ellipses="true"
name="region"
text_color="white"
top="4"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index d124a4cdfa..2a616d8e2f 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -14,7 +14,10 @@
<!-- starting up -->
<string name="StartupDetectingHardware">Detecting hardware...</string>
<string name="StartupLoading">Loading</string>
+
+ <!-- Legacy strings, almost never used -->
<string name="Fullbright">Fullbright (Legacy)</string>
+
<!-- Login -->
<string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string>
<string name="LoginInProgressNoFrozen">Logging in...</string>
@@ -59,8 +62,8 @@
<string name="TooltipFlagNoScripts">No Scripts</string>
<string name="TooltipLand">Land:</string>
<string name="TooltipMustSingleDrop">Only a single item can be dragged here</string>
- <string name="TooltipAltLeft">Alt-Left arrow for previous tab</string>
- <string name="TooltipAltRight">Alt-Right arrow for next tab</string>
+ <string name="TooltipAltLeft">Alt+&#8592; for previous tab</string>
+ <string name="TooltipAltRight">Alt+&#8594; for next tab</string>
<!-- tooltips for Urls -->
<string name="TooltipHttpUrl">Click to view this web page</string>
@@ -75,8 +78,8 @@
<string name="TooltipSLAPP">Click to run the secondlife:// command</string>
<!-- ButtonToolTips, llfloater.cpp -->
- <string name="BUTTON_CLOSE_DARWIN">Close (&#8984;-W)</string>
- <string name="BUTTON_CLOSE_WIN">Close (Ctrl-W)</string>
+ <string name="BUTTON_CLOSE_DARWIN">Close (&#8984;W)</string>
+ <string name="BUTTON_CLOSE_WIN">Close (Ctrl+W)</string>
<string name="BUTTON_RESTORE">Restore</string>
<string name="BUTTON_MINIMIZE">Minimize</string>
<string name="BUTTON_TEAR_OFF">Tear Off</string>
@@ -230,8 +233,10 @@
<string name="anim_yes_happy">Yes (Happy)</string>
<string name="anim_yes_head">Yes</string>
+ <!-- world map -->
<string name="texture_loading">Loading...</string>
<string name="worldmap_offline">Offline</string>
+ <string name="worldmap_results_none_found">None found.</string>
<!-- animations uploading status codes -->
<string name="Ok">OK</string>
@@ -2110,6 +2115,15 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
<string name="AddLandmarkNavBarMenu">Add Landmark...</string>
<string name="EditLandmarkNavBarMenu">Edit Landmark...</string>
+ <!-- menu accelerators -->
+ <string name="accel-mac-control">&#8963;</string>
+ <string name="accel-mac-command">&#8984;</string>
+ <string name="accel-mac-option">&#8997;</string>
+ <string name="accel-mac-shift">&#8679;</string>
+ <string name="accel-win-control">Ctrl+</string>
+ <string name="accel-win-alt">Alt+</string>
+ <string name="accel-win-shift">Shift+</string>
+
<!-- Previews -->
<string name="FileSaved">File Saved</string>
<string name="Receiving">Receiving</string>
@@ -2225,9 +2239,8 @@ Running in window.
<string name="MBPixelFmtErr">Can't find suitable pixel format</string>
<string name="MBPixelFmtDescErr">Can't get pixel format description</string>
<string name="MBTrueColorWindow">
- [APP_NAME] requires True Color (32-bit) to run in a window.
-Please go to Control Panels &gt; Display &gt; Settings and set the screen to 32-bit color.
-Alternately, if you choose to run fullscreen, [APP_NAME] will automatically adjust the screen each time it runs.
+ [APP_NAME] requires True Color (32-bit) to run.
+Please go to your computer's display settings and set the color mode to 32-bit.
</string>
<string name="MBAlpha">
[APP_NAME] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
@@ -2246,14 +2259,14 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<!-- Avatar Shape Information -->
<string name="5 O'Clock Shadow">5 O'Clock Shadow</string>
-<string name="5 O'Clock Shadow bump">5 O'Clock Shadow bump</string>
+
<string name="All White">All White</string>
<string name="Anime Eyes">Anime Eyes</string>
<string name="Arced">Arced</string>
<string name="Arm Length">Arm Length</string>
<string name="Attached">Attached</string>
<string name="Attached Earlobes">Attached Earlobes</string>
-<string name="BELLY">BELLY</string>
+
<string name="Back Bangs">Back Bangs</string>
<string name="Back Bangs Down">Back Bangs Down</string>
<string name="Back Bangs Up">Back Bangs Up</string>
@@ -2270,9 +2283,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Big">Big</string>
<string name="Big Butt">Big Butt</string>
<string name="Big Eyeball">Big Eyeball</string>
-<string name="Big Hair Back">Big Hair Back</string>
-<string name="Big Hair Front">Big Hair Front</string>
-<string name="Big Hair Top">Big Hair Top</string>
+<string name="Big Hair Back">Big Hair: Back</string>
+<string name="Big Hair Front">Big Hair: Front</string>
+<string name="Big Hair Top">Big Hair: Top</string>
<string name="Big Head">Big Head</string>
<string name="Big Pectorals">Big Pectorals</string>
<string name="Big Spikes">Big Spikes</string>
@@ -2291,7 +2304,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Bottom">Bottom</string>
<string name="Bottom Left">Bottom Left</string>
<string name="Bottom Right">Bottom Right</string>
-<string name="Bottom bump">Bottom bump</string>
+
<string name="Bow Legged">Bow Legged</string>
<string name="Breast Buoyancy">Breast Buoyancy</string>
<string name="Breast Cleavage">Breast Cleavage</string>
@@ -2303,12 +2316,15 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Bugged Eyes">Bugged Eyes</string>
<string name="Bulbous">Bulbous</string>
<string name="Bulbous Nose">Bulbous Nose</string>
-<string name="Bump base">Bump base</string>
-<string name="Bump upperdef">Bump upperdef</string>
+
+
<string name="Bushy Eyebrows">Bushy Eyebrows</string>
<string name="Bushy Hair">Bushy Hair</string>
<string name="Butt Size">Butt Size</string>
-<string name="CHEST">CHEST</string>
+<string name="bustle skirt">Bustle Skirt</string>
+<string name="no bustle">No Bustle</string>
+<string name="more bustle">More Bustle</string>
+
<string name="Center">Center</string>
<string name="Center 2">Center 2</string>
<string name="Chaplin">Chaplin</string>
@@ -2319,7 +2335,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Chin Angle">Chin Angle</string>
<string name="Chin Cleft">Chin Cleft</string>
<string name="Chin Curtains">Chin Curtains</string>
-<string name="Chin Curtains bump">Chin Curtains bump</string>
+
<string name="Chin Depth">Chin Depth</string>
<string name="Chin Heavy">Chin Heavy</string>
<string name="Chin In">Chin In</string>
@@ -2335,13 +2351,13 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Closed Right">Closed Right</string>
<string name="Coin Purse">Coin Purse</string>
<string name="Collar Back">Collar Back</string>
-<string name="Collar Back Height Cloth">Collar Back Height Cloth</string>
-<string name="Collar Back Shadow Height">Collar Back Shadow Height</string>
-<string name="Collar Back bump">Collar Back bump</string>
+
+
+
<string name="Collar Front">Collar Front</string>
-<string name="Collar Front Height Cloth">Collar Front Height Cloth</string>
-<string name="Collar Front Shadow Height">Collar Front Shadow Height</string>
-<string name="Collar Front bump">Collar Front bump</string>
+
+
+
<string name="Corner Down">Corner Down</string>
<string name="Corner Normal">Corner Normal</string>
<string name="Corner Up">Corner Up</string>
@@ -2375,11 +2391,11 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Eyeball Size">Eyeball Size</string>
<string name="Eyebrow Arc">Eyebrow Arc</string>
<string name="Eyebrow Density">Eyebrow Density</string>
-<string name="Eyebrow Density Bump">Eyebrow Density Bump</string>
+
<string name="Eyebrow Height">Eyebrow Height</string>
<string name="Eyebrow Points">Eyebrow Points</string>
<string name="Eyebrow Size">Eyebrow Size</string>
-<string name="Eyebrow Size Bump">Eyebrow Size Bump</string>
+
<string name="Eyelash Length">Eyelash Length</string>
<string name="Eyeliner">Eyeliner</string>
<string name="Eyeliner Color">Eyeliner Color</string>
@@ -2429,21 +2445,21 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Full Sides">Full Sides</string>
<string name="Glossy">Glossy</string>
<string name="Glove Fingers">Glove Fingers</string>
-<string name="Glove Fingers bump">Glove Fingers bump</string>
+
<string name="Glove Length">Glove Length</string>
-<string name="Glove Length bump">Glove Length bump</string>
-<string name="HEAD">HEAD</string>
+
+
<string name="Hair">Hair</string>
-<string name="Hair Back">Hair Back</string>
-<string name="Hair Front">Hair Front</string>
-<string name="Hair Sides">Hair Sides</string>
+<string name="Hair Back">Hair: Back</string>
+<string name="Hair Front">Hair: Front</string>
+<string name="Hair Sides">Hair: Sides</string>
<string name="Hair Sweep">Hair Sweep</string>
-<string name="Hair Thickess">Hair Thickess</string>
+<string name="Hair Thickess">Hair Thickness</string>
<string name="Hair Thickness">Hair Thickness</string>
<string name="Hair Tilt">Hair Tilt</string>
<string name="Hair Tilted Left">Hair Tilted Left</string>
<string name="Hair Tilted Right">Hair Tilted Right</string>
-<string name="Hair Volume">Hair Volume</string>
+<string name="Hair Volume">Hair: Volume</string>
<string name="Hand Size">Hand Size</string>
<string name="Handlebars">Handlebars</string>
<string name="Head Length">Head Length</string>
@@ -2462,15 +2478,15 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Hip Length">Hip Length</string>
<string name="Hip Width">Hip Width</string>
<string name="In">In</string>
-<string name="In Shdw Color">In Shdw Color</string>
-<string name="In Shdw Opacity">In Shdw Opacity</string>
+<string name="In Shdw Color">Inner Shadow Color</string>
+<string name="In Shdw Opacity">Inner Shadow Opacity</string>
<string name="Inner Eye Corner">Inner Eye Corner</string>
<string name="Inner Eye Shadow">Inner Eye Shadow</string>
<string name="Inner Shadow">Inner Shadow</string>
-<string name="Jacket Collar Back bump">Jacket Collar Back bump</string>
-<string name="Jacket Collar Front bump">Jacket Collar Front bump</string>
+
+
<string name="Jacket Length">Jacket Length</string>
-<string name="Jacket Sleeve Length bump">Jacket Sleeve Length bump</string>
+
<string name="Jacket Wrinkles">Jacket Wrinkles</string>
<string name="Jaw Angle">Jaw Angle</string>
<string name="Jaw Jut">Jaw Jut</string>
@@ -2534,11 +2550,11 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Long Torso">Long Torso</string>
<string name="Long arms">Long arms</string>
<string name="Longcuffs">Longcuffs</string>
-<string name="Loose Lower Clothing">Loose Lower Clothing</string>
+
<string name="Loose Pants">Loose Pants</string>
<string name="Loose Shirt">Loose Shirt</string>
<string name="Loose Sleeves">Loose Sleeves</string>
-<string name="Loose Upper Clothing">Loose Upper Clothing</string>
+
<string name="Love Handles">Love Handles</string>
<string name="Low">Low</string>
<string name="Low Heels">Low Heels</string>
@@ -2548,7 +2564,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Lower">Lower</string>
<string name="Lower Bridge">Lower Bridge</string>
<string name="Lower Cheeks">Lower Cheeks</string>
-<string name="Lower Clothes Shading">Lower Clothes Shading</string>
+
<string name="Male">Male</string>
<string name="Middle Part">Middle Part</string>
<string name="More">More</string>
@@ -2574,14 +2590,14 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="More Volume">More Volume</string>
<string name="More soul">More soul</string>
<string name="Moustache">Moustache</string>
-<string name="Moustache bump">Moustache bump</string>
+
<string name="Mouth">Mouth</string>
<string name="Mouth Corner">Mouth Corner</string>
<string name="Mouth Position">Mouth Position</string>
<string name="Mowhawk">Mowhawk</string>
<string name="Muscular">Muscular</string>
<string name="Mutton Chops">Mutton Chops</string>
-<string name="NECK">NECK</string>
+
<string name="Nail Polish">Nail Polish</string>
<string name="Nail Polish Color">Nail Polish Color</string>
<string name="Narrow">Narrow</string>
@@ -2616,7 +2632,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Nose Width">Nose Width</string>
<string name="Nostril Division">Nostril Division</string>
<string name="Nostril Width">Nostril Width</string>
-<string name="NotHair">NotHair</string>
+
<string name="Old">Old</string>
<string name="Opaque">Opaque</string>
<string name="Open">Open</string>
@@ -2626,21 +2642,21 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Open Right">Open Right</string>
<string name="Orange">Orange</string>
<string name="Out">Out</string>
-<string name="Out Shdw Color">Out Shdw Color</string>
-<string name="Out Shdw Opacity">Out Shdw Opacity</string>
+<string name="Out Shdw Color">Outer Shadow Color</string>
+<string name="Out Shdw Opacity">Outer Shadow Opacity</string>
<string name="Outer Eye Corner">Outer Eye Corner</string>
<string name="Outer Eye Shadow">Outer Eye Shadow</string>
<string name="Outer Shadow">Outer Shadow</string>
<string name="Overbite">Overbite</string>
-<string name="PELVIS">PELVIS</string>
+
<string name="Package">Package</string>
<string name="Painted Nails">Painted Nails</string>
<string name="Pale">Pale</string>
<string name="Pants Crotch">Pants Crotch</string>
<string name="Pants Fit">Pants Fit</string>
<string name="Pants Length">Pants Length</string>
-<string name="Pants Length Cloth">Pants Length Cloth</string>
-<string name="Pants Length Shadow">Pants Length Shadow</string>
+
+
<string name="Pants Waist">Pants Waist</string>
<string name="Pants Wrinkles">Pants Wrinkles</string>
<string name="Part">Part</string>
@@ -2707,12 +2723,12 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Shift Mouth">Shift Mouth</string>
<string name="Shift Right">Shift Right</string>
<string name="Shirt Bottom">Shirt Bottom</string>
-<string name="Shirt Bottom Cloth">Shirt Bottom Cloth</string>
+
<string name="Shirt Fit">Shirt Fit</string>
-<string name="Shirt Shadow Bottom">Shirt Shadow Bottom</string>
+
<string name="Shirt Wrinkles">Shirt Wrinkles</string>
<string name="Shoe Height">Shoe Height</string>
-<string name="Shoe Height bump">Shoe Height bump</string>
+
<string name="Short">Short</string>
<string name="Short Arms">Short Arms</string>
<string name="Short Legs">Short Legs</string>
@@ -2728,7 +2744,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Side Bangs Up">Side Bangs Up</string>
<string name="Side Fringe">Side Fringe</string>
<string name="Sideburns">Sideburns</string>
-<string name="Sideburns bump">Sideburns bump</string>
+
<string name="Sides Hair">Sides Hair</string>
<string name="Sides Hair Down">Sides Hair Down</string>
<string name="Sides Hair Up">Sides Hair Up</string>
@@ -2739,24 +2755,24 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Skull">Skull</string>
<string name="Slanted Forehead">Slanted Forehead</string>
<string name="Sleeve Length">Sleeve Length</string>
-<string name="Sleeve Length Cloth">Sleeve Length Cloth</string>
-<string name="Sleeve Length Shadow">Sleeve Length Shadow</string>
-<string name="Sleeve Length bump">Sleeve Length bump</string>
+
+
+
<string name="Sleeve Looseness">Sleeve Looseness</string>
-<string name="Slit Back">Slit Back</string>
-<string name="Slit Front">Slit Front</string>
-<string name="Slit Left">Slit Left</string>
-<string name="Slit Right">Slit Right</string>
+<string name="Slit Back">Slit: Back</string>
+<string name="Slit Front">Slit: Front</string>
+<string name="Slit Left">Slit: Left</string>
+<string name="Slit Right">Slit: Right</string>
<string name="Small">Small</string>
<string name="Small Hands">Small Hands</string>
<string name="Small Head">Small Head</string>
<string name="Smooth">Smooth</string>
<string name="Smooth Hair">Smooth Hair</string>
<string name="Socks Length">Socks Length</string>
-<string name="Socks Length bump">Socks Length bump</string>
+
<string name="Some">Some</string>
<string name="Soulpatch">Soulpatch</string>
-<string name="Soulpatch bump">Soulpatch bump</string>
+
<string name="Sparse">Sparse</string>
<string name="Spiked Hair">Spiked Hair</string>
<string name="Spine">Spine</string>
@@ -2809,13 +2825,13 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Upper Bridge">Upper Bridge</string>
<string name="Upper Cheeks">Upper Cheeks</string>
<string name="Upper Chin Cleft">Upper Chin Cleft</string>
-<string name="Upper Clothes Shading">Upper Clothes Shading</string>
+
<string name="Upper Eyelid Fold">Upper Eyelid Fold</string>
<string name="Upturned">Upturned</string>
<string name="Very Red">Very Red</string>
<string name="Waist Height">Waist Height</string>
-<string name="Waist Height Cloth">Waist Height Cloth</string>
-<string name="Waist Height Shadow">Waist Height Shadow</string>
+
+
<string name="Well-Fed">Well-Fed</string>
<string name="White Hair">White Hair</string>
<string name="Wide">Wide</string>
@@ -2825,11 +2841,6 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="Wild">Wild</string>
<string name="Wrinkles">Wrinkles</string>
- <!-- Favorites Bar -->
- <string name="location_ctrl_add_landmark">Add to My Landmarks</string>
- <string name="location_ctrl_edit_landmark">Edit My Landmark</string>
- <string name="favorite_landmark_loading_tooltip">(Loading...)</string>
-
<!-- Strings used by the (currently Linux) auto-updater app -->
<string name="UpdaterWindowTitle">
[APP_NAME] Update
@@ -2887,6 +2898,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="no_ability_error">
You do not have that ability.
</string>
+ <string name="no_ability">
+ You do not have that ability.
+ </string>
<string name="not_a_mod_error">
You are not a session moderator.
</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
index df5ea24c73..3ff0b3062a 100644
--- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<accordion_tab
+ header_bg_color="0.68 0.68 0.68 1"
+ header_txt_color="0.68 0.68 0.68 1"
header_collapse_img="Accordion_ArrowClosed_Off"
header_collapse_img_pressed="Accordion_ArrowClosed_Press"
header_expand_img="Accordion_ArrowOpened_Off"
- header_expand_img_pressed="Accordion_ArrowOpened_Press" />
+ header_expand_img_pressed="Accordion_ArrowOpened_Press"
+ header_image="Accordion_Off.png"
+ header_image_over="Accordion_Over"
+ header_image_pressed="Accordion_Press"
+ />
diff --git a/indra/newview/skins/default/xui/en/widgets/combo_box.xml b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
index 0dbca318b6..8b23b72c2d 100644
--- a/indra/newview/skins/default/xui/en/widgets/combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
@@ -7,7 +7,7 @@
label=""
hover_glow_amount="0.15"
font="SansSerifSmall"
- scale_image="true"
+ scale_image="false"
image_unselected="ComboButton_Off"
image_selected="ComboButton_Selected"
image_disabled="ComboButton_Disabled" />
@@ -15,7 +15,7 @@
label=""
hover_glow_amount="0.15"
font="SansSerifSmall"
- scale_image="true"
+ scale_image="false"
pad_right="24"
image_unselected="DropDown_Off"
image_selected="DropDown_Selected"
@@ -23,7 +23,11 @@
<combo_box.combo_list bg_writeable_color="MenuDefaultBgColor"
background_visible="true"
/>
+ <!-- Text is "tentative" if you have typed in a string that does not match
+ any item in the list, but we usually don't care, so use the same color
+ as normal text. -->
<combo_box.combo_editor name="Combo Text Entry"
select_on_focus="true"
- font="SansSerifSmall" />
+ font="SansSerifSmall"
+ text_tentative_color="TextFgColor" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
index 6381dce1d6..319beac291 100644
--- a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
@@ -5,11 +5,12 @@
more_label="More"
follows="left|top"
name="text"
+ allow_scroll="true"
use_ellipses="true"
word_wrap="true"
tab_stop="true"
- v_pad="2"
- h_pad="3" >
+ v_pad="3"
+ h_pad="4" >
</textbox>
<scroll
name="scroll"
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
index df8a9431d7..d86103aedc 100644
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -18,10 +18,12 @@
max_chars="20"
follows="left|top"
allow_new_values="true"
+ add_landmark_tool_tip="Add this to My Landmarks"
+ edit_landmark_tool_tip="Edit My Landmark"
>
<info_button name="Place Information"
label=""
- tool_tip="About current location"
+ tool_tip="See more info about the current location"
width="16"
height="16"
follows="left|top"
@@ -35,11 +37,12 @@
hover_glow_amount="0.15"
image_hover_selected="Favorite_Star_Over"
image_hover_unselected="Favorite_Star_Over"
- width="16"
- height="16"
- tool_tip="Add to My Landmarks"
+ width="18"
+ height="18"
follows="right|top"
- scale_image="false" />
+ scale_image="false"
+ top="19"
+ left="-3" />
<combo_button name="Location History"
label=""
pad_right="0"
diff --git a/indra/newview/skins/default/xui/en/widgets/menu.xml b/indra/newview/skins/default/xui/en/widgets/menu.xml
index 58543338f6..53034afa61 100644
--- a/indra/newview/skins/default/xui/en/widgets/menu.xml
+++ b/indra/newview/skins/default/xui/en/widgets/menu.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu bg_color="MenuDefaultBgColor"
bg_visible="true"
- drop_shadow="true"
+ drop_shadow="false"
tear_off="false"
shortcut_pad="15">
</menu>
diff --git a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
index e998635d20..a054b4ee60 100644
--- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
@@ -5,11 +5,13 @@
show_text_as_tentative="false"
dropdown_button_visible="false"
max_chars="256"
+ name="parent"
allow_new_values="true"
background_image="TextField_Search_Off"
background_image_disabled="TextField_Search_Disabled"
background_image_focused="TextField_Search_Active">
<combo_editor
+ name="child1"
select_on_focus="true"
text_pad_left="20"
tool_tip="Search"
@@ -18,9 +20,11 @@
background_image_focused="TextField_Search_Active"/>
<combo_list
multi_select="false"
+ name="child2"
page_lines="10"
scroll_bar_bg_visible="true" />
<search_button label=""
+ name="child3"
top_pad="4"
left_pad="4"
width="13"
diff --git a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
index 8ace7b96bc..bb46ec0954 100644
--- a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
@@ -5,7 +5,7 @@
font="SansSerifSmall"
max_length="255"
embedded_items="false"
- hide_scrollbar="false"
+ allow_scroll="true"
border_visible="false"
word_wrap="false"
ignore_tab="true"
@@ -15,8 +15,8 @@
default_color="TextDefaultColor"
text_color="TextFgColor"
text_readonly_color="TextFgReadOnlyColor"
- h_pad="5"
- v_pad="3"
+ h_pad="6"
+ v_pad="4"
bg_visible="true"
bg_readonly_color="TextBgReadOnlyColor"
bg_writeable_color="TextBgWriteableColor"
diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
index 6dfb6ecf9c..25d85899a1 100644
--- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<tab_container tab_min_width="60"
tab_max_width="150"
+ tab_height="16"
tab_top_image_unselected="TabTop_Middle_Off"
tab_top_image_selected="TabTop_Middle_Selected"
tab_bottom_image_unselected="Toolbar_Left_Off"
diff --git a/indra/newview/skins/default/xui/en/widgets/text.xml b/indra/newview/skins/default/xui/en/widgets/text.xml
index 5914c21b2b..5dd09e663b 100644
--- a/indra/newview/skins/default/xui/en/widgets/text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<text allow_html="true"
- clip_to_rect="false"
mouse_opaque="false"
name="text_box"
font="SansSerifSmall"
- font_shadow="soft"
+ font_shadow="none"
tab_stop="false"
halign="left"
hover_color="LabelSelectedColor"
- h_pad="-1"
- hide_scrollbar="true"
+ h_pad="0"
+ allow_scroll="false"
text_readonly_color="LabelDisabledColor"
bg_writeable_color="FloaterDefaultBackgroundColor"
border_color="DefaultHighlightLight"
@@ -18,5 +17,5 @@
border_visible="false"
hover="false"
text_color="LabelTextColor"
- v_pad="-1"
+ v_pad="0"
max_length="4096"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/textbase.xml b/indra/newview/skins/default/xui/en/widgets/textbase.xml
index c352abca3b..e5dc022633 100644
--- a/indra/newview/skins/default/xui/en/widgets/textbase.xml
+++ b/indra/newview/skins/default/xui/en/widgets/textbase.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<textbase clip_to_rect="true"
- h_pad="4"
- v_pad="4"/>
+<textbase allow_scroll="true"
+ h_pad="5"
+ v_pad="5"/>
diff --git a/indra/newview/skins/default/xui/es/floater_sell_land.xml b/indra/newview/skins/default/xui/es/floater_sell_land.xml
index 6d1122a771..bce13c1e33 100644
--- a/indra/newview/skins/default/xui/es/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Vender el terreno">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Parcela:
</text>
@@ -57,4 +59,6 @@ de propietario.
</text>
<button label="Poner el terreno en venta" name="sell_btn"/>
<button label="Cancelar" name="cancel_btn"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index c3c4c55027..da842d22c6 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -159,7 +159,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Puede modificar este objeto.
+ Puede modificar este objeto
</text>
<text name="B:">
B:
@@ -187,28 +187,28 @@
<check_box name="checkbox next owner can transfer" left_delta="67"/>
</panel>
<string name="text modify info 1">
- Puede modificar este objeto.
+ Puede modificar este objeto
</string>
<string name="text modify info 2">
- Puede modificar estos objetos.
+ Puede modificar estos objetos
</string>
<string name="text modify info 3">
- No puede modificar este objeto.
+ No puede modificar este objeto
</string>
<string name="text modify info 4">
- No puede modificar estos objetos.
+ No puede modificar estos objetos
</string>
<string name="text modify warning">
- Debe seleccionar todo el objeto para definir los permisos.
+ Debe seleccionar todo el objeto para definir los permisos
</string>
<string name="Cost Default">
- Precio: L$
+ Precio: L$
</string>
<string name="Cost Total">
- Precio total: L$
+ Precio total: L$
</string>
<string name="Cost Per Unit">
- Precio por: L$
+ Precio por: L$
</string>
<string name="Cost Mixed">
Precio variable
@@ -502,7 +502,7 @@
</panel>
<panel label="Contenido " name="Contents">
<button label="Script nuevo" label_selected="Script nuevo" name="button new script"/>
- <button label="Permisos..." name="button permissions"/>
+ <button label="Permisos" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -516,18 +516,18 @@
Superficie: [AREA] m²
</text>
<button label="Acerca del terreno..." label_selected="Acerca del terreno..." name="button about land" width="140"/>
- <check_box label="Mostrar los propietarios" name="checkbox show owners" tool_tip="El color de las parcelas es según su propietario"/>
+ <check_box label="Mostrar los propietarios" name="checkbox show owners" tool_tip="El color de las parcelas es según su propietario: &#10;&#10;Verde = Su terreno &#10;Agua = Terreno de sus grupos &#10;Rojo = Propiedad de otros &#10;Amarillo = En venta &#10;Morado = Para subasta &#10;Gris = Público"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="150"/>
<text name="label_parcel_modify">
Modificar la parcela
</text>
- <button label="Subdividir..." label_selected="Subdividir..." name="button subdivide land" width="140"/>
- <button label="Unir..." label_selected="Unir..." name="button join land" width="140"/>
+ <button label="Subdividir" label_selected="Subdividir" name="button subdivide land" width="140"/>
+ <button label="Unir" label_selected="Unir" name="button join land" width="140"/>
<text name="label_parcel_trans">
Transacciones de terreno
</text>
- <button label="Comprar terreno..." label_selected="Comprar terreno..." name="button buy land" width="140"/>
- <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="button abandon land" width="140"/>
+ <button label="Comprar terreno" label_selected="Comprar terreno" name="button buy land" width="140"/>
+ <button label="Abandonar el terreno" label_selected="Abandonar el terreno" name="button abandon land" width="140"/>
</panel>
<floater.string name="status_rotate">
Arrastre las bandas de color para girar el objeto
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index e418de3929..86f3f1f125 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -1760,7 +1760,7 @@ Si se marca esta opción, los compradores podrán revender el terreno que compre
Por defecto: Deshabilitado
</notification>
<notification label="Desactivar los scripts" name="HelpRegionDisableScripts">
- Cuando el rendimiento de un sim es pobre, el culpable puede ser un script. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Script Time está en 25 ms o más alto, pulse el botón Listar los scripts según su uso, y verá el nombre y la posición de los scripts que pueden estar causando el bajo rendimiento.
+ Cuando el rendimiento de un sim es pobre, el culpable puede ser un script. Abra Estadísticas (Ctrl+May+1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Script Time está en 25 ms o más alto, pulse el botón Listar los scripts según su uso, y verá el nombre y la posición de los scripts que pueden estar causando el bajo rendimiento.
Marcando la casilla Desactivar los scripts y pulsando el botón Aplicar, se desactivarán temporalmente en esta región todos los scripts.
Debe hacer esto para viajar a la posición que ha visto en la Lista de scripts según su uso. Cuando llegue, investigue el script para determinar si es él quien causa el problema. Deberá contactar con el propietario del script, o borrar o devolver el objeto.
@@ -1769,7 +1769,7 @@ Desmarque la casilla Desactivar los scripts y pulse Aplicar para reactivar los s
Por defecto: off
</notification>
<notification label="Desactivar las colisiones" name="HelpRegionDisableCollisions">
- Cuando el rendimiento de un sim es pobre, la culpa puede estar en los objetos físicos. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Sim Time (Physics) está en 20 ms o más alto, pulse el botón Listar los objetos que colisionan, y verá el nombre y la posición de los objetos que pueden estar causando el bajo rendimiento.
+ Cuando el rendimiento de un sim es pobre, la culpa puede estar en los objetos físicos. Abra Estadísticas (Ctrl+May+1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Sim Time (Physics) está en 20 ms o más alto, pulse el botón Listar los objetos que colisionan, y verá el nombre y la posición de los objetos que pueden estar causando el bajo rendimiento.
Marcando la casilla Desactivar las colisiones y pulsando el botón Aplicar, se desactivarán temporalmente las colisiones entre objetos.
Debe hacer esto para viajar a la localización que se ha avisado en la Lista de objetos que colisionan. Cuando llegue, investigue el objeto:
@@ -1993,9 +1993,9 @@ Dado que estos objetos tienen scripts, moverlos a su inventario puede provocar u
<usetemplate ignoretext="Cuando mueva objetos con script &apos;no copiables&apos; del inventario" name="okcancelignore" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Atención: la acción Pagar al objeto al pulsar ha sido marcada, pero sólo funcionará si se añade un script con un evento money().
+ Atención: la acción &apos;Pagar al objeto&apos; al pulsar ha sido marcada, pero sólo funcionará si se añade un script con un evento money().
<form name="form">
- <ignore name="ignore" text="Cuando configure &apos;Pagar&apos; en objetos sin el evento money()"/>
+ <ignore name="ignore" text="Cuando configure &apos;Pagar al objeto&apos; sin el evento money()"/>
</form>
</notification>
<notification name="OpenObjectCannotCopy">
@@ -2917,7 +2917,7 @@ Los objetos flexibles no pueden ser materiales, y serán inmateriales hasta que
<notification name="FirstDebugMenus">
Ha activado el menú Avanzado.
Contiene herramientas útiles para los desarrolladores que trabajan mejorando [SECOND_LIFE].
-Para pasar este menú a una ventana, pulse Ctrl-Alt-D. En un Mac, pulse &#8984;-Opt-D.
+Para pasar este menú a una ventana, pulse Ctrl+Alt+D. En un Mac, pulse &#8997;&#8984;D.
</notification>
<notification name="FirstSculptedPrim">
Está editando un prim &apos;sculpted&apos;.
diff --git a/indra/newview/skins/default/xui/es/panel_edit_profile.xml b/indra/newview/skins/default/xui/es/panel_edit_profile.xml
new file mode 100644
index 0000000000..bcf4128e01
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Residente" />
+ <string name="AcctTypeTrial"
+ value="Prueba" />
+ <string name="AcctTypeCharterMember"
+ value="Miembro fundador" />
+ <string name="AcctTypeEmployee"
+ value="Empleado de Linden Lab" />
+ <string name="PaymentInfoUsed"
+ value="Ha usado una forma de pago" />
+ <string name="PaymentInfoOnFile"
+ value="Hay infor. de la forma de pago" />
+ <string name="NoPaymentInfoOnFile"
+ value="Sin infor. de la forma de pago" />
+ <string name="AgeVerified"
+ value="Edad verificada" />
+ <string name="NotAgeVerified"
+ value="Edad no verificada" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=es
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Compañero/a:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Mensaje en el estado ocupado:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml
index 0c98889d32..4fd5685b7d 100644
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="General" name="general_tab">
<string name="help_text">
- La pestaña General contiene información global de este grupo,
-la lista de propietarios y miembros visibles,
-las preferencias generales del grupo, y las opciones de los miembros.
+ La pestaña General contiene información global de este grupo, la lista de propietarios y miembros visibles, las preferencias generales del grupo, y las opciones de los miembros.
Ponga su ratón sobre las opciones para más información.
</string>
@@ -47,7 +45,7 @@ Ponga su ratón sobre las opciones para más información.
<panel name="preferences_container">
<check_box label="Mostrar en la búsqueda" name="show_in_group_list" tool_tip="Dejar que la gente vea este grupo en los resultados de la búsqueda."/>
<check_box label="Inscripción libre" name="open_enrollement" tool_tip="Definir si se admiten al grupo nuevos miembros sin que sea preciso invitárseles."/>
- <check_box label="Cuota de inscripción&#10; en L$:" name="check_enrollment_fee" tool_tip="Define si se requiere una cuota para entrar al grupo."/>
+ <check_box label="Cuota de inscripción:" name="check_enrollment_fee" tool_tip="Define si se requiere una cuota para entrar al grupo."/>
<spinner width="60" left_delta="130" name="spin_enrollment_fee" tool_tip="Cuando está marcado &apos;Cuota de inscripción&apos;, los miembros nuevos deben pagar esta cuota para entrar al grupo."/>
<combo_box bottom_delta="-38" width="150" name="group_mature_check" tool_tip="Establece si la información de su grupo es &apos;mature&apos;.">
<combo_box.item name="select_mature" label="- Elegir Calificación -"/>
diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index b4ea0dbeda..bccc114624 100644
--- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
@@ -48,8 +48,11 @@
<string name="land_contrib_error">
No se ha podido defininir su contribución de terreno.
</string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
<text name="your_contribution_max_value">
- m² ([AMOUNT] máx.)
+ ([AMOUNT] máx.)
</text>
<text name="group_over_limit_text">
Los miembros del grupo deben contribuir con más créditos de terreno
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 2f2aab5448..2b813a18bf 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="&apos;PG&apos;, &apos;Mature&apos; y &apos;Adult&apos;"/>
<combo_box.item name="Desired_Mature" label="&apos;PG&apos; y &apos;Mature&apos;"/>
- <combo_box.item name="Desired_PG" label="sólo &apos;PG&apos;"/>
+ <combo_box.item name="Desired_PG" label="&apos;PG&apos;"/>
</combo_box>
<text name="maturity_desired_textbox">
- sólo &apos;PG&apos;
+ &apos;PG&apos;
</text>
<text name="start_location_textbox">
Posición inicial:
diff --git a/indra/newview/skins/default/xui/es/panel_region_estate.xml b/indra/newview/skins/default/xui/es/panel_region_estate.xml
index 653dc32a24..f16ec89cb0 100644
--- a/indra/newview/skins/default/xui/es/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Estado" name="Estate">
+<panel label="Estado" name="Estate">
<text name="estate_help_text">
Los cambios en las configuraciones de esta
pestaña afectarán a todas las regiones del estado.
@@ -68,6 +66,4 @@ pestaña afectarán a todas las regiones del estado.
<button label="?" name="ban_resident_help" right="476"/>
<button label="Quitar..." name="remove_banned_avatar_btn"/>
<button label="Añadir..." name="add_banned_avatar_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_region_texture.xml b/indra/newview/skins/default/xui/es/panel_region_texture.xml
index 879fb87be2..5540358f97 100644
--- a/indra/newview/skins/default/xui/es/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Texturas del terreno" name="Textures">
+<panel label="Texturas del terreno" name="Textures">
<text name="region_text_lbl">
Región:
</text>
@@ -56,6 +54,4 @@
y el valor ALTA es la altura MÍNIMA de la textura #4.
</text>
<button label="Aplicar" name="apply_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 0735bb0082..294e407278 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -498,16 +498,16 @@ Si aun así persiste este mensaje, reinicie su ordenador.
Si sigue recibiendo este mensaje, contacte con el [SUPPORT_SITE].
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Alt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Mayús-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -615,6 +615,9 @@ Si sigue recibiendo este mensaje, contacte con el [SUPPORT_SITE].
<string name="no_ability_error">
Usted no tiene esa capacidad.
</string>
+ <string name="no_ability">
+ Usted no tiene esa capacidad.
+ </string>
<string name="not_a_mod_error">
Usted no es un moderador de la sesión.
</string>
@@ -633,4 +636,31 @@ Si sigue recibiendo este mensaje, contacte con el [SUPPORT_SITE].
<string name="close_on_no_ability">
Usted ya no tendrá más la capacidad de estar en la sesión de chat.
</string>
+ <string name="AcctTypeResident">
+ Residente
+ </string>
+ <string name="AcctTypeTrial">
+ Prueba
+ </string>
+ <string name="AcctTypeCharterMember">
+ Miembro fundador
+ </string>
+ <string name="AcctTypeEmployee">
+ Empleado de Linden Lab
+ </string>
+ <string name="PaymentInfoUsed">
+ Ha usado una forma de pago
+ </string>
+ <string name="PaymentInfoOnFile">
+ Hay infor. de la forma de pago
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Sin infor. de la forma de pago
+ </string>
+ <string name="AgeVerified">
+ Edad verificada
+ </string>
+ <string name="NotAgeVerified">
+ Edad no verificada
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/fr/floater_sell_land.xml b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
index 6ef12fab4a..643a9435db 100644
--- a/indra/newview/skins/default/xui/fr/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Vendre terrain">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Parcelle :
</text>
@@ -59,4 +61,6 @@ de propriétaire.
</text>
<button label="Mettre le terrain en vente" name="sell_btn" width="165"/>
<button label="Annuler" name="cancel_btn"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index 03ab397ea1..e8db326e15 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -149,7 +149,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Vous pouvez modifier cet objet.
+ Vous pouvez modifier cet objet
</text>
<text name="B:">
B :
@@ -177,28 +177,28 @@
<check_box name="checkbox next owner can transfer"/>
</panel>
<string name="text modify info 1">
- Vous pouvez modifier cet objet.
+ Vous pouvez modifier cet objet
</string>
<string name="text modify info 2">
- Vous pouvez modifier ces objets.
+ Vous pouvez modifier ces objets
</string>
<string name="text modify info 3">
- Vous ne pouvez pas modifier cet objet.
+ Vous ne pouvez pas modifier cet objet
</string>
<string name="text modify info 4">
- Vous ne pouvez pas modifier ces objets.
+ Vous ne pouvez pas modifier ces objets
</string>
<string name="text modify warning">
- Sélectionnez l&apos;objet en entier.
+ Sélectionnez l&apos;objet en entier
</string>
<string name="Cost Default">
- Prix : L$
+ Prix : L$
</string>
<string name="Cost Total">
- Prix total : L$
+ Prix total : L$
</string>
<string name="Cost Per Unit">
- Prix par : L$
+ Prix par : L$
</string>
<string name="Cost Mixed">
Prix mixte
@@ -443,8 +443,8 @@
<button label="Ajuster" label_selected="Ajuster" left="150" name="button align"/>
</panel>
<panel label="Contenu" name="Contents">
- <button label="Nouveau script" label_selected="Nouveau script..." name="button new script"/>
- <button label="Droits..." name="button permissions"/>
+ <button label="Nouveau script" label_selected="Nouveau script" name="button new script"/>
+ <button label="Droits" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -458,18 +458,18 @@
Surface : [AREA] m²
</text>
<button label="À propos du terrain..." label_selected="À propos du terrain..." name="button about land" width="142"/>
- <check_box label="Afficher les propriétaires" name="checkbox show owners" tool_tip="Colorie les parcelles en fonction de leur propriétaire"/>
+ <check_box label="Afficher les propriétaires" name="checkbox show owners" tool_tip="Colorie les parcelles en fonction de leur propriétaire : &#10;&#10;Vert = votre terrain &#10;Turquoise = le terrain de votre groupe &#10;Rouge = appartenant à d&apos;autres &#10;Jaune = en vente &#10;Mauve = aux enchères &#10;Gris = public"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="154"/>
<text name="label_parcel_modify">
Modifier la parcelle
</text>
- <button label="Diviser..." label_selected="Diviser..." name="button subdivide land" width="142"/>
- <button label="Fusionner..." label_selected="Fusionner..." name="button join land" width="142"/>
+ <button label="Diviser" label_selected="Diviser" name="button subdivide land" width="142"/>
+ <button label="Fusionner" label_selected="Fusionner" name="button join land" width="142"/>
<text name="label_parcel_trans">
Transactions
</text>
- <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="button buy land" width="142"/>
- <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="button abandon land" width="142"/>
+ <button label="Acheter le terrain" label_selected="Acheter le terrain" name="button buy land" width="142"/>
+ <button label="Abandonner le terrain" label_selected="Abandonner le terrain" name="button abandon land" width="142"/>
</panel>
<floater.string name="status_rotate">
Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index 3255cdb728..a38cf858e0 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -1682,7 +1682,7 @@ Si cette option est cochée, les propriétaires sont libres de revendre leur par
Valeur par défaut : désactivé
</notification>
<notification label="Désactiver les scripts" name="HelpRegionDisableScripts">
- Lorsque la performance d&apos;une région est faible, cela peut venir d&apos;un script. Ouvrez la section Statistiques (Ctrl-Maj-1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
+ Lorsque la performance d&apos;une région est faible, cela peut venir d&apos;un script. Ouvrez la section Statistiques (Ctrl+Maj+1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
Si le FPS est en dessous de 45, ouvrez la section Time située en fin de liste. Si le Script Time est au dessus de 25ms, cliquez sur le bouton Afficher les objets scriptés les plus consommateurs. Vous verrez le nom et l&apos;emplacement des scripts éventuellement à l&apos;origine du problème.
Si vous cochez la case Désactiver les scripts et que vous appuyez sur Appliquer, tous les scripts de cette région seront temporairement désactivés. Vous devrez peut-être faire cela le temps d&apos;arriver à l&apos;endroit su script en cause. Une fois sur place, assurez-vous que le script est bien à l&apos;origine du problème. Pour cela, vous devrez peut-être contacter le propriétaire du script ou bien supprimer ou renvoyer l&apos;objet.
@@ -1692,7 +1692,7 @@ Valeur par défaut : désactivé
</notification>
<notification label="Désactiver les collisions" name="HelpRegionDisableCollisions">
Des objets physiques peuvent fortement réduire les performances d&apos;une région.
-Ouvrez la barre de statistiques (Ctrl-Maj-1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
+Ouvrez la barre de statistiques (Ctrl+Maj+1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
Si le FPS est en dessous de 45, ouvrez la section Time située en fin de liste. Si le Script Time est au dessus de 25ms, cliquez sur le bouton Afficher les collisions les plus consommatrices.
Vous verrez le nom et l&apos;emplacement des objets physiques éventuellement à l&apos;origine du problème.
@@ -1913,7 +1913,7 @@ Déplacer les objets de l&apos;inventaire ?
<usetemplate ignoretext="Lors du transfert d&apos;un inventaire non copiable depuis des objets scriptés" name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Avertissement : l&apos;action du clic Payer l&apos;objet a été défini mais ne fonctionnera que si un script est ajouté avec l&apos;event money().
+ Avertissement : l&apos;action du clic &apos;Payer l&apos;objet&apos; a été défini mais ne fonctionnera que si un script est ajouté avec l&apos;event money().
<form name="form">
<ignore name="ignore" text="Lors du paramétrage de la fonction Payer sur des objets sans événement monétaire"/>
</form>
@@ -2333,8 +2333,8 @@ Voulez-vous aller sur le site de [SECOND_LIFE] pour enregistrer ces informations
Vous ne pouvez pas devenir ami avec vous-même.
</notification>
<notification name="UploadingAuctionSnapshot">
- Importation de photos SL et Web en cours
-(prend environ 5 minutes…)
+ Importation de photos SL et Web en cours...
+(prend environ 5 minutes.)
</notification>
<notification name="UploadPayment">
Le chargement a coûté [AMOUNT] L$.
@@ -2842,7 +2842,7 @@ Les objets flexibles ne peuvent pas avoir de propriétés physiques et doivent r
<notification name="FirstDebugMenus">
Vous avez activé le menu Avancé.
Ce menu contient des fonctionnalités utiles pour les développeurs qui travaillent sur [SECOND_LIFE].
-Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Mac, appuyez sur &#8984;-Opt-Maj-D
+Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl+Alt+D. Sur un Mac, appuyez sur &#8997;&#8984;D
</notification>
<notification name="FirstSculptedPrim">
Vous êtes en train d&apos;éditer un sculptie.
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
new file mode 100644
index 0000000000..f62ea7c80f
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Résident" />
+ <string name="AcctTypeTrial"
+ value="Essai" />
+ <string name="AcctTypeCharterMember"
+ value="Membre originaire" />
+ <string name="AcctTypeEmployee"
+ value="Employé(e) de Linden Lab" />
+ <string name="PaymentInfoUsed"
+ value="Infos de paiement utilisées" />
+ <string name="PaymentInfoOnFile"
+ value="Infos de paiement enregistrées" />
+ <string name="NoPaymentInfoOnFile"
+ value="Aucune info de paiement" />
+ <string name="AgeVerified"
+ value="Âge vérifié" />
+ <string name="NotAgeVerified"
+ value="Âge non vérifié" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=fr
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partenaire :"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Réponse si occupé(e) :
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml
index f89c90e508..9afc4ae11d 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -43,7 +43,7 @@
<panel name="preferences_container">
<check_box label="Afficher dans la recherche" name="show_in_group_list" tool_tip="Afficher ce groupe dans les résultats de recherche."/>
<check_box label="Inscription libre" name="open_enrollement" tool_tip="Indique si une invitation est nécessaire pour devenir membre de ce groupe."/>
- <check_box label="Frais d&apos;inscription : L$" name="check_enrollment_fee" tool_tip="Indique s&apos;il y a des frais d&apos;inscription pour devenir membre."/>
+ <check_box label="Frais d&apos;inscription :" name="check_enrollment_fee" tool_tip="Indique s&apos;il y a des frais d&apos;inscription pour devenir membre."/>
<spinner name="spin_enrollment_fee" tool_tip="Si la case Frais d&apos;inscription est cochée, cela signifie qu&apos;il faut payer des frais pour devenir membre."/>
<combo_box name="group_mature_check" tool_tip="Indique si les informations sur votre groupe sont classées Mature." width="195">
<combo_box.item name="select_mature" label="- Type de public -"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 551d11d588..29259e2e42 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -49,8 +49,11 @@ financières de ce groupe.
<string name="land_contrib_error">
Impossible de définir votre don de terre.
</string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
<text name="your_contribution_max_value">
- m² ([AMOUNT] max.)
+ ([AMOUNT] max.)
</text>
<text name="group_over_limit_text">
Une contribution supplémentaire du groupe est requise pour prendre en
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index f3a1a0c0e2..1ed3cafbc3 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -34,10 +34,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG, Mature et Adult"/>
<combo_box.item name="Desired_Mature" label="PG et Mature"/>
- <combo_box.item name="Desired_PG" label="PG uniquement"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- PG uniquement
+ PG
</text>
<text name="start_location_textbox">
Lieu de départ :
diff --git a/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
index b592d29711..425f273790 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Domaine" name="Estate">
+<panel label="Domaine" name="Estate">
<text name="estate_help_text" bottom="-34">
Les changements apportés aux paramètres
de cet onglet auront des répercussions sur
@@ -77,6 +75,4 @@ toutes les régions du domaine.
<button label="Supprimer..." name="remove_banned_avatar_btn"/>
<button label="Envoyer un message au domaine..." name="message_estate_btn"/>
<button label="Éjecter le résident du domaine..." name="kick_user_from_estate_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_region_texture.xml b/indra/newview/skins/default/xui/fr/panel_region_texture.xml
index da800dc6bd..d312646788 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Textures du sol" name="Textures">
+<panel label="Textures du sol" name="Textures">
<text name="region_text_lbl">
Région :
</text>
@@ -71,6 +69,4 @@
et la valeur HAUTE correspond à la hauteur MINIMUM de la Texture #4.
</text>
<button label="Appliquer" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 6bdee836d9..070d2cd1a5 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -488,16 +488,16 @@
Choisir le répertoire
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Maj-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -604,6 +604,9 @@
<string name="no_ability_error">
Vous n&apos;avez pas ce pouvoir.
</string>
+ <string name="no_ability">
+ Vous n&apos;avez pas ce pouvoir.
+ </string>
<string name="not_a_mod_error">
Vous n&apos;êtes pas modérateur de session.
</string>
@@ -622,4 +625,31 @@
<string name="close_on_no_ability">
Vous ne pouvez plus participer à la session de chat.
</string>
+ <string name="AcctTypeResident">
+ Résident
+ </string>
+ <string name="AcctTypeTrial">
+ Essai
+ </string>
+ <string name="AcctTypeCharterMember">
+ Membre originaire
+ </string>
+ <string name="AcctTypeEmployee">
+ Employé(e) de Linden Lab
+ </string>
+ <string name="PaymentInfoUsed">
+ Infos de paiement utilisées
+ </string>
+ <string name="PaymentInfoOnFile">
+ Infos de paiement enregistrées
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Aucune info de paiement
+ </string>
+ <string name="AgeVerified">
+ Âge vérifié
+ </string>
+ <string name="NotAgeVerified">
+ Âge non vérifié
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/it/floater_sell_land.xml b/indra/newview/skins/default/xui/it/floater_sell_land.xml
index d9cf612d33..79dd2c5abf 100644
--- a/indra/newview/skins/default/xui/it/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Vendi terra">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Terreno:
</text>
@@ -58,4 +60,6 @@ cambieranno proprietario.
</text>
<button label="Metti la terra in vendita" name="sell_btn"/>
<button label="Annulla" name="cancel_btn"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index d4d70f3367..8fc1818ccc 100644
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
@@ -160,7 +160,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Puoi modificare questo oggetto.
+ Puoi modificare questo oggetto
</text>
<text name="B:">
B:
@@ -188,28 +188,28 @@
<check_box name="checkbox next owner can transfer" left_delta="67"/>
</panel>
<string name="text modify info 1">
- Puoi modificare questo oggetto.
+ Puoi modificare questo oggetto
</string>
<string name="text modify info 2">
- Puoi modificare questi oggetti.
+ Puoi modificare questi oggetti
</string>
<string name="text modify info 3">
- Non puoi modificare questo oggetto.
+ Non puoi modificare questo oggetto
</string>
<string name="text modify info 4">
- Non puoi modificare questi oggetti.
+ Non puoi modificare questi oggetti
</string>
<string name="text modify warning">
- Devi selezionare l&apos;intero oggetto per impostare i permessi.
+ Devi selezionare l&apos;intero oggetto per impostare i permessi
</string>
<string name="Cost Default">
- Prezzo: L$
+ Prezzo: L$
</string>
<string name="Cost Total">
- Prezzo totale: L$
+ Prezzo totale: L$
</string>
<string name="Cost Per Unit">
- Prezzo per: L$
+ Prezzo per: L$
</string>
<string name="Cost Mixed">
Prezzo misto
@@ -502,8 +502,8 @@
<button label="Allinea" label_selected="Allinea" name="button align" left="160"/>
</panel>
<panel label="Contenuto" name="Contents">
- <button label="Nuovo Script" label_selected="Nuovo script..." name="button new script"/>
- <button label="Permessi..." name="button permissions"/>
+ <button label="Nuovo Script" label_selected="Nuovo script" name="button new script"/>
+ <button label="Permessi" name="button permissions"/>
<panel name="ContentsInventory" width="272" />
</panel>
</tab_container>
@@ -518,18 +518,18 @@
Area: [AREA] m²
</text>
<button label="Informazioni sul terreno..." label_selected="Informazioni sul terreno..." name="button about land" width="156"/>
- <check_box label="Mostra i proprietari" name="checkbox show owners" tool_tip="Colora i terreni in base ai loro proprietari"/>
+ <check_box label="Mostra i proprietari" name="checkbox show owners" tool_tip="Colora i terreni in base ai loro proprietari: &#10;&#10;Verde = il tuo terreno &#10;Acqua = la terra del tuo gruppo &#10;Rosso = posseduta da altri &#10;Giallo = in vendita &#10;Viola = in asta &#10;Grigia = pubblica"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="120"/>
<text name="label_parcel_modify">
Modifica il terreno
</text>
- <button label="Suddividi..." label_selected="Suddividi..." name="button subdivide land" width="156"/>
- <button label="Unisci..." label_selected="Unisci..." name="button join land" width="156"/>
+ <button label="Suddividi" label_selected="Suddividi" name="button subdivide land" width="156"/>
+ <button label="Unisci" label_selected="Unisci" name="button join land" width="156"/>
<text name="label_parcel_trans">
Transazioni del territorio
</text>
- <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land" width="156"/>
- <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land" width="156"/>
+ <button label="Acquista il terreno" label_selected="Acquista il terreno" name="button buy land" width="156"/>
+ <button label="Abbandona il terreno" label_selected="Abbandona il terreno" name="button abandon land" width="156"/>
</panel>
<floater.string name="status_rotate">
Sposta le fasce colorate per ruotare l&apos;oggetto
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index d85dd7732a..8f8a969ace 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -1747,7 +1747,7 @@ Se questa opzione è selezionato i compratori possono rivendere i loro terreni i
Impostazione base: Non consentire
</notification>
<notification label="Disabilita gli script" name="HelpRegionDisableScripts">
- Se le prestazioni di una sim sono basse, probabilmente è colpa di uno script. Apri la &apos;Barra delle statistiche&apos; (Ctrl-Shift-1). Controlla il FPS della fisica del simulatore.
+ Se le prestazioni di una sim sono basse, probabilmente è colpa di uno script. Apri la &apos;Barra delle statistiche&apos; (Ctrl+Shift+1). Controlla il FPS della fisica del simulatore.
Se è più basso di 45, apri il pannello &apos;Time&apos; (Tempi) collocato ln fondo alla &apos;Barra delle statistiche&apos;
Se il tempo per gli script è di 25 ms o più alto, clicca sul bottone &apos;Visualizza l&apos;elenco degli script più pesanti...&apos;. Ti verrà dato il nome e l&apos;ubicazione degli script che probabilmente causano una cattiva prestazione.
@@ -1758,7 +1758,7 @@ Impostazione base: spento
</notification>
<notification label="Disabilita le collisioni" name="HelpRegionDisableCollisions">
Quando le prestazioni della sim sono basse, può darsi che la colpa sia di oggetti fisici.
-Apri la &apos;Barra delle statistiche&apos; (Ctrl-Shift-1).
+Apri la &apos;Barra delle statistiche&apos; (Ctrl+Shift+1).
Controlla il FPS della fisica del simulatore.
Se è più basso di 45, apri il pannello &apos;Time&apos; (Tempi) collocato in fondo alla &apos;Barra delle statistiche&apos;.
Se il tempo della sim (fisica) risulta 20 ms o più, clicca sul bottone &apos;mostra gli oggetti che collidono di più&apos;.
@@ -1987,9 +1987,9 @@ Trasferisci gli elementi nell&apos;inventario?
<usetemplate ignoretext="Quando si trasferiscono oggetti scriptati non copiabili nell&apos;inventario." name="okcancelignore" notext="Annulla" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Attenzione: L&apos;azione di pagamento automatico al click è stata impostata, ma funzionerà solo se aggiungi uno script con un evento money().
+ Attenzione: L&apos;azione &apos;Paga l&apos;oggetto&apos; al click è stata impostata, ma funzionerà solo se aggiungi uno script con un evento money().
<form name="form">
- <ignore name="ignore" text="Quando imposti il &apos;Pagamento&apos; di oggetti senza l&apos;evento money()"/>
+ <ignore name="ignore" text="Quando imposti il &apos;Paga l&apos;oggetto&apos; senza l&apos;evento money()"/>
</form>
</notification>
<notification name="OpenObjectCannotCopy">
@@ -2923,7 +2923,7 @@ Gli oggetti flessibili non possono essere fisici e devano essere fantasma fino a
<notification name="FirstDebugMenus">
Hai attivato il menu Avanzato.
Questo menu contiene funzioni utili per gli sviluppatori per il debug di [SECOND_LIFE].
-Per attivare o disattivare questo menu su Windows premere Ctrl-Alt-D. Su Mac premere &#8984;-Opt-D.
+Per attivare o disattivare questo menu su Windows premere Ctrl+Alt+D. Su Mac premere &#8997;&#8984;D.
</notification>
<notification name="FirstSculptedPrim">
Si sta modificando uno sculpted prim.
diff --git a/indra/newview/skins/default/xui/it/panel_edit_profile.xml b/indra/newview/skins/default/xui/it/panel_edit_profile.xml
new file mode 100644
index 0000000000..0eba7bf3b6
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Residente" />
+ <string name="AcctTypeTrial"
+ value="Prova" />
+ <string name="AcctTypeCharterMember"
+ value="Membro privilegiato" />
+ <string name="AcctTypeEmployee"
+ value="Impiegato della Linden Lab" />
+ <string name="PaymentInfoUsed"
+ value="Info. di pagamento usate" />
+ <string name="PaymentInfoOnFile"
+ value="Info. di pagamento in archivio" />
+ <string name="NoPaymentInfoOnFile"
+ value="Nessuna info. di pagamento" />
+ <string name="AgeVerified"
+ value="Età verificata" />
+ <string name="NotAgeVerified"
+ value="Età non verificata" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=it
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partner:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Risposta agli IM quando sono in &apos;Occupato&apos;:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml
index 08d6268f5b..2bc4d82082 100644
--- a/indra/newview/skins/default/xui/it/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_general.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Generale" name="general_tab">
<string name="help_text">
- Il pannello &apos;Generale&apos; contiene informazioni generali riguardanti il
-gruppo, un elenco dei proprietari e i membri visibili,
-le preferenze generali di gruppo e le opzioni dei membri.
+ Il pannello &apos;Generale&apos; contiene informazioni generali riguardanti il gruppo, un elenco dei proprietari e i membri visibili, le preferenze generali di gruppo e le opzioni dei membri.
Passa il mouse sulle opzioni per un aiuto aggiuntivo.
</string>
@@ -47,7 +45,7 @@ Passa il mouse sulle opzioni per un aiuto aggiuntivo.
<panel name="preferences_container">
<check_box label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Lascia che i residenti vedano questo gruppo nella ricerca."/>
<check_box label="Iscrizione libera" name="open_enrollement" tool_tip="Imposta se questo gruppo permette ai nuovi membri di unirsi senza essere invitati."/>
- <check_box label="Tassa di iscrizione: L$" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa di iscrizione per unirsi al gruppo."/>
+ <check_box label="Tassa di iscrizione:" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa di iscrizione per unirsi al gruppo."/>
<spinner width="60" left_delta="136" name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa per unirsi al gruppo. La tassa di iscrizione è selezionata."/>
<combo_box name="group_mature_check" tool_tip="Imposta se le informazioni sul tuo gruppo sono da considerarsi Mature.">
<combo_box.item name="select_mature" label="- Seleziona -"/>
diff --git a/indra/newview/skins/default/xui/it/panel_group_land_money.xml b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
index 5f54d8cd25..3e6684ed06 100644
--- a/indra/newview/skins/default/xui/it/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
@@ -47,8 +47,11 @@
<string name="land_contrib_error">
Non è possibile impostare i tuoi contributi in terra.
</string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
<text name="your_contribution_max_value">
- m² ([AMOUNT] massimo)
+ ([AMOUNT] massimo)
</text>
<text name="group_over_limit_text">
I membri del gruppo devono contribuire con più crediti per mantenere
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index 4c6a7d8eb3..e6cd6e67b2 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG, Mature e Adult"/>
<combo_box.item name="Desired_Mature" label="PG e Mature"/>
- <combo_box.item name="Desired_PG" label="solo PG"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- solo PG
+ PG
</text>
<text name="start_location_textbox">
Punto di partenza:
diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml
index 345e8c532c..5b95b7378b 100644
--- a/indra/newview/skins/default/xui/it/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Proprietà immobiliari" name="Estate">
+<panel label="Proprietà immobiliari" name="Estate">
<text name="estate_help_text">
I cambiamenti alle impostazioni in questa finestra
avranno effetto su tutte le regioni della proprietà.
@@ -68,6 +66,4 @@ avranno effetto su tutte le regioni della proprietà.
<button label="?" name="ban_resident_help"/>
<button label="Rimuovi..." name="remove_banned_avatar_btn"/>
<button label="Aggiungi..." name="add_banned_avatar_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_texture.xml b/indra/newview/skins/default/xui/it/panel_region_texture.xml
index 976a93abb8..254700e9f1 100644
--- a/indra/newview/skins/default/xui/it/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Texture del terreno" name="Textures">
+<panel label="Texture del terreno" name="Textures">
<text name="region_text_lbl">
Regione:
</text>
@@ -56,6 +54,4 @@
  Texture #1, e il valore più ALTO all&apos;altezza MINIMA della Texture #4.
</text>
<button label="Applica" name="apply_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index 67b946e1de..bc3cc38a40 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -484,16 +484,16 @@
Scegli la cartella
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -600,6 +600,9 @@
<string name="no_ability_error">
Non hai questa abilitazione.
</string>
+ <string name="no_ability">
+ Non hai questa abilitazione.
+ </string>
<string name="not_a_mod_error">
Non sei un moderatore.
</string>
@@ -618,4 +621,31 @@
<string name="close_on_no_ability">
Non hai più le abilitazioni per rimanere nella sessione chat.
</string>
+ <string name="AcctTypeResident">
+ Residente
+ </string>
+ <string name="AcctTypeTrial">
+ Prova
+ </string>
+ <string name="AcctTypeCharterMember">
+ Membro privilegiato
+ </string>
+ <string name="AcctTypeEmployee">
+ Impiegato della Linden Lab
+ </string>
+ <string name="PaymentInfoUsed">
+ Info. di pagamento usate
+ </string>
+ <string name="PaymentInfoOnFile">
+ Info. di pagamento in archivio
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Nessuna info. di pagamento
+ </string>
+ <string name="AgeVerified">
+ Età verificata
+ </string>
+ <string name="NotAgeVerified">
+ Età non verificata
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index 3860c599fb..5193e5bba1 100644
--- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="sell land" title="土地を販売" height="496" min_height="496" >
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
区画:
</text>
@@ -63,4 +65,6 @@
</text>
<button label="販売を決定" name="sell_btn" bottom="-489"/>
<button label="取り消し" name="cancel_btn" />
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index 36aec17f9a..5840773dbd 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -192,13 +192,13 @@
権限を設定するには、オブジェクト全体を選択する必要があります。
</string>
<string name="Cost Default">
- 価格: L$
+ 価格: L$
</string>
<string name="Cost Total">
- 合計価格: L$
+ 合計価格: L$
</string>
<string name="Cost Per Unit">
- 単価: L$
+ 単価: L$
</string>
<string name="Cost Mixed">
混合価格
@@ -442,7 +442,7 @@
</panel>
<panel label="中身" name="Contents">
<button label="新しいスクリプト" label_selected="新しいスクリプト" name="button new script" width="120"/>
- <button label="権限..." name="button permissions" left_delta="130" width="80"/>
+ <button label="権限" name="button permissions" left_delta="130" width="80"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -456,18 +456,18 @@
面積:[AREA]平方メートル
</text>
<button label="土地情報..." label_selected="土地情報..." name="button about land"/>
- <check_box label="オーナーを表示" name="checkbox show owners" tool_tip="所有権別に区画を色分けします"/>
+ <check_box label="オーナーを表示" name="checkbox show owners" tool_tip="所有権別に区画を色分けします: &#10;&#10;緑 = あなたの土地 &#10;アクア = あなたのグループ所有地 &#10;赤 = 他人が所有する土地 &#10;黄色 = 売り出し中 &#10;紫 = オークション &#10;グレー = パブリック"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="114"/>
<text name="label_parcel_modify">
区画の編集
</text>
- <button label="再分割..." label_selected="再分割..." name="button subdivide land"/>
- <button label="統合する..." label_selected="統合する..." name="button join land"/>
+ <button label="再分割" label_selected="再分割" name="button subdivide land"/>
+ <button label="統合する" label_selected="統合する" name="button join land"/>
<text name="label_parcel_trans">
土地取引
</text>
- <button label="土地を購入..." label_selected="土地を購入..." name="button buy land"/>
- <button label="土地を放棄..." label_selected="土地を放棄..." name="button abandon land"/>
+ <button label="土地を購入" label_selected="土地を購入" name="button buy land"/>
+ <button label="土地を放棄" label_selected="土地を放棄" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
色の付いたバンドをドラッグしてオブジェクトを回転
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 5c22fbf474..4d067d2823 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -1809,7 +1809,7 @@ L$[AMOUNT]で、このクラシファイド広告を今すぐ公開しますか
</notification>
<notification label="スクリプトを無効化" name="HelpRegionDisableScripts">
スクリプトが原因でシムの状況が悪くなる場合があります。
-統計グラフをだして(Ctrl-Shift-1)、
+統計グラフをだして(Ctrl+Shift+1)、
シミュレーターフィジックスFPSを見てください。
45より数が低ければ、一番下に位置しているタイムパネルを開いてください。
スクリプト時間が25ms以上であれば、
@@ -1828,7 +1828,7 @@ L$[AMOUNT]で、このクラシファイド広告を今すぐ公開しますか
<notification label="衝突を無効化" name="HelpRegionDisableCollisions">
物理的オブジェクトが原因で、
シムの処理が重くなることがあります。
-統計グラフを開いて(Ctrl-Shift-1)、
+統計グラフを開いて(Ctrl+Shift+1)、
シミュレーターフィジックスFPSを見てください。
数値が45より低ければ、統計バーの下に位置しているタイムパネルを開いてください。
もしシムタイム(物理的作用)が20 msより長い場合は、
@@ -3128,8 +3128,8 @@ Mキーを押して変更します。
[SECOND_LIFE] をデバッグするデベロッパーにとって
有用な機能があります。
このメニューを切り替えるには、
-WindowsではCtrl-Alt-Dを押します。
-Macの場合は、&#8984;-Opt-Shift-Dを押してください。
+WindowsではCtrl+Alt+Dを押します。
+Macの場合は、&#8997;&#8984;Dを押してください。
</notification>
<notification name="FirstSculptedPrim">
スカルプトプリムを編集しています。
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
new file mode 100644
index 0000000000..ca4ab3e773
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="住人" />
+ <string name="AcctTypeTrial"
+ value="トライアル" />
+ <string name="AcctTypeCharterMember"
+ value="特権メンバー" />
+ <string name="AcctTypeEmployee"
+ value="Linden Lab従業員" />
+ <string name="PaymentInfoUsed"
+ value="支払い情報登録済" />
+ <string name="PaymentInfoOnFile"
+ value="支払い情報登録済み" />
+ <string name="NoPaymentInfoOnFile"
+ value="支払い情報未登録" />
+ <string name="AgeVerified"
+ value="年齢確認済み" />
+ <string name="NotAgeVerified"
+ value="年齢未確認" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=ja
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="パートナー:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ 取り込み中応答メッセージ:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml
index 266937e216..43e3ca69ef 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -47,7 +47,7 @@
<panel name="preferences_container">
<check_box label="検索に表示" name="show_in_group_list" tool_tip="このグループを検索結果に表示させます"/>
<check_box label="会員募集" name="open_enrollement" tool_tip="招待状なしに自由にこのグループに加入することを許可するかどうかを指定します"/>
- <check_box label="入会費:L$" name="check_enrollment_fee" tool_tip="このグループへの参加に入会費を必須とするかどうかを指定します"/>
+ <check_box label="入会費:" name="check_enrollment_fee" tool_tip="このグループへの参加に入会費を必須とするかどうかを指定します"/>
<spinner name="spin_enrollment_fee" tool_tip="「入会費」がチェックされている場合、新規会員は入会時にここに指定された金額を支払う必要があります"/>
<combo_box name="group_mature_check" tool_tip="グループ情報がMature向けかどうかの設定をします。">
<combo_box.item name="select_mature" label="- Matureの選択 -"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
index 019d42c40a..595d315cf9 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
@@ -48,8 +48,11 @@
<string name="land_contrib_error">
土地の出資設定を行うことができませんでした。
</string>
+ <text name="your_contribution_units">
+ (平方メートル)
+ </text>
<text name="your_contribution_max_value">
- 平方メートル ([AMOUNT]最大)
+ ([AMOUNT]最大)
</text>
<text name="group_over_limit_text">
使用中の土地をサポートするには、グループ・メンバーがさらに多
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 6c3ad93d4f..584fcd6164 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG、Mature、Adult"/>
<combo_box.item name="Desired_Mature" label="PGとMature"/>
- <combo_box.item name="Desired_PG" label="PG限定"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- PG限定
+ PG
</text>
<text name="start_location_textbox">
ログイン位置:
diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index ce4f3c19b2..186820f00a 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="不動産" name="Estate">
+<panel label="不動産" name="Estate">
<text name="estate_help_text">
このタブの設定を変更するとこの不動産内
の全ての地域に影響を与えます。
@@ -77,6 +75,4 @@
<button label="メッセージを不動産へ送信..." name="message_estate_btn" />
<button label="土地からユーザーを追い出す..."
name="kick_user_from_estate_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_texture.xml b/indra/newview/skins/default/xui/ja/panel_region_texture.xml
index 19326c82b6..6527f0fbe6 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="地面テクスチャー" name="Textures">
+<panel label="地面テクスチャー" name="Textures">
<text name="region_text_lbl">
地域:
</text>
@@ -56,6 +54,4 @@
そして「高」の値はテクスチャー#4の高さの下限となります。
</text>
<button label="適用" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 7b21146651..0eb26754cf 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -488,16 +488,16 @@
参照
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -603,6 +603,9 @@
<string name="no_ability_error">
あなたにはその能力がありません。
</string>
+ <string name="no_ability">
+ あなたにはその能力がありません。
+ </string>
<string name="not_a_mod_error">
あなたはセッション・モデレータではありません。
</string>
@@ -621,4 +624,31 @@
<string name="close_on_no_ability">
このチャット・セッションを継続することはできません
</string>
+ <string name="AcctTypeResident">
+ 住人
+ </string>
+ <string name="AcctTypeTrial">
+ トライアル
+ </string>
+ <string name="AcctTypeCharterMember">
+ 特権メンバー
+ </string>
+ <string name="AcctTypeEmployee">
+ Linden Lab従業員
+ </string>
+ <string name="PaymentInfoUsed">
+ 支払い情報登録済
+ </string>
+ <string name="PaymentInfoOnFile">
+ 支払い情報登録済み
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ 支払い情報未登録
+ </string>
+ <string name="AgeVerified">
+ 年齢確認済み
+ </string>
+ <string name="NotAgeVerified">
+ 年齢未確認
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/nl/floater_sell_land.xml b/indra/newview/skins/default/xui/nl/floater_sell_land.xml
index ed5cd50165..3981f3ccc2 100644
--- a/indra/newview/skins/default/xui/nl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Verkoop land">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Perceel:
</text>
@@ -58,4 +60,6 @@ zullen van eigenaar veranderen.
</text>
<button label="Zet het land te koop" name="sell_btn"/>
<button label="Annuleren" name="cancel_btn"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_tools.xml b/indra/newview/skins/default/xui/nl/floater_tools.xml
index 0d2c009dc6..cb0c1ad89a 100644
--- a/indra/newview/skins/default/xui/nl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/nl/floater_tools.xml
@@ -159,7 +159,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- U kunt dit object wijzigen.
+ U kunt dit object wijzigen
</text>
<text name="B:">
B:
@@ -187,28 +187,28 @@
<check_box name="checkbox next owner can transfer" left_delta="67"/>
</panel>
<string name="text modify info 1">
- U kunt dit object wijzigen.
+ U kunt dit object wijzigen
</string>
<string name="text modify info 2">
- U kunt deze objecten wijzigen.
+ U kunt deze objecten wijzigen
</string>
<string name="text modify info 3">
- U kunt dit object niet wijzigen.
+ U kunt dit object niet wijzigen
</string>
<string name="text modify info 4">
- U kunt deze objecten niet wijzigen.
+ U kunt deze objecten niet wijzigen
</string>
<string name="text modify warning">
- U moet het hele object selecteren om permissies in te stellen.
+ U moet het hele object selecteren om permissies in te stellen
</string>
<string name="Cost Default">
- Prijs: L$
+ Prijs: L$
</string>
<string name="Cost Total">
- Totale Prijs: L$
+ Totale Prijs: L$
</string>
<string name="Cost Per Unit">
- Prijs per: L$
+ Prijs per: L$
</string>
<string name="Cost Mixed">
Gemengde prijs
@@ -499,8 +499,8 @@
<button label="Uitlijnen" label_selected="Uitlijnen" name="button align" left="155" />
</panel>
<panel label="Inhoud" name="Contents">
- <button label="Nieuw script" label_selected="Nieuw script..." name="button new script"/>
- <button label="Permissies..." name="button permissions"/>
+ <button label="Nieuw script" label_selected="Nieuw script" name="button new script"/>
+ <button label="Permissies" name="button permissions"/>
<panel name="ContentsInventory" width="272" />
</panel>
</tab_container>
@@ -515,18 +515,18 @@
Gebied: [AREA] m².
</text>
<button label="Over land..." label_selected="Over land..." name="button about land"/>
- <check_box label="Toon Eigenaren" name="checkbox show owners" tool_tip="Kleur percelen op basis van hun eigendom"/>
+ <check_box label="Toon Eigenaren" name="checkbox show owners" tool_tip="Kleur percelen op basis van hun eigendom: &#10;&#10;Groen = Uw land &#10;Aqua = Land van uw groep &#10;Rood = Eigendom van anderen &#10;Geel = Te koop &#10;Paars = Ter veiling &#10;Grijs = Openbaar"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="105"/>
<text name="label_parcel_modify">
Wijzig Perceel
</text>
- <button label="Opdelen..." label_selected="Opdelen..." name="button subdivide land"/>
- <button label="Samenvoegen..." label_selected="Samenvoegen..." name="button join land"/>
+ <button label="Opdelen" label_selected="Opdelen" name="button subdivide land"/>
+ <button label="Samenvoegen" label_selected="Samenvoegen" name="button join land"/>
<text name="label_parcel_trans">
Landtransacties
</text>
- <button label="Koop land..." label_selected="Koop land..." name="button buy land"/>
- <button label="Land Afstaan..." label_selected="Land Afstaan..." name="button abandon land"/>
+ <button label="Koop land" label_selected="Koop land" name="button buy land"/>
+ <button label="Land Afstaan" label_selected="Land Afstaan" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
Sleep de gekleurde banden om het object te roteren
diff --git a/indra/newview/skins/default/xui/nl/notifications.xml b/indra/newview/skins/default/xui/nl/notifications.xml
index b47e92b682..9a83eaea61 100644
--- a/indra/newview/skins/default/xui/nl/notifications.xml
+++ b/indra/newview/skins/default/xui/nl/notifications.xml
@@ -1756,7 +1756,7 @@ Indien deze optie is aan gevinkt, kunnen kopers hun land in deze regio verkopen.
Standaard: Niet toestaan
</notification>
<notification label="Scripts Uitschakelen" name="HelpRegionDisableScripts">
- Indien de sim prestaties slecht zijn, kan een script de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Script Tijd 25 ms of hoger is, klik dan op de Top Scripts knop. U krijgt dan een naam en lokatie van scripts die mogelijk de slechte prestaties veroorzaken.
+ Indien de sim prestaties slecht zijn, kan een script de oorzaak zijn. Open de Statistieken balk (Ctrl+Shift+1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Script Tijd 25 ms of hoger is, klik dan op de Top Scripts knop. U krijgt dan een naam en lokatie van scripts die mogelijk de slechte prestaties veroorzaken.
Het aan vinken van Scripts Uitschakelen en vervolgens op de Toepassen knop drukken, zal tijdelijk alle scripts in deze regio uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van het &apos;top script&apos;. Eenmaal aangekomen, onderzoek dan of het script het probleem veroorzaakt. U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
Verwijder het vinkje van Scripts Uitschakelen en klik op Toepassen om scripts weer te reactiveren in de regio.
@@ -1764,7 +1764,7 @@ Verwijder het vinkje van Scripts Uitschakelen en klik op Toepassen om scripts we
Standaard: Uitgeschakeld
</notification>
<notification label="Botsingen Uitschakelen" name="HelpRegionDisableCollisions">
- Indien de sim prestaties slecht zijn, kunnen fysieke objecten de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Sim Tijd (Fysiek) 20 ms of hoger is, klik dan op de Toon Top Botsingen knop. U krijgt dan een naam en lokatie van de fysieke objecten die mogelijk de slecht prestaties veroorzaken.
+ Indien de sim prestaties slecht zijn, kunnen fysieke objecten de oorzaak zijn. Open de Statistieken balk (Ctrl+Shift+1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Sim Tijd (Fysiek) 20 ms of hoger is, klik dan op de Toon Top Botsingen knop. U krijgt dan een naam en lokatie van de fysieke objecten die mogelijk de slecht prestaties veroorzaken.
Het aan vinken van de Botsingen Uitschakelen knop en vervolgens op de Toepassen knop drukken, zal tijdelijk object-object botsingen uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van de &apos;top botsingen&apos;. Eenmaal aangekomen, onderzoek dan het object. Botst het constant met andere objecten? U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
Verwijder het vinkje van Botsingen Uitschakelen en klik op Toepassen om botsingen weer te reactiveren in de regio.
@@ -1991,7 +1991,7 @@ inventaris item(s) verplaatsen?
<usetemplate ignoretext="Indien verplaatsen &apos;niet kopieerbare&apos; inventaris van gescripte objecten" name="okcancelignore" notext="Annuleren" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Waarschuwing: Het Betaal Object aan klik actie is ingesteld, maar het zal alleen werken als er een script is toegevoegd met een money() event.
+ Waarschuwing: Het &apos;Betaal object&apos; aan klik actie is ingesteld, maar het zal alleen werken als er een script is toegevoegd met een money() event.
<form name="form">
<ignore name="ignore" text="Indien instellen &apos;Betaal&apos; op objecten zonder money() events"/>
</form>
@@ -2916,7 +2916,7 @@ Flexibele objecten mogen niet fysiek zijn en moeten fantoom zijn tot de &apos;fl
<notification name="FirstDebugMenus">
U heeft het menu Geavanceerd geactiveerd.
Dit menu bevat opties die handig zijn voor ontwikkelaars tijdens het debuggen van [SECOND_LIFE].
-Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl-Alt-D. Met een Mac drukt u &#8984;-Opt-D.
+Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl+Alt+D. Met een Mac drukt u &#8997;&#8984;D.
</notification>
<notification name="FirstSculptedPrim">
U bent een sculpted prim aan het bewerken.
diff --git a/indra/newview/skins/default/xui/nl/panel_edit_profile.xml b/indra/newview/skins/default/xui/nl/panel_edit_profile.xml
new file mode 100644
index 0000000000..00f8c087de
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Inwoner" />
+ <string name="AcctTypeTrial"
+ value="Proef" />
+ <string name="AcctTypeCharterMember"
+ value="Charter lid" />
+ <string name="AcctTypeEmployee"
+ value="Linden Lab werknemer" />
+ <string name="PaymentInfoUsed"
+ value="Betalingsinformatie gebruikt" />
+ <string name="PaymentInfoOnFile"
+ value="Betalingsinformatie aanwezig" />
+ <string name="NoPaymentInfoOnFile"
+ value="Geen betalingsinfo aanwezig" />
+ <string name="AgeVerified"
+ value="Leeftijd geverifieerd" />
+ <string name="NotAgeVerified"
+ value="Leeftijd niet geverifieerd" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=nl
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partner:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Antwoord bij Niet Storen:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_general.xml b/indra/newview/skins/default/xui/nl/panel_group_general.xml
index d92d41bcb3..2a0fe03232 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_general.xml
@@ -45,7 +45,7 @@ Laat uw muis boven de opties zweven voor meer help.
<panel name="preferences_container">
<check_box label="Toon in zoeken" name="show_in_group_list" tool_tip="Stelt in of deze groep zichtbaar is in de zoekresultaten."/>
<check_box label="Vrije toegang" name="open_enrollement" tool_tip="Stelt in of deze groep toestaat dat nieuwe leden lid kunnen worden zonder uitgenodigd te zijn."/>
- <check_box label="Contributiebijdrage: L$" name="check_enrollment_fee" tool_tip="Stelt in of er een contributiebijdrage vereist is om lid te worden van de groep."/>
+ <check_box label="Contributiebijdrage:" name="check_enrollment_fee" tool_tip="Stelt in of er een contributiebijdrage vereist is om lid te worden van de groep."/>
<spinner name="spin_enrollment_fee" tool_tip="Nieuwe leden moeten deze bijdrage betalen om deel te nemen aan de groep wanneer &quot;Contributie bijdrage&quot; is aangevinkt." width="58" left_delta="142"/>
<combo_box name="group_mature_check" tool_tip="Stelt in of uw groepsinformatie als mature beschouwd wordt.">
<combo_box.item name="select_mature" label="- Selecteer -"/>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_estate.xml b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
index 3a8096ce5f..7a5fa801d9 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Estate" name="Estate">
+<panel label="Estate" name="Estate">
<text name="estate_help_text">
Wijzigingen van instellingen op dit tabblad
zullen alle regio&apos;s in de estate beïnvloeden.
@@ -69,6 +67,4 @@ zullen alle regio&apos;s in de estate beïnvloeden.
<button label="?" name="ban_resident_help"/>
<button label="Verwijderen..." name="remove_banned_avatar_btn"/>
<button label="Toevoegen..." name="add_banned_avatar_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_texture.xml b/indra/newview/skins/default/xui/nl/panel_region_texture.xml
index da40926ce2..ff10e20b7c 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Grond texturen" name="Textures">
+<panel label="Grond texturen" name="Textures">
<text name="region_text_lbl">
Regio:
</text>
@@ -56,6 +54,4 @@
en de HIGH waarde is de MINIMUM hoogte van textuur #4.
</text>
<button label="Toepassen" name="apply_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index bb073f735d..49ebcd319c 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -487,16 +487,16 @@
Kies folder
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -604,6 +604,9 @@
<string name="no_ability_error">
U beschikt niet over die mogelijkheid.
</string>
+ <string name="no_ability">
+ U beschikt niet over die mogelijkheid.
+ </string>
<string name="not_a_mod_error">
U bent geen sessie moderateur
</string>
@@ -622,4 +625,31 @@
<string name="close_on_no_ability">
U heeft niet langer de mogelijkheid om in deze chatsessie te zijn.
</string>
+ <string name="AcctTypeResident">
+ Inwoner
+ </string>
+ <string name="AcctTypeTrial">
+ Proef
+ </string>
+ <string name="AcctTypeCharterMember">
+ Charter lid
+ </string>
+ <string name="AcctTypeEmployee">
+ Linden Lab werknemer
+ </string>
+ <string name="PaymentInfoUsed">
+ Betalingsinformatie gebruikt
+ </string>
+ <string name="PaymentInfoOnFile">
+ Betalingsinformatie aanwezig
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Geen betalingsinfo aanwezig
+ </string>
+ <string name="AgeVerified">
+ Leeftijd geverifieerd
+ </string>
+ <string name="NotAgeVerified">
+ Leeftijd niet geverifieerd
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pl/floater_sell_land.xml b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
index 70451fb5f6..579dcd6745 100755
--- a/indra/newview/skins/default/xui/pl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="sell land" title="Sell Land">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Posiadłość:
</text>
@@ -55,4 +57,6 @@
</text>
<button label="Wystaw Ziemię na Sprzedaż" name="sell_btn" />
<button label="Anuluj" name="cancel_btn" />
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index ad03e6e9f0..c9e7a7e9eb 100755
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
@@ -191,28 +191,28 @@
<check_box name="checkbox next owner can transfer"/>
</panel>
<string name="text modify info 1">
- Możesz modyfikować ten obiekt.
+ Możesz modyfikować ten obiekt
</string>
<string name="text modify info 2">
- Możesz modyfikować te obiekty.
+ Możesz modyfikować te obiekty
</string>
<string name="text modify info 3">
- Nie możesz modyfikować tego obiektu.
+ Nie możesz modyfikować tego obiektu
</string>
<string name="text modify info 4">
- Nie możesz modyfikować tych obieków.
+ Nie możesz modyfikować tych obieków
</string>
<string name="text modify warning">
- Musisz zaznaczyć cały obiekt by ustawić prawa.
+ Musisz zaznaczyć cały obiekt by ustawić prawa
</string>
<string name="Cost Default">
- Cena: L$
+ Cena: L$
</string>
<string name="Cost Total">
- Cena Całości: L$
+ Cena Całości: L$
</string>
<string name="Cost Per Unit">
- Cena Za: L$
+ Cena Za: L$
</string>
<string name="Cost Mixed">
Cena Mieszana
@@ -511,8 +511,8 @@
<button label="Dopasuj" label_selected="Dopasuj" name="button align" left="160"/>
</panel>
<panel label="Treść" name="Contents">
- <button label="Nowy Skrypt" label_selected="Nowy Skrypt..." name="button new script"/>
- <button label="Prawa..." name="button permissions"/>
+ <button label="Nowy Skrypt" label_selected="Nowy Skrypt" name="button new script"/>
+ <button label="Prawa" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -526,18 +526,18 @@
Obszar: [AREA] m
</text>
<button label="O Posiadłości..." label_selected="O Posiadłości..." name="button about land"/>
- <check_box label="Pokaż Właścicieli" name="checkbox show owners" tool_tip="Pokoloruj posiadłości zgodnie z przynależnością do właściciela"/>
+ <check_box label="Pokaż Właścicieli" name="checkbox show owners" tool_tip="Pokoloruj posiadłości zgodnie z przynależnością do właściciela: &#10;&#10;Zielony = Twoja Posiadłość &#10;Morski = Posiadłość Twojej Grupy &#10;Czerwony = Posiadłości Innych &#10;Żółty = Na Sprzedaż &#10;Fioletowy = Na Aukcję &#10;Szary = Publiczna"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="120"/>
<text name="label_parcel_modify">
Modyfikuj Posiadłość
</text>
- <button label="Podziel..." label_selected="Podziel..." name="button subdivide land"/>
- <button label="Złącz..." label_selected="Złącz..." name="button join land"/>
+ <button label="Podziel" label_selected="Podziel" name="button subdivide land"/>
+ <button label="Złącz" label_selected="Złącz" name="button join land"/>
<text name="label_parcel_trans">
Transakcje na posiadłości
</text>
- <button label="Kup..." label_selected="Kup..." name="button buy land"/>
- <button label="Anuluj..." label_selected="Anuluj..." name="button abandon land"/>
+ <button label="Kup" label_selected="Kup" name="button buy land"/>
+ <button label="Anuluj" label_selected="Anuluj" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
Przeciągaj kolorowe pierścienie żeby obracać obiekt
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index ef5dad8786..3cf9be507d 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -1713,7 +1713,7 @@ Jeżeli ta opcja jest wybrana kupujący będą mogli odsprzedać posiadłości w
Domyślinie: nie pozwalaj
</notification>
<notification label="Wyłącz Skrypty" name="HelpRegionDisableScripts">
- Słaba wydajność / prędkość symulatora może być spowodowana przez skrypt. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Skryptów wynosi 25 ms lub więcej kliknij na Główne Skrypty. Zobaczysz listę nazw i lokacji skryptów które mogą być odpowiedzialne za pogorszenie wydajności.
+ Słaba wydajność / prędkość symulatora może być spowodowana przez skrypt. Otwórz panel Statystyki (Ctrl+Shift+1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Skryptów wynosi 25 ms lub więcej kliknij na Główne Skrypty. Zobaczysz listę nazw i lokacji skryptów które mogą być odpowiedzialne za pogorszenie wydajności.
Wybranie opcji Wyłącz Skrypty i naciśnięcie Zastosuj tymczasowo wyłączy wszystkie skrypty w tym regionie. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionego Głównego Skryptu.
Po przebyciu na miejsce zobacz skrypt i sprawdź czy jest on źródłem problemu. W razie potrzeby skontaktuj się z właścicielem skryptu albo usuń lub zwróć obiekt.
@@ -1722,7 +1722,7 @@ Wyłączenie opcji Wyłącz Skrypty i naciśnięcie Zastosuj ponownie włączy s
Domyślnie: nie wybrana
</notification>
<notification label="Wyłącz Kolizje" name="HelpRegionDisableCollisions">
- Słaba wydajność / prędkość symulatora może być spowodowana przez fizyczne obiekty. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Symulatora (Fizyka) wynosi 20 ms lub więcej kliknij na Główne Kolizje. Zobaczysz listę nazw i lokacji fizycznych obiektów które mogą być odpowiedzialne za pogorszenie wydajności.
+ Słaba wydajność / prędkość symulatora może być spowodowana przez fizyczne obiekty. Otwórz panel Statystyki (Ctrl+Shift+1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Symulatora (Fizyka) wynosi 20 ms lub więcej kliknij na Główne Kolizje. Zobaczysz listę nazw i lokacji fizycznych obiektów które mogą być odpowiedzialne za pogorszenie wydajności.
Wybranie opcji Wyłącz Kolizje i naciśnięcie Zastosuj tymczasowo wyłączy kolizje obiektów. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionych Główneych Kolizji.
Po przebyciu na miejsce zobacz obiekt i sprawdź czy jest on źródłem kolizji z innymi obiektami. W razie potrzeby skontaktuj się z właścicielem obiektu albo usuń lub zwróć obiekt.
@@ -1936,7 +1936,7 @@ Przenieść obiekty szafy?
<usetemplate ignoretext="Przenosząc szafę bez praw kopiowania ze skryptowanych obiektów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Uwaga: Opcja Zapłać Obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
+ Uwaga: Opcja &apos;Zapłać Obiektowi&apos; została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
<form name="form">
<ignore name="ignore" text="Wybierając opcję Zapłać Obiektowi dla obiektów bez funkcji money()"/>
</form>
@@ -2867,7 +2867,7 @@ Obiekty elastyczne nie mogą być fizyczne i muszą być typu fantom.
<notification name="FirstDebugMenus">
Zaawansowane menu zostało włączone.
To menu zawiera funkcje użyteczne dla programistów analizujących [SECOND_LIFE].
-To menu jest aktywowane dzięki kombinacji klawiszy Ctrl-Alt-D (Windows) lub &#8984;-Opt-D (Mac).
+To menu jest aktywowane dzięki kombinacji klawiszy Ctrl+Alt+D (Windows) lub &#8997;&#8984;D (Mac).
</notification>
<notification name="FirstSculptedPrim">
Edytujesz sculpt.
diff --git a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
new file mode 100644
index 0000000000..e449a92d7e
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Rezydent" />
+ <string name="AcctTypeTrial"
+ value="Próbne" />
+ <string name="AcctTypeCharterMember"
+ value="Członek-zalożyciel" />
+ <string name="AcctTypeEmployee"
+ value="Pracownik Linden Lab" />
+ <string name="PaymentInfoUsed"
+ value="Dane Konta Używane" />
+ <string name="PaymentInfoOnFile"
+ value="Dane Konta Dostępne" />
+ <string name="NoPaymentInfoOnFile"
+ value="Brak Danych Konta" />
+ <string name="AgeVerified"
+ value="Wiek Zweryfikowany" />
+ <string name="NotAgeVerified"
+ value="Brak Weryfikacji Wieku" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=pl
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Partner:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Pracuś Mówi:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_general.xml b/indra/newview/skins/default/xui/pl/panel_group_general.xml
index 5d19485634..d09ff72226 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_general.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Ogólne" name="general_tab">
<string name="help_text">
- Zakładka Ogólne zawiera informacje na temat tej grupy,
-listę właścicieli, widocznych członków,
-ustawienia grupy oraz opcje członkostwa.
+ Zakładka Ogólne zawiera informacje na temat tej grupy, listę właścicieli, widocznych członków, ustawienia grupy oraz opcje członkostwa.
</string>
<string name="group_info_unchanged">
Ogólne informacje na temat grupy uległy zmianie.
@@ -45,7 +43,7 @@ ustawienia grupy oraz opcje członkostwa.
<panel name="preferences_container">
<check_box label="Wyświetlaj w wyszukiwarce" name="show_in_group_list" tool_tip="Udostępnij info o grupie w wyszukiwarce"/>
<check_box label="Wolny Wstęp" name="open_enrollement" tool_tip="Sprawdź czy grupa oferuje wolny wstęp i nie wymaga zaproszenia."/>
- <check_box label="Opłata Wstępu: L$" name="check_enrollment_fee" tool_tip="Ustaw opłatę za przyłączenie się do grupy."/>
+ <check_box label="Opłata Wstępu:" name="check_enrollment_fee" tool_tip="Ustaw opłatę za przyłączenie się do grupy."/>
<spinner name="spin_enrollment_fee" tool_tip="Nowi członkowie grupy muszą zapłacić wymaganą opłatę by dołączyć do grupy."/>
<combo_box name="group_mature_check" tool_tip="Wybierz jeżeli uważasz, iż Twoja grupa klasyfikowana jest jako &apos;Mature&apos;.">
<combo_box.item name="select_mature" label="- Wybierz Treść -"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
index 5080b0963a..dbfa8e3122 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
@@ -48,8 +48,11 @@
<string name="land_contrib_error">
Nie można ustalić Twoich kontrybucji.
</string>
+ <text name="your_contribution_units">
+ ( m )
+ </text>
<text name="your_contribution_max_value">
- metrów ([AMOUNT] maksimum)
+ ([AMOUNT] maksimum)
</text>
<text name="group_over_limit_text">
Członkowie Grupy muszą zwiększyć kredyt na używanie Posiadłości.
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index a7654ef2ff..97b4975f29 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -34,10 +34,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="&apos;PG&apos;, &apos;Mature&apos; oraz &apos;Adult&apos;"/>
<combo_box.item name="Desired_Mature" label="&apos;PG&apos; i &apos;Mature&apos;"/>
- <combo_box.item name="Desired_PG" label="tylko &apos;PG&apos;"/>
+ <combo_box.item name="Desired_PG" label="&apos;PG&apos;"/>
</combo_box>
<text name="maturity_desired_textbox">
- tylko &apos;PG&apos;
+ &apos;PG&apos;
</text>
<text name="start_location_textbox">
Miejsce Startu:
diff --git a/indra/newview/skins/default/xui/pl/panel_region_estate.xml b/indra/newview/skins/default/xui/pl/panel_region_estate.xml
index 4447de517b..4275f3f647 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Majątek" name="Estate">
+<panel label="Majątek" name="Estate">
<text name="estate_help_text">
Zmiany ustawień na tej zakładce odnoszą się
do wszystkich Regionów w tym Majątku.
@@ -73,6 +71,4 @@ do wszystkich Regionów w tym Majątku.
<name_list name="banned_avatar_name_list"/>
<button label="Usuń..." name="remove_banned_avatar_btn"/>
<button label="Dodaj..." name="add_banned_avatar_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_region_texture.xml b/indra/newview/skins/default/xui/pl/panel_region_texture.xml
index ac43f0b2cc..d24579fc75 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Tekstury Gruntu" name="Textures">
+<panel label="Tekstury Gruntu" name="Textures">
<text name="region_text_lbl">
Region:
</text>
@@ -56,6 +54,4 @@
a wartość GÓRA to MINIMALNY poziom dla tekstury #4.
</text>
<button label="Zastosuj" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index 294353ee03..1f67944f86 100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -487,16 +487,16 @@
Wybierz Katalog
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -603,6 +603,9 @@
<string name="no_ability_error">
Nie posiadesz tego przywileju.
</string>
+ <string name="no_ability">
+ Nie posiadesz tego przywileju.
+ </string>
<string name="not_a_mod_error">
Nie jesteś moderatorem konferencji.
</string>
@@ -621,4 +624,31 @@
<string name="close_on_no_ability">
Nie posiadasz praw by uczestniczyć w tej konferencji.
</string>
+ <string name="AcctTypeResident">
+ Rezydent
+ </string>
+ <string name="AcctTypeTrial">
+ Próbne
+ </string>
+ <string name="AcctTypeCharterMember">
+ Członek-zalożyciel
+ </string>
+ <string name="AcctTypeEmployee">
+ Pracownik Linden Lab
+ </string>
+ <string name="PaymentInfoUsed">
+ Dane Konta Używane
+ </string>
+ <string name="PaymentInfoOnFile">
+ Dane Konta Dostępne
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Brak Danych Konta
+ </string>
+ <string name="AgeVerified">
+ Wiek Zweryfikowany
+ </string>
+ <string name="NotAgeVerified">
+ Brak Weryfikacji Wieku
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pt/floater_sell_land.xml b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
index 20f9972c73..d3581405ff 100644
--- a/indra/newview/skins/default/xui/pt/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Vender terreno">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
<text name="info_parcel_label">
Lote:
</text>
@@ -58,4 +60,6 @@ lote irão mudar de propriedade.
</text>
<button label="Definir Terra para Venda" name="sell_btn"/>
<button label="Cancelar" name="cancel_btn"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml
index 7302c1c8f8..d7227deacc 100644
--- a/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tools.xml
@@ -159,7 +159,7 @@
</combo_box>
<panel name="perms_build">
<text name="perm_modify">
- Você pode modificar este objeto.
+ Você pode modificar este objeto
</text>
<text name="B:">
B:
@@ -187,28 +187,28 @@
<check_box name="checkbox next owner can transfer" left_delta="67"/>
</panel>
<string name="text modify info 1">
- Você pode modificar este objeto.
+ Você pode modificar este objeto
</string>
<string name="text modify info 2">
- Você pode modificar estes objetos.
+ Você pode modificar estes objetos
</string>
<string name="text modify info 3">
- Você não pode modificar este objeto.
+ Você não pode modificar este objeto
</string>
<string name="text modify info 4">
- Você não pode modificar estes objetos.
+ Você não pode modificar estes objetos
</string>
<string name="text modify warning">
- Você precisa selecionar o objeto todo para ajustar as permissões.
+ Você precisa selecionar o objeto todo para ajustar as permissões
</string>
<string name="Cost Default">
- Preço: L$
+ Preço: L$
</string>
<string name="Cost Total">
- Preço Total: L$
+ Preço Total: L$
</string>
<string name="Cost Per Unit">
- Preço Por: L$
+ Preço Por: L$
</string>
<string name="Cost Mixed">
Preço Misturado
@@ -498,8 +498,8 @@
<button label="Alinhar" label_selected="Alinhar" name="button align"/>
</panel>
<panel label="Conteúdo" name="Contents">
- <button label="Novo Script" label_selected="Novo Script..." name="button new script"/>
- <button label="Permissões..." name="button permissions"/>
+ <button label="Novo Script" label_selected="Novo Script" name="button new script"/>
+ <button label="Permissões" name="button permissions"/>
<panel name="ContentsInventory" width="272" />
</panel>
</tab_container>
@@ -514,18 +514,18 @@
Área: [AREA] m².
</text>
<button label="Sobre a Terra..." label_selected="Sobre a Terra..." name="button about land"/>
- <check_box label="Mostrar donos" name="checkbox show owners" tool_tip="Colorir lotes de acordo com seus donos"/>
+ <check_box label="Mostrar donos" name="checkbox show owners" tool_tip="Colorir lotes de acordo com seus donos: &#10;&#10;Green = Sua terra &#10;Aqua = Terra do seu grupo &#10;Red = Possuída por outros &#10;Yellow = À venda &#10;Purple = A leilão &#10;Grey = Pública"/>
<button label="?" label_selected="?" name="button show owners help" left_delta="100"/>
<text name="label_parcel_modify">
Modificar Lote
</text>
- <button label="Sub-Dividir..." label_selected="Sub-Dividir..." name="button subdivide land"/>
- <button label="Unir..." label_selected="Unir..." name="button join land"/>
+ <button label="Sub-Dividir" label_selected="Sub-Dividir" name="button subdivide land"/>
+ <button label="Unir" label_selected="Unir" name="button join land"/>
<text name="label_parcel_trans">
Transações com a Terra
</text>
- <button label="Comprar Terra..." label_selected="Comprar Terra.." name="button buy land"/>
- <button label="Abandonar Terra..." label_selected="Abandonar Terra..." name="button abandon land"/>
+ <button label="Comprar Terra" label_selected="Comprar Terra" name="button buy land"/>
+ <button label="Abandonar Terra" label_selected="Abandonar Terra" name="button abandon land"/>
</panel>
<floater.string name="status_rotate">
Arrastar as bandas coloridas para girar o objeto
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 1f15feef49..0ee2c5cb84 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -1730,10 +1730,10 @@ Se esta opção estiver marcada, compradores podem vender seus terrenos nesta re
Padrão: Desabilitada.
</notification>
<notification label="Desabilitar Scripts" name="HelpRegionDisableScripts">
- Quando a performance do simulador está ruim, um script pode ser o culpado. Abra a Barra de Estatísticas (Ctrl-Shift-1). Olhe no Simulador de Física FPS. Se estiver abaixo de 45, então abra o painel &apos;Tempo&apos; localizado na parte de baixo da Barra de Estatísticas. Se o Tempo de Script indicar 25 ms ou mais, clique no botão &apos;Get Top CScripts&apos;. Será dado o nome e a localização do script que pode estar causando uma performance ruim. Marque a caixa &apos;Desabilitar Scripts&apos; e aperte o botão &apos;Aplicar&apos;. Isto temporariamente desabilitará todos os scripts nesta região. Uma vez que você chegar ao local, investigue o script para determinar se ele está causando o problema. Você pode querer entrar em contato com o proprietário do script, excluir ou devolver o objeto. Desmarque a caixa &apos;Desabilitar Script&apos; e então clique em &apos;Aplicar&apos; para reativar os scripts na região. Padrão: desligado.
+ Quando a performance do simulador está ruim, um script pode ser o culpado. Abra a Barra de Estatísticas (Ctrl+Shift+1). Olhe no Simulador de Física FPS. Se estiver abaixo de 45, então abra o painel &apos;Tempo&apos; localizado na parte de baixo da Barra de Estatísticas. Se o Tempo de Script indicar 25 ms ou mais, clique no botão &apos;Get Top CScripts&apos;. Será dado o nome e a localização do script que pode estar causando uma performance ruim. Marque a caixa &apos;Desabilitar Scripts&apos; e aperte o botão &apos;Aplicar&apos;. Isto temporariamente desabilitará todos os scripts nesta região. Uma vez que você chegar ao local, investigue o script para determinar se ele está causando o problema. Você pode querer entrar em contato com o proprietário do script, excluir ou devolver o objeto. Desmarque a caixa &apos;Desabilitar Script&apos; e então clique em &apos;Aplicar&apos; para reativar os scripts na região. Padrão: desligado.
</notification>
<notification label="Desabilitar Colisões" name="HelpRegionDisableCollisions">
- Quando a performance do simulador é pobre, os objetos físicos podem ser os culpados.Abra a a Barra de Estatísticas (Ctrl-Shift-1).
+ Quando a performance do simulador é pobre, os objetos físicos podem ser os culpados.Abra a a Barra de Estatísticas (Ctrl+Shift+1).
Olhe a taxa de quadros por segundos (FPS) dos objetos físicos.
Se ela estiver abaixo de 45, abra o painel de Tempo, localizado na parte inferior da Barra de Estatísticas. Se o Tempo (Físicos) do Simulador mostrar 20 ms ou mais, clique o botão &apos;Pegue os Maiores Colidentes&apos;. Será fornecido a você o nome e a localidade dos objetos físicos que podem estar causando uma performance pobre.
@@ -1954,7 +1954,7 @@ Mover para o inventário o(s) item(s)?
<usetemplate ignoretext="Quando movendo objetos com scripts não copiáveis ao inventário" name="okcancelignore" notext="Não mover" yestext="Mover"/>
</notification>
<notification name="ClickActionNotPayable">
- Aviso: A ação de Pagar ao Objeto com clique foi definida, mas funcionará apenas se for adicionado um script com o evento money().
+ Aviso: A ação de &apos;Pagar Objeto&apos; com clique foi definida, mas funcionará apenas se for adicionado um script com o evento money().
<form name="form">
<ignore name="ignore" text="Quando Definindo &apos;Pagar&apos; em objetos sem eventos money()"/>
</form>
@@ -2875,7 +2875,7 @@ Objetos flexíveis não podem ser físicos e devem ser fantasmas até que a caix
<notification name="FirstDebugMenus">
Você ativou o menu Avançado.
Este menu contém funcionalidades úteis para desenvolvedores debugarem o [SECOND_LIFE].
-Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione &#8984;-Opt-D.
+Para mostrar esse menu no Windows pressione Ctrl+Alt+D. No Mac pressione &#8997;&#8984;D.
</notification>
<notification name="FirstSculptedPrim">
Você está editando uma primitiva esculpida.
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_profile.xml b/indra/newview/skins/default/xui/pt/panel_edit_profile.xml
new file mode 100644
index 0000000000..e97e77cfe6
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_edit_profile.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="edit_profile_panel">
+ <string name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </string>
+ <string name="AcctTypeResident"
+ value="Residente" />
+ <string name="AcctTypeTrial"
+ value="Teste" />
+ <string name="AcctTypeCharterMember"
+ value="Estatuto do membro" />
+ <string name="AcctTypeEmployee"
+ value="Contratado da Linden Lab" />
+ <string name="PaymentInfoUsed"
+ value="Infor. de pagamento utilizadas" />
+ <string name="PaymentInfoOnFile"
+ value="Infor. de pagamento no arquivo" />
+ <string name="NoPaymentInfoOnFile"
+ value="Sem infor. de pagamento no arquivo" />
+ <string name="AgeVerified"
+ value="Idade Verificada" />
+ <string name="NotAgeVerified"
+ value="Idade não Verificada" />
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=pt
+ </string>
+ <panel name="scroll_content_panel">
+ <panel name="data_panel" >
+ <panel name="lifes_images_panel">
+ <panel name="second_life_image_panel">
+ <text name="second_life_photo_title_text">
+ [SECOND_LIFE]:
+ </text>
+ </panel>
+ </panel>
+ <text name="title_partner_text" value="Parceiro:"/>
+ <panel name="partner_data_panel">
+ <text name="partner_text" value="[FIRST] [LAST]"/>
+ </panel>
+ <text name="text_box3">
+ Resposta no Modo Ocupado:
+ </text>
+ </panel>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml
index bdaa0e72f5..226011c138 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -43,7 +43,7 @@
<panel name="preferences_container">
<check_box label="Mostre na busca" name="show_in_group_list" tool_tip="Deixe as pessoas verem este grupo nos resultados de busca."/>
<check_box label="Adesão aberta" name="open_enrollement" tool_tip="Definir se este grupo permite que novos membros entrem sem serem convidados"/>
- <check_box label="Taxa de adesão: L$" name="check_enrollment_fee" tool_tip="Define se é necessária uma taxa de adesão para se unir ao grupo."/>
+ <check_box label="Taxa de adesão:" name="check_enrollment_fee" tool_tip="Define se é necessária uma taxa de adesão para se unir ao grupo."/>
<spinner width="60" left_delta="120" name="spin_enrollment_fee" tool_tip="Os novos membros devem pagar esta taxa para se unir ao grupo quando a Taxa de Adesão está marcada."/>
<combo_box width="170" name="group_mature_check" tool_tip="Define se a informação do seu grupo é considerada mature.">
<combo_box.item name="select_mature" label="- Selecionar Maturidade -"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index 103da6d67d..5b09363e3c 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
@@ -47,8 +47,11 @@
<string name="land_contrib_error">
Não é possível definir sua contribuição para o terreno.
</string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
<text name="your_contribution_max_value">
- m² ([AMOUNT] máxima)
+ ([AMOUNT] máxima)
</text>
<text name="group_over_limit_text">
Membros do grupo precisam contribuir com mais créditos de Terra para
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index e50713c0c8..8bde39545c 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -33,10 +33,10 @@
<combo_box name="maturity_desired_combobox">
<combo_box.item name="Desired_Adult" label="PG, Mature e Adult"/>
<combo_box.item name="Desired_Mature" label="PG e Mature"/>
- <combo_box.item name="Desired_PG" label="apenas PG"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
</combo_box>
<text name="maturity_desired_textbox">
- apenas PG
+ PG
</text>
<text name="start_location_textbox">
Posição Inicial:
diff --git a/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
index e62ba85763..f43402be15 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="EstateWrapper">
- <scroll_container name="container1">
- <panel label="Propriedade" name="Estate">
+<panel label="Propriedade" name="Estate">
<text name="estate_help_text">
Mudanças nas definições nesta guia irão afetar
todas as regiões desta propriedade.
@@ -68,6 +66,4 @@ todas as regiões desta propriedade.
<button label="?" name="ban_resident_help"/>
<button label="Remover..." name="remove_banned_avatar_btn"/>
<button label="Adicionar..." name="add_banned_avatar_btn"/>
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_region_texture.xml b/indra/newview/skins/default/xui/pt/panel_region_texture.xml
index 2fdba79807..4787b59a8d 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_texture.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="TextureWrapper">
- <scroll_container name="container1">
- <panel label="Texturas de Chão" name="Textures">
+<panel label="Texturas de Chão" name="Textures">
<text name="region_text_lbl">
Região:
</text>
@@ -56,6 +54,4 @@
e o valor Alto é a altura Mínima da Textura #4.
</text>
<button label="Aplicar" name="apply_btn" />
- </panel>
- </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index b6788567e2..2d3514e5fe 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -484,16 +484,16 @@
Escolher Diretório
</string>
<string name="accel-mac-control">
- Ctrl-
+ &#8963;
</string>
<string name="accel-mac-command">
- Cmd-
+ &#8984;
</string>
<string name="accel-mac-option">
- Opt-
+ &#8997;
</string>
<string name="accel-mac-shift">
- Shift-
+ &#8679;
</string>
<string name="accel-win-control">
Ctrl+
@@ -599,6 +599,9 @@
<string name="no_ability_error">
Você não possui esta habilidade.
</string>
+ <string name="no_ability">
+ Você não possui esta habilidade.
+ </string>
<string name="not_a_mod_error">
Você não é um moderador de sessão.
</string>
@@ -617,4 +620,31 @@
<string name="close_on_no_ability">
Você não possui mais a habilidade de estar na sessão de bate-papo.
</string>
+ <string name="AcctTypeResident">
+ Residente
+ </string>
+ <string name="AcctTypeTrial">
+ Teste
+ </string>
+ <string name="AcctTypeCharterMember">
+ Estatuto do membro
+ </string>
+ <string name="AcctTypeEmployee">
+ Contratado da Linden Lab
+ </string>
+ <string name="PaymentInfoUsed">
+ Infor. de pagamento utilizadas
+ </string>
+ <string name="PaymentInfoOnFile">
+ Infor. de pagamento no arquivo
+ </string>
+ <string name="NoPaymentInfoOnFile">
+ Sem infor. de pagamento no arquivo
+ </string>
+ <string name="AgeVerified">
+ Idade Verificada
+ </string>
+ <string name="NotAgeVerified">
+ Idade não Verificada
+ </string>
</strings>
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f2e89ef062..06eb1e1265 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -786,20 +786,30 @@ class Linux_i686Manifest(LinuxManifest):
#self.path("secondlife-i686.supp")
if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
- #self.path("libkdu_v42R.so", "libkdu.so")
- self.path("libfmod-3.75.so")
self.path("libapr-1.so.0")
self.path("libaprutil-1.so.0")
self.path("libdb-4.2.so")
self.path("libcrypto.so.0.9.7")
self.path("libexpat.so.1")
self.path("libssl.so.0.9.7")
- self.path("libuuid.so.1", "libuuid.so.1")
+ self.path("libuuid.so.1")
self.path("libSDL-1.2.so.0")
self.path("libELFIO.so")
self.path("libopenjpeg.so.1.3.0", "libopenjpeg.so.1.3")
self.path("libalut.so")
self.path("libopenal.so", "libopenal.so.1")
+ try:
+ self.path("libkdu_v42R.so", "libkdu.so")
+ pass
+ except:
+ print "Skipping libkdu_v42R.so - not found"
+ pass
+ try:
+ self.path("libfmod-3.75.so")
+ pass
+ except:
+ print "Skipping libkdu_v42R.so - not found"
+ pass
self.end_prefix("lib")
# Vivox runtimes