From 5baf0de6a396b120aba4e2351ed5bff70f2562ef Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Mon, 19 Sep 2011 19:13:39 +0300 Subject: EXP-1203 FIXED (As a FUI user, I want the address bar and favorites to be on one line) - Relocated address bar, combined with favorite landmarks EXP-1208 - Added dragger to change amount of space allocated to address bar and favorites bar EXP-1217 - Modified Favorites ->> More spillover EXP-1218 - Combined context menu menuitems for favorites & address bars EXP-1219 --- indra/newview/llviewerwindow.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 5893259d96..3665ed4b5b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1885,12 +1885,7 @@ void LLViewerWindow::initWorldUI() if (!gSavedSettings.getBOOL("ShowNavbarNavigationPanel")) { - navbar->showNavigationPanel(FALSE); - } - - if (!gSavedSettings.getBOOL("ShowNavbarFavoritesPanel")) - { - navbar->showFavoritesPanel(FALSE); + navbar->setVisible(FALSE); } // Top Info bar @@ -2196,7 +2191,9 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible ) LLNavigationBar* navbarp = LLUI::getRootView()->findChild("navigation_bar"); if (navbarp) { - navbarp->setVisible( visible ); + // when it's time to show navigation bar we need to ensure that the user wants to see it + // i.e. ShowNavbarNavigationPanel option is true + navbarp->setVisible( visible && gSavedSettings.getBOOL("ShowNavbarNavigationPanel") ); } } -- cgit v1.3 From bc3f0e0a81af79820a0c0a6877d266fca46ef917 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 20 Sep 2011 18:47:13 -0700 Subject: EXP-1230 FIX As a resident, I want to not have to choose a UI mode removed all references to basic mode --- indra/newview/CMakeLists.txt | 6 - indra/newview/app_settings/settings.xml | 11 - indra/newview/app_settings/settings_minimal.xml | 474 ---- indra/newview/llappviewer.cpp | 15 - indra/newview/lllogininstance.cpp | 10 +- indra/newview/llpanellogin.cpp | 30 - indra/newview/llpanellogin.h | 2 - indra/newview/llstatusbar.cpp | 33 - indra/newview/llstatusbar.h | 2 - indra/newview/llviewermenu.cpp | 100 - indra/newview/llviewermenu.h | 2 - indra/newview/llviewerstats.cpp | 2 +- indra/newview/llviewerwindow.cpp | 19 - .../skins/default/xui/en/menu_mode_change.xml | 24 - .../newview/skins/default/xui/en/notifications.xml | 13 - indra/newview/skins/default/xui/en/panel_login.xml | 27 - .../skins/default/xui/en/panel_status_bar.xml | 19 - indra/newview/skins/minimal/colors.xml | 6 - .../newview/skins/minimal/textures/arrow_keys.png | Bin 6558 -> 0 bytes .../minimal/textures/bottomtray/Speak_Btn_Off.png | Bin 993 -> 0 bytes .../bottomtray/Speak_Btn_Selected_Press.png | Bin 1217 -> 0 bytes .../textures/bottomtray/button_separator.png | Bin 153 -> 0 bytes .../minimal/textures/bottomtray/close_off.png | Bin 3184 -> 0 bytes .../minimal/textures/bottomtray/close_over.png | Bin 3173 -> 0 bytes .../minimal/textures/bottomtray/close_press.png | Bin 3259 -> 0 bytes .../skins/minimal/textures/click_to_move.png | Bin 8188 -> 0 bytes indra/newview/skins/minimal/textures/textures.xml | 11 - .../skins/minimal/xui/da/floater_camera.xml | 65 - .../skins/minimal/xui/da/floater_help_browser.xml | 9 - .../skins/minimal/xui/da/floater_media_browser.xml | 30 - .../skins/minimal/xui/da/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/da/floater_web_content.xml | 14 - .../skins/minimal/xui/da/inspect_avatar.xml | 24 - .../skins/minimal/xui/da/inspect_object.xml | 41 - .../minimal/xui/da/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/da/menu_attachment_other.xml | 17 - .../skins/minimal/xui/da/menu_attachment_self.xml | 16 - .../skins/minimal/xui/da/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/da/menu_avatar_other.xml | 16 - .../skins/minimal/xui/da/menu_avatar_self.xml | 31 - .../skins/minimal/xui/da/menu_bottomtray.xml | 17 - .../skins/minimal/xui/da/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/da/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/da/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/da/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/da/menu_edit.xml | 12 - .../skins/minimal/xui/da/menu_favorites.xml | 10 - .../skins/minimal/xui/da/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/da/menu_group_plus.xml | 5 - .../skins/minimal/xui/da/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/da/menu_im_well_button.xml | 4 - .../skins/minimal/xui/da/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/da/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/da/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/da/menu_inspect_avatar_gear.xml | 21 - .../minimal/xui/da/menu_inspect_object_gear.xml | 18 - .../minimal/xui/da/menu_inspect_self_gear.xml | 31 - .../minimal/xui/da/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/da/menu_inventory.xml | 84 - .../skins/minimal/xui/da/menu_inventory_add.xml | 33 - .../minimal/xui/da/menu_inventory_gear_default.xml | 17 - indra/newview/skins/minimal/xui/da/menu_land.xml | 9 - .../newview/skins/minimal/xui/da/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/da/menu_login.xml | 24 - .../newview/skins/minimal/xui/da/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/da/menu_navbar.xml | 11 - .../skins/minimal/xui/da/menu_nearby_chat.xml | 9 - .../xui/da/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/da/menu_object.xml | 29 - .../skins/minimal/xui/da/menu_object_icon.xml | 5 - .../skins/minimal/xui/da/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/da/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/da/menu_participant_list.xml | 21 - .../xui/da/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/da/menu_people_groups.xml | 8 - .../xui/da/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/da/menu_people_nearby.xml | 13 - .../xui/da/menu_people_nearby_multiselect.xml | 10 - .../xui/da/menu_people_nearby_view_sort.xml | 8 - .../xui/da/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/da/menu_picks.xml | 8 - .../skins/minimal/xui/da/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/da/menu_place.xml | 7 - .../skins/minimal/xui/da/menu_place_add_button.xml | 5 - .../minimal/xui/da/menu_places_gear_folder.xml | 16 - .../minimal/xui/da/menu_places_gear_landmark.xml | 19 - .../skins/minimal/xui/da/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/da/menu_save_outfit.xml | 5 - .../skins/minimal/xui/da/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/da/menu_slurl.xml | 6 - .../minimal/xui/da/menu_teleport_history_gear.xml | 6 - .../minimal/xui/da/menu_teleport_history_item.xml | 6 - .../minimal/xui/da/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/da/menu_text_editor.xml | 8 - .../skins/minimal/xui/da/menu_topinfobar.xml | 7 - .../skins/minimal/xui/da/menu_url_agent.xml | 6 - .../skins/minimal/xui/da/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/da/menu_url_http.xml | 7 - .../skins/minimal/xui/da/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/da/menu_url_map.xml | 6 - .../skins/minimal/xui/da/menu_url_objectim.xml | 8 - .../skins/minimal/xui/da/menu_url_parcel.xml | 6 - .../skins/minimal/xui/da/menu_url_slapp.xml | 5 - .../skins/minimal/xui/da/menu_url_slurl.xml | 7 - .../skins/minimal/xui/da/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/da/menu_viewer.xml | 14 - .../minimal/xui/da/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/da/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/da/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/da/notifications.xml | 1831 ------------ .../minimal/xui/da/panel_adhoc_control_panel.xml | 14 - .../skins/minimal/xui/da/panel_bottomtray.xml | 45 - .../minimal/xui/da/panel_group_control_panel.xml | 17 - .../minimal/xui/da/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/da/panel_login.xml | 48 - .../skins/minimal/xui/da/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/da/panel_people.xml | 94 - .../minimal/xui/da/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/da/panel_status_bar.xml | 33 - .../skins/minimal/xui/de/floater_camera.xml | 65 - .../skins/minimal/xui/de/floater_help_browser.xml | 9 - .../skins/minimal/xui/de/floater_media_browser.xml | 30 - .../skins/minimal/xui/de/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/de/floater_web_content.xml | 14 - .../skins/minimal/xui/de/inspect_avatar.xml | 25 - .../skins/minimal/xui/de/inspect_object.xml | 48 - .../minimal/xui/de/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/de/menu_attachment_other.xml | 17 - .../skins/minimal/xui/de/menu_attachment_self.xml | 16 - .../skins/minimal/xui/de/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/de/menu_avatar_other.xml | 16 - .../skins/minimal/xui/de/menu_avatar_self.xml | 31 - .../skins/minimal/xui/de/menu_bottomtray.xml | 17 - .../skins/minimal/xui/de/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/de/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/de/menu_cof_clothing.xml | 8 - .../newview/skins/minimal/xui/de/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/de/menu_edit.xml | 12 - .../skins/minimal/xui/de/menu_favorites.xml | 10 - .../skins/minimal/xui/de/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/de/menu_group_plus.xml | 5 - .../skins/minimal/xui/de/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/de/menu_im_well_button.xml | 4 - .../skins/minimal/xui/de/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/de/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/de/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/de/menu_inspect_avatar_gear.xml | 18 - .../minimal/xui/de/menu_inspect_object_gear.xml | 18 - .../minimal/xui/de/menu_inspect_self_gear.xml | 8 - .../minimal/xui/de/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/de/menu_inventory.xml | 86 - .../skins/minimal/xui/de/menu_inventory_add.xml | 33 - .../minimal/xui/de/menu_inventory_gear_default.xml | 16 - indra/newview/skins/minimal/xui/de/menu_land.xml | 9 - .../newview/skins/minimal/xui/de/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/de/menu_login.xml | 25 - .../newview/skins/minimal/xui/de/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/de/menu_navbar.xml | 11 - .../skins/minimal/xui/de/menu_nearby_chat.xml | 9 - .../xui/de/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/de/menu_object.xml | 29 - .../skins/minimal/xui/de/menu_object_icon.xml | 5 - .../skins/minimal/xui/de/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/de/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/de/menu_participant_list.xml | 21 - .../xui/de/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/de/menu_people_groups.xml | 8 - .../xui/de/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/de/menu_people_nearby.xml | 13 - .../xui/de/menu_people_nearby_multiselect.xml | 10 - .../xui/de/menu_people_nearby_view_sort.xml | 8 - .../xui/de/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/de/menu_picks.xml | 8 - .../skins/minimal/xui/de/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/de/menu_place.xml | 7 - .../skins/minimal/xui/de/menu_place_add_button.xml | 5 - .../minimal/xui/de/menu_places_gear_folder.xml | 15 - .../minimal/xui/de/menu_places_gear_landmark.xml | 18 - .../skins/minimal/xui/de/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/de/menu_save_outfit.xml | 5 - .../skins/minimal/xui/de/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/de/menu_slurl.xml | 6 - .../minimal/xui/de/menu_teleport_history_gear.xml | 6 - .../minimal/xui/de/menu_teleport_history_item.xml | 6 - .../minimal/xui/de/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/de/menu_text_editor.xml | 8 - .../skins/minimal/xui/de/menu_topinfobar.xml | 7 - .../skins/minimal/xui/de/menu_url_agent.xml | 6 - .../skins/minimal/xui/de/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/de/menu_url_http.xml | 7 - .../skins/minimal/xui/de/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/de/menu_url_map.xml | 6 - .../skins/minimal/xui/de/menu_url_objectim.xml | 8 - .../skins/minimal/xui/de/menu_url_parcel.xml | 6 - .../skins/minimal/xui/de/menu_url_slapp.xml | 5 - .../skins/minimal/xui/de/menu_url_slurl.xml | 7 - .../skins/minimal/xui/de/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/de/menu_viewer.xml | 14 - .../minimal/xui/de/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/de/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/de/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/de/notifications.xml | 19 - .../minimal/xui/de/panel_adhoc_control_panel.xml | 11 - .../skins/minimal/xui/de/panel_bottomtray.xml | 45 - .../minimal/xui/de/panel_group_control_panel.xml | 11 - .../minimal/xui/de/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/de/panel_login.xml | 40 - .../skins/minimal/xui/de/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/de/panel_people.xml | 73 - .../minimal/xui/de/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/de/panel_status_bar.xml | 33 - .../skins/minimal/xui/en/floater_camera.xml | 284 -- .../skins/minimal/xui/en/floater_help_browser.xml | 51 - .../skins/minimal/xui/en/floater_media_browser.xml | 242 -- .../skins/minimal/xui/en/floater_nearby_chat.xml | 52 - .../skins/minimal/xui/en/floater_side_bar_tab.xml | 10 - .../skins/minimal/xui/en/floater_web_content.xml | 196 -- .../skins/minimal/xui/en/inspect_avatar.xml | 206 -- .../skins/minimal/xui/en/inspect_object.xml | 144 - indra/newview/skins/minimal/xui/en/main_view.xml | 269 -- .../minimal/xui/en/menu_add_wearable_gear.xml | 2 - .../skins/minimal/xui/en/menu_attachment_other.xml | 84 - .../skins/minimal/xui/en/menu_attachment_self.xml | 26 - .../skins/minimal/xui/en/menu_avatar_icon.xml | 2 - .../skins/minimal/xui/en/menu_avatar_other.xml | 83 - .../skins/minimal/xui/en/menu_avatar_self.xml | 2 - .../skins/minimal/xui/en/menu_bottomtray.xml | 2 - .../skins/minimal/xui/en/menu_cof_attachment.xml | 2 - .../skins/minimal/xui/en/menu_cof_body_part.xml | 2 - .../skins/minimal/xui/en/menu_cof_clothing.xml | 2 - .../newview/skins/minimal/xui/en/menu_cof_gear.xml | 2 - indra/newview/skins/minimal/xui/en/menu_edit.xml | 90 - .../skins/minimal/xui/en/menu_favorites.xml | 2 - .../skins/minimal/xui/en/menu_gesture_gear.xml | 2 - .../skins/minimal/xui/en/menu_group_plus.xml | 2 - .../skins/minimal/xui/en/menu_hide_navbar.xml | 2 - .../skins/minimal/xui/en/menu_im_well_button.xml | 2 - .../skins/minimal/xui/en/menu_imchiclet_adhoc.xml | 2 - .../skins/minimal/xui/en/menu_imchiclet_group.xml | 2 - .../skins/minimal/xui/en/menu_imchiclet_p2p.xml | 2 - .../minimal/xui/en/menu_inspect_avatar_gear.xml | 125 - .../minimal/xui/en/menu_inspect_object_gear.xml | 50 - .../minimal/xui/en/menu_inspect_self_gear.xml | 49 - .../minimal/xui/en/menu_inv_offer_chiclet.xml | 2 - .../skins/minimal/xui/en/menu_inventory.xml | 2 - .../skins/minimal/xui/en/menu_inventory_add.xml | 2 - .../minimal/xui/en/menu_inventory_gear_default.xml | 2 - indra/newview/skins/minimal/xui/en/menu_land.xml | 2 - .../newview/skins/minimal/xui/en/menu_landmark.xml | 2 - indra/newview/skins/minimal/xui/en/menu_login.xml | 2 - .../newview/skins/minimal/xui/en/menu_mini_map.xml | 2 - indra/newview/skins/minimal/xui/en/menu_navbar.xml | 2 - .../skins/minimal/xui/en/menu_nearby_chat.xml | 2 - .../xui/en/menu_notification_well_button.xml | 2 - indra/newview/skins/minimal/xui/en/menu_object.xml | 40 - .../skins/minimal/xui/en/menu_object_icon.xml | 2 - .../skins/minimal/xui/en/menu_outfit_gear.xml | 2 - .../skins/minimal/xui/en/menu_outfit_tab.xml | 2 - .../skins/minimal/xui/en/menu_participant_list.xml | 2 - .../xui/en/menu_people_friends_view_sort.xml | 2 - .../skins/minimal/xui/en/menu_people_groups.xml | 2 - .../xui/en/menu_people_groups_view_sort.xml | 2 - .../skins/minimal/xui/en/menu_people_nearby.xml | 71 - .../xui/en/menu_people_nearby_multiselect.xml | 2 - .../xui/en/menu_people_nearby_view_sort.xml | 2 - .../xui/en/menu_people_recent_view_sort.xml | 2 - indra/newview/skins/minimal/xui/en/menu_picks.xml | 2 - .../skins/minimal/xui/en/menu_picks_plus.xml | 2 - indra/newview/skins/minimal/xui/en/menu_place.xml | 2 - .../skins/minimal/xui/en/menu_place_add_button.xml | 2 - .../minimal/xui/en/menu_places_gear_folder.xml | 2 - .../minimal/xui/en/menu_places_gear_landmark.xml | 2 - .../skins/minimal/xui/en/menu_profile_overflow.xml | 2 - .../skins/minimal/xui/en/menu_save_outfit.xml | 2 - .../skins/minimal/xui/en/menu_script_chiclet.xml | 2 - indra/newview/skins/minimal/xui/en/menu_slurl.xml | 2 - .../minimal/xui/en/menu_teleport_history_gear.xml | 2 - .../minimal/xui/en/menu_teleport_history_item.xml | 2 - .../minimal/xui/en/menu_teleport_history_tab.xml | 2 - .../skins/minimal/xui/en/menu_text_editor.xml | 2 - .../skins/minimal/xui/en/menu_topinfobar.xml | 2 - .../skins/minimal/xui/en/menu_url_agent.xml | 2 - .../skins/minimal/xui/en/menu_url_group.xml | 2 - .../newview/skins/minimal/xui/en/menu_url_http.xml | 2 - .../skins/minimal/xui/en/menu_url_inventory.xml | 2 - .../newview/skins/minimal/xui/en/menu_url_map.xml | 2 - .../skins/minimal/xui/en/menu_url_objectim.xml | 2 - .../skins/minimal/xui/en/menu_url_parcel.xml | 2 - .../skins/minimal/xui/en/menu_url_slapp.xml | 2 - .../skins/minimal/xui/en/menu_url_slurl.xml | 2 - .../skins/minimal/xui/en/menu_url_teleport.xml | 2 - indra/newview/skins/minimal/xui/en/menu_viewer.xml | 71 - .../minimal/xui/en/menu_wearable_list_item.xml | 2 - .../skins/minimal/xui/en/menu_wearing_gear.xml | 2 - .../skins/minimal/xui/en/menu_wearing_tab.xml | 2 - .../minimal/xui/en/notification_visibility.xml | 27 - .../newview/skins/minimal/xui/en/notifications.xml | 44 - .../minimal/xui/en/panel_adhoc_control_panel.xml | 81 - .../skins/minimal/xui/en/panel_bottomtray.xml | 557 ---- .../minimal/xui/en/panel_group_control_panel.xml | 79 - .../minimal/xui/en/panel_im_control_panel.xml | 194 -- indra/newview/skins/minimal/xui/en/panel_login.xml | 205 -- .../skins/minimal/xui/en/panel_navigation_bar.xml | 76 - .../newview/skins/minimal/xui/en/panel_people.xml | 571 ---- .../minimal/xui/en/panel_side_tray_tab_caption.xml | 11 - .../skins/minimal/xui/en/panel_status_bar.xml | 83 - .../skins/minimal/xui/en/panel_volume_pulldown.xml | 34 - .../minimal/xui/en/widgets/location_input.xml | 139 - .../skins/minimal/xui/es/floater_camera.xml | 65 - .../skins/minimal/xui/es/floater_help_browser.xml | 9 - .../skins/minimal/xui/es/floater_media_browser.xml | 30 - .../skins/minimal/xui/es/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/es/floater_web_content.xml | 14 - .../skins/minimal/xui/es/inspect_avatar.xml | 24 - .../skins/minimal/xui/es/inspect_object.xml | 41 - .../minimal/xui/es/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/es/menu_attachment_other.xml | 17 - .../skins/minimal/xui/es/menu_attachment_self.xml | 16 - .../skins/minimal/xui/es/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/es/menu_avatar_other.xml | 16 - .../skins/minimal/xui/es/menu_avatar_self.xml | 31 - .../skins/minimal/xui/es/menu_bottomtray.xml | 17 - .../skins/minimal/xui/es/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/es/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/es/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/es/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/es/menu_edit.xml | 12 - .../skins/minimal/xui/es/menu_favorites.xml | 10 - .../skins/minimal/xui/es/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/es/menu_group_plus.xml | 5 - .../skins/minimal/xui/es/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/es/menu_im_well_button.xml | 4 - .../skins/minimal/xui/es/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/es/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/es/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/es/menu_inspect_avatar_gear.xml | 18 - .../minimal/xui/es/menu_inspect_object_gear.xml | 18 - .../minimal/xui/es/menu_inspect_self_gear.xml | 8 - .../minimal/xui/es/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/es/menu_inventory.xml | 86 - .../skins/minimal/xui/es/menu_inventory_add.xml | 33 - .../minimal/xui/es/menu_inventory_gear_default.xml | 16 - indra/newview/skins/minimal/xui/es/menu_land.xml | 9 - .../newview/skins/minimal/xui/es/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/es/menu_login.xml | 24 - .../newview/skins/minimal/xui/es/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/es/menu_navbar.xml | 11 - .../skins/minimal/xui/es/menu_nearby_chat.xml | 9 - .../xui/es/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/es/menu_object.xml | 29 - .../skins/minimal/xui/es/menu_object_icon.xml | 5 - .../skins/minimal/xui/es/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/es/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/es/menu_participant_list.xml | 21 - .../xui/es/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/es/menu_people_groups.xml | 8 - .../xui/es/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/es/menu_people_nearby.xml | 13 - .../xui/es/menu_people_nearby_multiselect.xml | 10 - .../xui/es/menu_people_nearby_view_sort.xml | 8 - .../xui/es/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/es/menu_picks.xml | 8 - .../skins/minimal/xui/es/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/es/menu_place.xml | 7 - .../skins/minimal/xui/es/menu_place_add_button.xml | 5 - .../minimal/xui/es/menu_places_gear_folder.xml | 15 - .../minimal/xui/es/menu_places_gear_landmark.xml | 18 - .../skins/minimal/xui/es/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/es/menu_save_outfit.xml | 5 - .../skins/minimal/xui/es/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/es/menu_slurl.xml | 6 - .../minimal/xui/es/menu_teleport_history_gear.xml | 6 - .../minimal/xui/es/menu_teleport_history_item.xml | 6 - .../minimal/xui/es/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/es/menu_text_editor.xml | 8 - .../skins/minimal/xui/es/menu_topinfobar.xml | 7 - .../skins/minimal/xui/es/menu_url_agent.xml | 6 - .../skins/minimal/xui/es/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/es/menu_url_http.xml | 7 - .../skins/minimal/xui/es/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/es/menu_url_map.xml | 6 - .../skins/minimal/xui/es/menu_url_objectim.xml | 8 - .../skins/minimal/xui/es/menu_url_parcel.xml | 6 - .../skins/minimal/xui/es/menu_url_slapp.xml | 5 - .../skins/minimal/xui/es/menu_url_slurl.xml | 7 - .../skins/minimal/xui/es/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/es/menu_viewer.xml | 14 - .../minimal/xui/es/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/es/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/es/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/es/notifications.xml | 19 - .../minimal/xui/es/panel_adhoc_control_panel.xml | 11 - .../skins/minimal/xui/es/panel_bottomtray.xml | 45 - .../minimal/xui/es/panel_group_control_panel.xml | 11 - .../minimal/xui/es/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/es/panel_login.xml | 40 - .../skins/minimal/xui/es/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/es/panel_people.xml | 74 - .../minimal/xui/es/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/es/panel_status_bar.xml | 33 - .../skins/minimal/xui/fr/floater_camera.xml | 65 - .../skins/minimal/xui/fr/floater_help_browser.xml | 9 - .../skins/minimal/xui/fr/floater_media_browser.xml | 30 - .../skins/minimal/xui/fr/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/fr/floater_web_content.xml | 14 - .../skins/minimal/xui/fr/inspect_avatar.xml | 25 - .../skins/minimal/xui/fr/inspect_object.xml | 48 - .../minimal/xui/fr/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/fr/menu_attachment_other.xml | 17 - .../skins/minimal/xui/fr/menu_attachment_self.xml | 16 - .../skins/minimal/xui/fr/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/fr/menu_avatar_other.xml | 16 - .../skins/minimal/xui/fr/menu_avatar_self.xml | 31 - .../skins/minimal/xui/fr/menu_bottomtray.xml | 17 - .../skins/minimal/xui/fr/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/fr/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/fr/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/fr/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/fr/menu_edit.xml | 12 - .../skins/minimal/xui/fr/menu_favorites.xml | 10 - .../skins/minimal/xui/fr/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/fr/menu_group_plus.xml | 5 - .../skins/minimal/xui/fr/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/fr/menu_im_well_button.xml | 4 - .../skins/minimal/xui/fr/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/fr/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/fr/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/fr/menu_inspect_avatar_gear.xml | 18 - .../minimal/xui/fr/menu_inspect_object_gear.xml | 18 - .../minimal/xui/fr/menu_inspect_self_gear.xml | 8 - .../minimal/xui/fr/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/fr/menu_inventory.xml | 86 - .../skins/minimal/xui/fr/menu_inventory_add.xml | 33 - .../minimal/xui/fr/menu_inventory_gear_default.xml | 16 - indra/newview/skins/minimal/xui/fr/menu_land.xml | 9 - .../newview/skins/minimal/xui/fr/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/fr/menu_login.xml | 25 - .../newview/skins/minimal/xui/fr/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/fr/menu_navbar.xml | 11 - .../skins/minimal/xui/fr/menu_nearby_chat.xml | 9 - .../xui/fr/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/fr/menu_object.xml | 29 - .../skins/minimal/xui/fr/menu_object_icon.xml | 5 - .../skins/minimal/xui/fr/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/fr/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/fr/menu_participant_list.xml | 21 - .../xui/fr/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/fr/menu_people_groups.xml | 8 - .../xui/fr/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/fr/menu_people_nearby.xml | 13 - .../xui/fr/menu_people_nearby_multiselect.xml | 10 - .../xui/fr/menu_people_nearby_view_sort.xml | 8 - .../xui/fr/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/fr/menu_picks.xml | 8 - .../skins/minimal/xui/fr/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/fr/menu_place.xml | 7 - .../skins/minimal/xui/fr/menu_place_add_button.xml | 5 - .../minimal/xui/fr/menu_places_gear_folder.xml | 15 - .../minimal/xui/fr/menu_places_gear_landmark.xml | 18 - .../skins/minimal/xui/fr/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/fr/menu_save_outfit.xml | 5 - .../skins/minimal/xui/fr/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/fr/menu_slurl.xml | 6 - .../minimal/xui/fr/menu_teleport_history_gear.xml | 6 - .../minimal/xui/fr/menu_teleport_history_item.xml | 6 - .../minimal/xui/fr/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/fr/menu_text_editor.xml | 8 - .../skins/minimal/xui/fr/menu_topinfobar.xml | 7 - .../skins/minimal/xui/fr/menu_url_agent.xml | 6 - .../skins/minimal/xui/fr/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/fr/menu_url_http.xml | 7 - .../skins/minimal/xui/fr/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/fr/menu_url_map.xml | 6 - .../skins/minimal/xui/fr/menu_url_objectim.xml | 8 - .../skins/minimal/xui/fr/menu_url_parcel.xml | 6 - .../skins/minimal/xui/fr/menu_url_slapp.xml | 5 - .../skins/minimal/xui/fr/menu_url_slurl.xml | 7 - .../skins/minimal/xui/fr/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/fr/menu_viewer.xml | 14 - .../minimal/xui/fr/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/fr/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/fr/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/fr/notifications.xml | 19 - .../minimal/xui/fr/panel_adhoc_control_panel.xml | 11 - .../skins/minimal/xui/fr/panel_bottomtray.xml | 45 - .../minimal/xui/fr/panel_group_control_panel.xml | 11 - .../minimal/xui/fr/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/fr/panel_login.xml | 40 - .../skins/minimal/xui/fr/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/fr/panel_people.xml | 74 - .../minimal/xui/fr/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/fr/panel_status_bar.xml | 33 - .../skins/minimal/xui/it/floater_camera.xml | 65 - .../skins/minimal/xui/it/floater_help_browser.xml | 9 - .../skins/minimal/xui/it/floater_media_browser.xml | 31 - .../skins/minimal/xui/it/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/it/floater_web_content.xml | 14 - .../skins/minimal/xui/it/inspect_avatar.xml | 26 - .../skins/minimal/xui/it/inspect_object.xml | 41 - .../minimal/xui/it/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/it/menu_attachment_other.xml | 17 - .../skins/minimal/xui/it/menu_attachment_self.xml | 16 - .../skins/minimal/xui/it/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/it/menu_avatar_other.xml | 16 - .../skins/minimal/xui/it/menu_avatar_self.xml | 32 - .../skins/minimal/xui/it/menu_bottomtray.xml | 17 - .../skins/minimal/xui/it/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/it/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/it/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/it/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/it/menu_edit.xml | 12 - .../skins/minimal/xui/it/menu_favorites.xml | 10 - .../skins/minimal/xui/it/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/it/menu_group_plus.xml | 5 - .../skins/minimal/xui/it/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/it/menu_im_well_button.xml | 4 - .../skins/minimal/xui/it/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/it/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/it/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/it/menu_inspect_avatar_gear.xml | 21 - .../minimal/xui/it/menu_inspect_object_gear.xml | 18 - .../minimal/xui/it/menu_inspect_self_gear.xml | 31 - .../minimal/xui/it/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/it/menu_inventory.xml | 87 - .../skins/minimal/xui/it/menu_inventory_add.xml | 34 - .../minimal/xui/it/menu_inventory_gear_default.xml | 17 - indra/newview/skins/minimal/xui/it/menu_land.xml | 9 - .../newview/skins/minimal/xui/it/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/it/menu_login.xml | 24 - .../newview/skins/minimal/xui/it/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/it/menu_navbar.xml | 11 - .../skins/minimal/xui/it/menu_nearby_chat.xml | 9 - .../xui/it/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/it/menu_object.xml | 29 - .../skins/minimal/xui/it/menu_object_icon.xml | 5 - .../skins/minimal/xui/it/menu_outfit_gear.xml | 28 - .../skins/minimal/xui/it/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/it/menu_participant_list.xml | 21 - .../xui/it/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/it/menu_people_groups.xml | 8 - .../xui/it/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/it/menu_people_nearby.xml | 13 - .../xui/it/menu_people_nearby_multiselect.xml | 10 - .../xui/it/menu_people_nearby_view_sort.xml | 8 - .../xui/it/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/it/menu_picks.xml | 8 - .../skins/minimal/xui/it/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/it/menu_place.xml | 7 - .../skins/minimal/xui/it/menu_place_add_button.xml | 5 - .../minimal/xui/it/menu_places_gear_folder.xml | 16 - .../minimal/xui/it/menu_places_gear_landmark.xml | 19 - .../skins/minimal/xui/it/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/it/menu_save_outfit.xml | 5 - .../skins/minimal/xui/it/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/it/menu_slurl.xml | 6 - .../minimal/xui/it/menu_teleport_history_gear.xml | 6 - .../minimal/xui/it/menu_teleport_history_item.xml | 6 - .../minimal/xui/it/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/it/menu_text_editor.xml | 8 - .../skins/minimal/xui/it/menu_topinfobar.xml | 7 - .../skins/minimal/xui/it/menu_url_agent.xml | 6 - .../skins/minimal/xui/it/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/it/menu_url_http.xml | 7 - .../skins/minimal/xui/it/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/it/menu_url_map.xml | 6 - .../skins/minimal/xui/it/menu_url_objectim.xml | 8 - .../skins/minimal/xui/it/menu_url_parcel.xml | 6 - .../skins/minimal/xui/it/menu_url_slapp.xml | 5 - .../skins/minimal/xui/it/menu_url_slurl.xml | 7 - .../skins/minimal/xui/it/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/it/menu_viewer.xml | 14 - .../minimal/xui/it/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/it/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/it/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/it/notifications.xml | 2951 ------------------- .../minimal/xui/it/panel_adhoc_control_panel.xml | 14 - .../skins/minimal/xui/it/panel_bottomtray.xml | 45 - .../minimal/xui/it/panel_group_control_panel.xml | 17 - .../minimal/xui/it/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/it/panel_login.xml | 48 - .../skins/minimal/xui/it/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/it/panel_people.xml | 94 - .../minimal/xui/it/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/it/panel_status_bar.xml | 33 - .../skins/minimal/xui/ja/floater_camera.xml | 65 - .../skins/minimal/xui/ja/floater_help_browser.xml | 9 - .../skins/minimal/xui/ja/floater_media_browser.xml | 30 - .../skins/minimal/xui/ja/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/ja/floater_web_content.xml | 14 - .../skins/minimal/xui/ja/inspect_avatar.xml | 27 - .../skins/minimal/xui/ja/inspect_object.xml | 48 - .../minimal/xui/ja/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/ja/menu_attachment_other.xml | 17 - .../skins/minimal/xui/ja/menu_attachment_self.xml | 16 - .../skins/minimal/xui/ja/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/ja/menu_avatar_other.xml | 16 - .../skins/minimal/xui/ja/menu_avatar_self.xml | 32 - .../skins/minimal/xui/ja/menu_bottomtray.xml | 17 - .../skins/minimal/xui/ja/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/ja/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/ja/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/ja/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/ja/menu_edit.xml | 12 - .../skins/minimal/xui/ja/menu_favorites.xml | 10 - .../skins/minimal/xui/ja/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/ja/menu_group_plus.xml | 5 - .../skins/minimal/xui/ja/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/ja/menu_im_well_button.xml | 4 - .../skins/minimal/xui/ja/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/ja/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/ja/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/ja/menu_inspect_avatar_gear.xml | 21 - .../minimal/xui/ja/menu_inspect_object_gear.xml | 18 - .../minimal/xui/ja/menu_inspect_self_gear.xml | 31 - .../minimal/xui/ja/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/ja/menu_inventory.xml | 87 - .../skins/minimal/xui/ja/menu_inventory_add.xml | 34 - .../minimal/xui/ja/menu_inventory_gear_default.xml | 17 - indra/newview/skins/minimal/xui/ja/menu_land.xml | 9 - .../newview/skins/minimal/xui/ja/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/ja/menu_login.xml | 25 - .../newview/skins/minimal/xui/ja/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/ja/menu_navbar.xml | 11 - .../skins/minimal/xui/ja/menu_nearby_chat.xml | 9 - .../xui/ja/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/ja/menu_object.xml | 29 - .../skins/minimal/xui/ja/menu_object_icon.xml | 5 - .../skins/minimal/xui/ja/menu_outfit_gear.xml | 28 - .../skins/minimal/xui/ja/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/ja/menu_participant_list.xml | 21 - .../xui/ja/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/ja/menu_people_groups.xml | 8 - .../xui/ja/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/ja/menu_people_nearby.xml | 13 - .../xui/ja/menu_people_nearby_multiselect.xml | 10 - .../xui/ja/menu_people_nearby_view_sort.xml | 8 - .../xui/ja/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/ja/menu_picks.xml | 8 - .../skins/minimal/xui/ja/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/ja/menu_place.xml | 7 - .../skins/minimal/xui/ja/menu_place_add_button.xml | 5 - .../minimal/xui/ja/menu_places_gear_folder.xml | 16 - .../minimal/xui/ja/menu_places_gear_landmark.xml | 19 - .../skins/minimal/xui/ja/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/ja/menu_save_outfit.xml | 5 - .../skins/minimal/xui/ja/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/ja/menu_slurl.xml | 6 - .../minimal/xui/ja/menu_teleport_history_gear.xml | 6 - .../minimal/xui/ja/menu_teleport_history_item.xml | 6 - .../minimal/xui/ja/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/ja/menu_text_editor.xml | 8 - .../skins/minimal/xui/ja/menu_topinfobar.xml | 7 - .../skins/minimal/xui/ja/menu_url_agent.xml | 6 - .../skins/minimal/xui/ja/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/ja/menu_url_http.xml | 7 - .../skins/minimal/xui/ja/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/ja/menu_url_map.xml | 6 - .../skins/minimal/xui/ja/menu_url_objectim.xml | 8 - .../skins/minimal/xui/ja/menu_url_parcel.xml | 6 - .../skins/minimal/xui/ja/menu_url_slapp.xml | 5 - .../skins/minimal/xui/ja/menu_url_slurl.xml | 7 - .../skins/minimal/xui/ja/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/ja/menu_viewer.xml | 14 - .../minimal/xui/ja/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/ja/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/ja/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/ja/notifications.xml | 2995 -------------------- .../minimal/xui/ja/panel_adhoc_control_panel.xml | 14 - .../skins/minimal/xui/ja/panel_bottomtray.xml | 45 - .../minimal/xui/ja/panel_group_control_panel.xml | 17 - .../minimal/xui/ja/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/ja/panel_login.xml | 48 - .../skins/minimal/xui/ja/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/ja/panel_people.xml | 94 - .../minimal/xui/ja/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/ja/panel_status_bar.xml | 33 - .../skins/minimal/xui/pl/floater_camera.xml | 65 - .../skins/minimal/xui/pl/floater_help_browser.xml | 9 - .../skins/minimal/xui/pl/floater_media_browser.xml | 30 - .../skins/minimal/xui/pl/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/pl/floater_web_content.xml | 14 - .../skins/minimal/xui/pl/inspect_avatar.xml | 24 - .../skins/minimal/xui/pl/inspect_object.xml | 41 - .../minimal/xui/pl/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/pl/menu_attachment_other.xml | 17 - .../skins/minimal/xui/pl/menu_attachment_self.xml | 16 - .../skins/minimal/xui/pl/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/pl/menu_avatar_other.xml | 16 - .../skins/minimal/xui/pl/menu_avatar_self.xml | 31 - .../skins/minimal/xui/pl/menu_bottomtray.xml | 17 - .../skins/minimal/xui/pl/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/pl/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/pl/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/pl/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/pl/menu_edit.xml | 12 - .../skins/minimal/xui/pl/menu_favorites.xml | 10 - .../skins/minimal/xui/pl/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/pl/menu_group_plus.xml | 5 - .../skins/minimal/xui/pl/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/pl/menu_im_well_button.xml | 4 - .../skins/minimal/xui/pl/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/pl/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/pl/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/pl/menu_inspect_avatar_gear.xml | 21 - .../minimal/xui/pl/menu_inspect_object_gear.xml | 18 - .../minimal/xui/pl/menu_inspect_self_gear.xml | 31 - .../minimal/xui/pl/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/pl/menu_inventory.xml | 84 - .../skins/minimal/xui/pl/menu_inventory_add.xml | 33 - .../minimal/xui/pl/menu_inventory_gear_default.xml | 17 - indra/newview/skins/minimal/xui/pl/menu_land.xml | 9 - .../newview/skins/minimal/xui/pl/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/pl/menu_login.xml | 24 - .../newview/skins/minimal/xui/pl/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/pl/menu_navbar.xml | 11 - .../skins/minimal/xui/pl/menu_nearby_chat.xml | 9 - .../xui/pl/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/pl/menu_object.xml | 29 - .../skins/minimal/xui/pl/menu_object_icon.xml | 5 - .../skins/minimal/xui/pl/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/pl/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/pl/menu_participant_list.xml | 21 - .../xui/pl/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/pl/menu_people_groups.xml | 8 - .../xui/pl/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/pl/menu_people_nearby.xml | 13 - .../xui/pl/menu_people_nearby_multiselect.xml | 10 - .../xui/pl/menu_people_nearby_view_sort.xml | 8 - .../xui/pl/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/pl/menu_picks.xml | 8 - .../skins/minimal/xui/pl/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/pl/menu_place.xml | 7 - .../skins/minimal/xui/pl/menu_place_add_button.xml | 5 - .../minimal/xui/pl/menu_places_gear_folder.xml | 16 - .../minimal/xui/pl/menu_places_gear_landmark.xml | 19 - .../skins/minimal/xui/pl/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/pl/menu_save_outfit.xml | 5 - .../skins/minimal/xui/pl/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/pl/menu_slurl.xml | 6 - .../minimal/xui/pl/menu_teleport_history_gear.xml | 6 - .../minimal/xui/pl/menu_teleport_history_item.xml | 6 - .../minimal/xui/pl/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/pl/menu_text_editor.xml | 8 - .../skins/minimal/xui/pl/menu_topinfobar.xml | 7 - .../skins/minimal/xui/pl/menu_url_agent.xml | 6 - .../skins/minimal/xui/pl/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/pl/menu_url_http.xml | 7 - .../skins/minimal/xui/pl/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/pl/menu_url_map.xml | 6 - .../skins/minimal/xui/pl/menu_url_objectim.xml | 8 - .../skins/minimal/xui/pl/menu_url_parcel.xml | 6 - .../skins/minimal/xui/pl/menu_url_slapp.xml | 5 - .../skins/minimal/xui/pl/menu_url_slurl.xml | 7 - .../skins/minimal/xui/pl/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/pl/menu_viewer.xml | 14 - .../minimal/xui/pl/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/pl/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/pl/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/pl/notifications.xml | 2907 ------------------- .../minimal/xui/pl/panel_adhoc_control_panel.xml | 14 - .../skins/minimal/xui/pl/panel_bottomtray.xml | 39 - .../minimal/xui/pl/panel_group_control_panel.xml | 17 - .../minimal/xui/pl/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/pl/panel_login.xml | 45 - .../skins/minimal/xui/pl/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/pl/panel_people.xml | 94 - .../minimal/xui/pl/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/pl/panel_status_bar.xml | 33 - .../skins/minimal/xui/pt/floater_camera.xml | 65 - .../skins/minimal/xui/pt/floater_help_browser.xml | 9 - .../skins/minimal/xui/pt/floater_media_browser.xml | 30 - .../skins/minimal/xui/pt/floater_nearby_chat.xml | 4 - .../skins/minimal/xui/pt/floater_web_content.xml | 14 - .../skins/minimal/xui/pt/inspect_avatar.xml | 24 - .../skins/minimal/xui/pt/inspect_object.xml | 41 - .../minimal/xui/pt/menu_add_wearable_gear.xml | 6 - .../skins/minimal/xui/pt/menu_attachment_other.xml | 17 - .../skins/minimal/xui/pt/menu_attachment_self.xml | 16 - .../skins/minimal/xui/pt/menu_avatar_icon.xml | 7 - .../skins/minimal/xui/pt/menu_avatar_other.xml | 16 - .../skins/minimal/xui/pt/menu_avatar_self.xml | 31 - .../skins/minimal/xui/pt/menu_bottomtray.xml | 17 - .../skins/minimal/xui/pt/menu_cof_attachment.xml | 4 - .../skins/minimal/xui/pt/menu_cof_body_part.xml | 5 - .../skins/minimal/xui/pt/menu_cof_clothing.xml | 6 - .../newview/skins/minimal/xui/pt/menu_cof_gear.xml | 5 - indra/newview/skins/minimal/xui/pt/menu_edit.xml | 12 - .../skins/minimal/xui/pt/menu_favorites.xml | 10 - .../skins/minimal/xui/pt/menu_gesture_gear.xml | 10 - .../skins/minimal/xui/pt/menu_group_plus.xml | 5 - .../skins/minimal/xui/pt/menu_hide_navbar.xml | 6 - .../skins/minimal/xui/pt/menu_im_well_button.xml | 4 - .../skins/minimal/xui/pt/menu_imchiclet_adhoc.xml | 4 - .../skins/minimal/xui/pt/menu_imchiclet_group.xml | 6 - .../skins/minimal/xui/pt/menu_imchiclet_p2p.xml | 7 - .../minimal/xui/pt/menu_inspect_avatar_gear.xml | 18 - .../minimal/xui/pt/menu_inspect_object_gear.xml | 18 - .../minimal/xui/pt/menu_inspect_self_gear.xml | 8 - .../minimal/xui/pt/menu_inv_offer_chiclet.xml | 4 - .../skins/minimal/xui/pt/menu_inventory.xml | 86 - .../skins/minimal/xui/pt/menu_inventory_add.xml | 33 - .../minimal/xui/pt/menu_inventory_gear_default.xml | 16 - indra/newview/skins/minimal/xui/pt/menu_land.xml | 9 - .../newview/skins/minimal/xui/pt/menu_landmark.xml | 7 - indra/newview/skins/minimal/xui/pt/menu_login.xml | 24 - .../newview/skins/minimal/xui/pt/menu_mini_map.xml | 11 - indra/newview/skins/minimal/xui/pt/menu_navbar.xml | 11 - .../skins/minimal/xui/pt/menu_nearby_chat.xml | 9 - .../xui/pt/menu_notification_well_button.xml | 4 - indra/newview/skins/minimal/xui/pt/menu_object.xml | 29 - .../skins/minimal/xui/pt/menu_object_icon.xml | 5 - .../skins/minimal/xui/pt/menu_outfit_gear.xml | 27 - .../skins/minimal/xui/pt/menu_outfit_tab.xml | 9 - .../skins/minimal/xui/pt/menu_participant_list.xml | 21 - .../xui/pt/menu_people_friends_view_sort.xml | 8 - .../skins/minimal/xui/pt/menu_people_groups.xml | 8 - .../xui/pt/menu_people_groups_view_sort.xml | 5 - .../skins/minimal/xui/pt/menu_people_nearby.xml | 13 - .../xui/pt/menu_people_nearby_multiselect.xml | 10 - .../xui/pt/menu_people_nearby_view_sort.xml | 8 - .../xui/pt/menu_people_recent_view_sort.xml | 7 - indra/newview/skins/minimal/xui/pt/menu_picks.xml | 8 - .../skins/minimal/xui/pt/menu_picks_plus.xml | 5 - indra/newview/skins/minimal/xui/pt/menu_place.xml | 7 - .../skins/minimal/xui/pt/menu_place_add_button.xml | 5 - .../minimal/xui/pt/menu_places_gear_folder.xml | 15 - .../minimal/xui/pt/menu_places_gear_landmark.xml | 18 - .../skins/minimal/xui/pt/menu_profile_overflow.xml | 12 - .../skins/minimal/xui/pt/menu_save_outfit.xml | 5 - .../skins/minimal/xui/pt/menu_script_chiclet.xml | 4 - indra/newview/skins/minimal/xui/pt/menu_slurl.xml | 6 - .../minimal/xui/pt/menu_teleport_history_gear.xml | 6 - .../minimal/xui/pt/menu_teleport_history_item.xml | 6 - .../minimal/xui/pt/menu_teleport_history_tab.xml | 5 - .../skins/minimal/xui/pt/menu_text_editor.xml | 8 - .../skins/minimal/xui/pt/menu_topinfobar.xml | 7 - .../skins/minimal/xui/pt/menu_url_agent.xml | 6 - .../skins/minimal/xui/pt/menu_url_group.xml | 6 - .../newview/skins/minimal/xui/pt/menu_url_http.xml | 7 - .../skins/minimal/xui/pt/menu_url_inventory.xml | 6 - .../newview/skins/minimal/xui/pt/menu_url_map.xml | 6 - .../skins/minimal/xui/pt/menu_url_objectim.xml | 8 - .../skins/minimal/xui/pt/menu_url_parcel.xml | 6 - .../skins/minimal/xui/pt/menu_url_slapp.xml | 5 - .../skins/minimal/xui/pt/menu_url_slurl.xml | 7 - .../skins/minimal/xui/pt/menu_url_teleport.xml | 6 - indra/newview/skins/minimal/xui/pt/menu_viewer.xml | 14 - .../minimal/xui/pt/menu_wearable_list_item.xml | 14 - .../skins/minimal/xui/pt/menu_wearing_gear.xml | 5 - .../skins/minimal/xui/pt/menu_wearing_tab.xml | 6 - .../newview/skins/minimal/xui/pt/notifications.xml | 19 - .../minimal/xui/pt/panel_adhoc_control_panel.xml | 14 - .../skins/minimal/xui/pt/panel_bottomtray.xml | 45 - .../minimal/xui/pt/panel_group_control_panel.xml | 11 - .../minimal/xui/pt/panel_im_control_panel.xml | 29 - indra/newview/skins/minimal/xui/pt/panel_login.xml | 40 - .../skins/minimal/xui/pt/panel_navigation_bar.xml | 18 - .../newview/skins/minimal/xui/pt/panel_people.xml | 74 - .../minimal/xui/pt/panel_side_tray_tab_caption.xml | 7 - .../skins/minimal/xui/pt/panel_status_bar.xml | 33 - 860 files changed, 2 insertions(+), 26441 deletions(-) delete mode 100644 indra/newview/app_settings/settings_minimal.xml delete mode 100644 indra/newview/skins/default/xui/en/menu_mode_change.xml delete mode 100644 indra/newview/skins/minimal/colors.xml delete mode 100644 indra/newview/skins/minimal/textures/arrow_keys.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Off.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Selected_Press.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/button_separator.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_off.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_over.png delete mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_press.png delete mode 100644 indra/newview/skins/minimal/textures/click_to_move.png delete mode 100644 indra/newview/skins/minimal/textures/textures.xml delete mode 100644 indra/newview/skins/minimal/xui/da/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/da/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/da/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/da/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/da/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/da/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/da/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/da/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/da/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/da/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/de/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/de/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/de/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/de/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/de/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/de/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/de/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/de/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/en/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/en/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/en/main_view.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/en/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/en/notification_visibility.xml delete mode 100644 indra/newview/skins/minimal/xui/en/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/en/panel_volume_pulldown.xml delete mode 100644 indra/newview/skins/minimal/xui/en/widgets/location_input.xml delete mode 100644 indra/newview/skins/minimal/xui/es/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/es/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/es/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/es/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/es/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/es/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/es/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/es/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/es/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/es/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/fr/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/it/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/it/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/it/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/it/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/it/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/it/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/it/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/it/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/ja/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/pl/panel_status_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/floater_camera.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/floater_help_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/floater_media_browser.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/floater_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/floater_web_content.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/inspect_avatar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/inspect_object.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_add_wearable_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_attachment_other.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_attachment_self.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_avatar_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_avatar_other.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_avatar_self.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_cof_attachment.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_cof_body_part.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_cof_clothing.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_cof_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_edit.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_favorites.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_gesture_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_group_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_hide_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_im_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_imchiclet_adhoc.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_imchiclet_group.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_imchiclet_p2p.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inspect_avatar_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inspect_object_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inspect_self_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inv_offer_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inventory_add.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_inventory_gear_default.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_land.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_login.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_mini_map.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_navbar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_nearby_chat.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_notification_well_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_object.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_object_icon.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_outfit_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_outfit_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_participant_list.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_friends_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_groups.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_groups_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_nearby.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_nearby_multiselect.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_nearby_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_people_recent_view_sort.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_picks.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_picks_plus.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_place.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_place_add_button.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_places_gear_folder.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_places_gear_landmark.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_profile_overflow.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_save_outfit.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_script_chiclet.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_teleport_history_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_teleport_history_item.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_teleport_history_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_text_editor.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_topinfobar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_agent.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_group.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_http.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_inventory.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_map.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_objectim.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_parcel.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_slapp.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_slurl.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_url_teleport.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_viewer.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_wearable_list_item.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_wearing_gear.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/menu_wearing_tab.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/notifications.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_adhoc_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_bottomtray.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_group_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_im_control_panel.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_login.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_navigation_bar.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_people.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_side_tray_tab_caption.xml delete mode 100644 indra/newview/skins/minimal/xui/pt/panel_status_bar.xml (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 11b19ca4fe..7351144765 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1381,11 +1381,6 @@ endif (WINDOWS) set(viewer_XUI_FILES skins/default/colors.xml skins/default/textures/textures.xml - skins/minimal/colors.xml - skins/minimal/textures/textures.xml - - - ) file(GLOB DEFAULT_XUI_FILE_GLOB_LIST ${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/*.xml) @@ -1424,7 +1419,6 @@ set(viewer_APPSETTINGS_FILES app_settings/settings_crash_behavior.xml app_settings/settings_files.xml app_settings/settings_per_account.xml - app_settings/settings_minimal.xml app_settings/std_bump.ini app_settings/trees.xml app_settings/ultra_graphics.xml diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 60025707a4..4e48a9e3f7 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -13528,17 +13528,6 @@ Value http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/404.html - DestinationsAndAvatarsVisibility - - Comment - Whether destination panel or avatar picker are open (0=destination guide, 1=avatar picker, default=nothing) - Persist - 1 - Type - S32 - Value - 0 - OpenIMOnVoice Comment diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml deleted file mode 100644 index 29e52ab054..0000000000 --- a/indra/newview/app_settings/settings_minimal.xml +++ /dev/null @@ -1,474 +0,0 @@ - - - ChannelBottomPanelMargin - - Comment - Space from a lower toast to the Bottom Tray - Type - S32 - Value - 2 - - ClickActionBuyEnabled - - Comment - Enable click to buy actions in tool pie menu - Type - Boolean - Value - 0 - - ClickActionPayEnabled - - Comment - Enable click to pay actions in tool pie menu - Type - Boolean - Value - 0 - - EnableGrab - - Comment - Use Ctrl+mouse to grab and manipulate objects - Type - Boolean - Value - 0 - - EnableMouselook - - Comment - Allow first person perspective and mouse control of camera - Type - Boolean - Value - 0 - - HelpURLFormat - - Comment - URL pattern for help page; arguments will be encoded; see llviewerhelp.cpp:buildHelpURL for arguments - Type - String - Value - http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/howto/index.html?topic=[TOPIC] - - PreferredMaturity - - Comment - Setting for the user's preferred maturity level (consts in indra_constants.h) - Type - U32 - Value - 21 - - RenderTrackerBeacon - - Comment - Display tracking arrow and beacon to target avatar, teleport destination - Type - Boolean - Value - 0 - - ShowScriptErrors - - Comment - Show script errors - Type - Boolean - Value - 0 - - ShowScriptErrorsLocation - - Comment - Show script error in chat or window - Type - S32 - Value - 0 - - SkinCurrent - - Comment - The currently selected skin. - Type - String - Value - minimal - - UseExternalBrowser - - Comment - Use default browser when opening web pages instead of in-world browser. - Type - Boolean - Value - 0 - - VoiceCallsRejectGroup - - Comment - Silently reject all incoming group voice calls. - Type - Boolean - Value - 1 - - VoiceDisableMic - - Comment - Completely disable the ability to open the mic. - Type - Boolean - Value - 0 - - ScriptsCanShowUI - - Comment - Allow LSL calls (such as LLMapDestination) to spawn viewer UI - Persist - 1 - Type - Boolean - Value - 0 - - ChatFontSize - - Comment - Size of chat text in chat console (0 = small, 1 = big, 2 = extra large) - Persist - 1 - Type - S32 - Value - 1 - - AvatarPickerHintTimeout - - Comment - Number of seconds to wait before telling resident about avatar picker. - Persist - 1 - Type - F32 - Value - 0.0 - - RenderShowGroupTitleAll - - Comment - Show group titles in name labels - Persist - 1 - Type - Boolean - Value - 0 - - OpenSidePanelsInFloaters - - Comment - If true, will always open side panel contents in a floater. - Persist - 1 - Type - Boolean - Value - 1 - - AvatarInspectorTooltipDelay - - Comment - Seconds before displaying avatar inspector tooltip - Persist - 1 - Type - F32 - Value - 0.1 - - AFKTimeout - - Comment - - Time before automatically setting AFK (away from keyboard) mode (seconds, 0=never). - Valid values are: 0, 120, 300, 600, 1800 - - Persist - 1 - Type - S32 - Value - 0 - - SLURLTeleportDirectly - - Comment - Clicking on a slurl will teleport you directly instead of opening places panel - Persist - 1 - Type - Boolean - Value - 1 - - EnableClassifieds - - Comment - Enable creation of new classified ads - Persist - 1 - Type - Boolean - Value - 0 - - EnableGroupInfo - - Comment - Enable viewing and editing of group info. - Persist - 1 - Type - Boolean - Value - 0 - - EnablePlaceProfile - - Comment - Enable viewing of place profile from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnablePicks - - Comment - Enable editing of picks - Persist - 1 - Type - Boolean - Value - 0 - - EnableWorldMap - - Comment - Enable opening world map from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnableAvatarPay - - Comment - Enable paying other avatars from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnableVoiceCall - - Comment - Enable voice calls from web link - Persist - 1 - Type - Boolean - Value - 1 - - EnableAvatarShare - - Comment - Enable sharing from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnableInventory - - Comment - Enable opening inventory from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnableSearch - - Comment - Enable opening search from web link - Persist - 1 - Type - Boolean - Value - 0 - - EnableAppearance - - Comment - Enable opening appearance from web link - Persist - 1 - Type - Boolean - Value - 0 - - DoubleClickShowWorldMap - - Comment - Enable double-click to show world map from mini map - Persist - 1 - Type - Boolean - Value - 0 - - EnableGroupChatPopups - - Comment - Enable Incoming Group Chat Popups - Persist - 1 - Type - Boolean - Value - 0 - - SearchFromAddressBar - - Comment - Can enter search queries into navigation address bar - Persist - 1 - Type - Boolean - Value - 0 - - DestinationGuideURL - - Comment - Destination guide contents - Persist - 1 - Type - String - Value - http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/guide.html - - AvatarPickerURL - - Comment - Avatar picker contents - Persist - 1 - Type - String - Value - http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/avatars.html - - LogInventoryDecline - - Comment - Log in system chat whenever an inventory offer is declined - Persist - 1 - Type - Boolean - Value - 0 - - UseHTTPInventory - - Comment - Allow use of http inventory transfers instead of UDP - Persist - 1 - Type - Boolean - Value - 0 - - ClickToWalk - - Comment - Click in world to walk to location - Persist - 1 - Type - Boolean - Value - 1 - - ShowOfferedInventory - - Comment - Show inventory window with last inventory offer selected when receiving inventory from other users. - Persist - 1 - Type - Boolean - Value - 0 - - OpenIMOnVoice - - Comment - Open the corresponding IM window when connecting to a voice call. - Persist - 1 - Type - Boolean - Value - 1 - - AllowBottomTrayButtonReordering - - Comment - Allow user to move and hide bottom tray buttons - Persist - 1 - Type - Boolean - Value - 0 - - ShowHelpOnFirstLogin - - Comment - Show Help Floater on first login - Persist - 1 - Type - Boolean - Value - 1 - - - diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 4e1ef59765..43c8750b02 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2324,7 +2324,6 @@ bool LLAppViewer::initConfiguration() if (gSavedSettings.getBOOL("FirstRunThisInstall")) { - gSavedSettings.setString("SessionSettingsFile", "settings_minimal.xml"); gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); } @@ -3520,20 +3519,6 @@ static bool finish_quit(const LLSD& notification, const LLSD& response) } static LLNotificationFunctorRegistration finish_quit_reg("ConfirmQuit", finish_quit); -static bool switch_standard_skin_and_quit(const LLSD& notification, const LLSD& response) -{ - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - - if (option == 0) - { - gSavedSettings.setString("SessionSettingsFile", ""); - LLAppViewer::instance()->requestQuit(); - } - return false; -} - -static LLNotificationFunctorRegistration standard_skin_quit_reg("SwitchToStandardSkinAndQuit", switch_standard_skin_and_quit); - void LLAppViewer::userQuit() { if (gDisconnected || gViewerWindow->getProgressView()->getVisible()) diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index f00d6087f9..419641d23c 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -561,15 +561,7 @@ void LLLoginInstance::constructAuthParams(LLPointer user_credentia //send this info to login.cgi for stats gathering //since viewerstats isn't reliable enough - if (gSavedSettings.getString("SessionSettingsFile").empty()) - { - requested_options.append("advanced-mode"); - } - else - { - requested_options.append("basic-mode"); - //requested_options.append("inventory-basic"); - } + requested_options.append("advanced-mode"); #endif requested_options.append("max-agent-groups"); diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index db7d836799..bef809f3a7 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -154,10 +154,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, } updateLocationCombo(false); - LLUICtrl& mode_combo = getChildRef("mode_combo"); - mode_combo.setValue(gSavedSettings.getString("SessionSettingsFile")); - mode_combo.setCommitCallback(boost::bind(&LLPanelLogin::onModeChange, this, getChild("mode_combo")->getValue(), _2)); - LLComboBox* server_choice_combo = sInstance->getChild("server_combo"); server_choice_combo->setCommitCallback(onSelectServer, NULL); server_choice_combo->setFocusLostCallback(boost::bind(onServerComboLostFocus, _1)); @@ -1025,32 +1021,6 @@ void LLPanelLogin::updateLoginPanelLinks() sInstance->getChildView("forgot_password_text")->setVisible( system_grid); } -void LLPanelLogin::onModeChange(const LLSD& original_value, const LLSD& new_value) -{ - if (original_value.asString() != new_value.asString()) - { - LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(&LLPanelLogin::onModeChangeConfirm, this, original_value, new_value, _1, _2)); - } -} - -void LLPanelLogin::onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response) -{ - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - switch (option) - { - case 0: - gSavedSettings.getControl("SessionSettingsFile")->set(new_value); - LLAppViewer::instance()->requestQuit(); - break; - case 1: - // revert to original value - getChild("mode_combo")->setValue(original_value); - break; - default: - break; - } -} - std::string canonicalize_username(const std::string& name) { std::string cname = name; diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index be9de884d1..a439c4ff6b 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -87,8 +87,6 @@ private: void reshapeBrowser(); void addFavoritesToStartLocation(); void addUsersWithFavoritesToUsername(); - void onModeChange(const LLSD& original_value, const LLSD& new_value); - void onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response); static void onClickConnect(void*); static void onClickNewAccount(void*); static void onClickVersion(void*); diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 0a00885843..1b8be7a5b2 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -162,8 +162,6 @@ BOOL LLStatusBar::handleRightMouseDown(S32 x, S32 y, MASK mask) BOOL LLStatusBar::postBuild() { - LLControlVariablePtr mode_control = gSavedSettings.getControl("SessionSettingsFile"); - gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3)); mTextTime = getChild("TimeText" ); @@ -235,40 +233,9 @@ BOOL LLStatusBar::postBuild() mScriptOut = getChildView("scriptout"); - LLUICtrl& mode_combo = getChildRef("mode_combo"); - mode_combo.setValue(gSavedSettings.getString("SessionSettingsFile")); - mode_combo.setCommitCallback(boost::bind(&LLStatusBar::onModeChange, this, getChild("mode_combo")->getValue(), _2)); - - return TRUE; } -void LLStatusBar::onModeChange(const LLSD& original_value, const LLSD& new_value) -{ - if (original_value.asString() != new_value.asString()) - { - LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(&LLStatusBar::onModeChangeConfirm, this, original_value, new_value, _1, _2)); - } -} - -void LLStatusBar::onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response) -{ - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - switch (option) - { - case 0: - gSavedSettings.getControl("SessionSettingsFile")->set(new_value); - LLAppViewer::instance()->requestQuit(); - break; - case 1: - // revert to original value - getChild("mode_combo")->setValue(original_value); - break; - default: - break; - } -} - // Per-frame updates of visibility void LLStatusBar::refresh() { diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 6feeab393b..4ea3183d18 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -92,8 +92,6 @@ private: void onMouseEnterVolume(); void onMouseEnterNearbyMedia(); void onClickScreen(S32 x, S32 y); - void onModeChange(const LLSD& original_value, const LLSD& new_value); - void onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response); static void onClickMediaToggle(void* data); static void onClickBalance(void* data); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 754731b290..0f983ed0d5 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -863,51 +863,6 @@ class LLAdvancedCheckFeature : public view_listener_t } }; -void toggle_destination_and_avatar_picker(const LLSD& show) -{ - S32 panel_idx = show.isDefined() ? show.asInteger() : -1; - LLView* container = gViewerWindow->getRootView()->findChildView("avatar_picker_and_destination_guide_container"); - if (!container) return; - - LLMediaCtrl* destinations = container->findChild("destination_guide_contents"); - LLMediaCtrl* avatar_picker = container->findChild("avatar_picker_contents"); - if (!destinations || !avatar_picker) return; - - LLButton* avatar_btn = gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("avatar_btn"); - LLButton* destination_btn = gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("destination_btn"); - - if (panel_idx == 0 - && !destinations->getVisible()) - { // opening destinations guide - container->setVisible(true); - destinations->setVisible(true); - avatar_picker->setVisible(false); - LLFirstUse::notUsingDestinationGuide(false); - avatar_btn->setToggleState(false); - destination_btn->setToggleState(true); - gSavedSettings.setS32("DestinationsAndAvatarsVisibility", 0); - } - else if (panel_idx == 1 - && !avatar_picker->getVisible()) - { // opening avatar picker - container->setVisible(true); - destinations->setVisible(false); - avatar_picker->setVisible(true); - avatar_btn->setToggleState(true); - destination_btn->setToggleState(false); - gSavedSettings.setS32("DestinationsAndAvatarsVisibility", 1); - } - else - { // toggling off dest guide or avatar picker - container->setVisible(false); - destinations->setVisible(false); - avatar_picker->setVisible(false); - avatar_btn->setToggleState(false); - destination_btn->setToggleState(false); - gSavedSettings.setS32("DestinationsAndAvatarsVisibility", -1); - } -}; - ////////////////// // INFO DISPLAY // @@ -7823,55 +7778,6 @@ class LLToggleUIHints : public view_listener_t } }; -class LLCheckSessionsSettings : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - std::string expected = userdata.asString(); - return gSavedSettings.getString("SessionSettingsFile") == expected; - } -}; - -class LLChangeMode : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - std::string mode = userdata.asString(); - if (mode == "basic") - { - if (gSavedSettings.getString("SessionSettingsFile") != "settings_minimal.xml") - { - LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(onModeChangeConfirm, "settings_minimal.xml", _1, _2)); - } - return true; - } - else if (mode == "advanced") - { - if (gSavedSettings.getString("SessionSettingsFile") != "") - { - LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(onModeChangeConfirm, "", _1, _2)); - } - return true; - } - return false; - } - - static void onModeChangeConfirm(const std::string& new_session_settings_file, const LLSD& notification, const LLSD& response) - { - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - switch (option) - { - case 0: - gSavedSettings.getControl("SessionSettingsFile")->set(new_session_settings_file); - LLAppViewer::instance()->requestQuit(); - break; - case 1: - default: - break; - } - } -}; - void LLUploadCostCalculator::calculateCost() { S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); @@ -8359,11 +8265,5 @@ void initialize_menus() view_listener_t::addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); view_listener_t::addMenu(new LLEditableSelected(), "EditableSelected"); view_listener_t::addMenu(new LLEditableSelectedMono(), "EditableSelectedMono"); - view_listener_t::addMenu(new LLToggleUIHints(), "ToggleUIHints"); - view_listener_t::addMenu(new LLCheckSessionsSettings(), "CheckSessionSettings"); - view_listener_t::addMenu(new LLChangeMode(), "ChangeMode"); - - commit.add("Destination.show", boost::bind(&toggle_destination_and_avatar_picker, 0)); - commit.add("Avatar.show", boost::bind(&toggle_destination_and_avatar_picker, 1)); } diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index b4e239b0cd..87cb4efbc4 100644 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -126,8 +126,6 @@ bool enable_pay_object(); bool enable_buy_object(); bool handle_go_to(); -void toggle_destination_and_avatar_picker(const LLSD& show); - // Export to XML or Collada void handle_export_selected( void * ); diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 0fb94bc44b..c88122f22c 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -854,7 +854,7 @@ void send_stats() body["DisplayNamesEnabled"] = gSavedSettings.getBOOL("UseDisplayNames"); body["DisplayNamesShowUsername"] = gSavedSettings.getBOOL("NameTagShowUsernames"); - body["MinimalSkin"] = !gSavedSettings.getString("SessionSettingsFile").empty(); + body["MinimalSkin"] = false; LLViewerStats::getInstance()->addToMessage(body); LLHTTPClient::post(url, body, new ViewerStatsResponder()); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 5893259d96..114a422c1d 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1940,25 +1940,6 @@ void LLViewerWindow::initWorldUI() buttons_panel->setShape(buttons_panel_container->getLocalRect()); buttons_panel->setFollowsAll(); buttons_panel_container->addChild(buttons_panel); - - LLView* avatar_picker_destination_guide_container = gViewerWindow->getRootView()->getChild("avatar_picker_and_destination_guide_container"); - avatar_picker_destination_guide_container->getChild("close")->setCommitCallback(boost::bind(toggle_destination_and_avatar_picker, LLSD())); - LLMediaCtrl* destinations = avatar_picker_destination_guide_container->findChild("destination_guide_contents"); - LLMediaCtrl* avatar_picker = avatar_picker_destination_guide_container->findChild("avatar_picker_contents"); - if (destinations) - { - destinations->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); - destinations->navigateTo(gSavedSettings.getString("DestinationGuideURL"), "text/html"); - } - - if (avatar_picker) - { - avatar_picker->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); - avatar_picker->navigateTo(gSavedSettings.getString("AvatarPickerURL"), "text/html"); - } - - // show destinations by default - toggle_destination_and_avatar_picker(gSavedSettings.getS32("DestinationsAndAvatarsVisibility")); } // Destroy the UI diff --git a/indra/newview/skins/default/xui/en/menu_mode_change.xml b/indra/newview/skins/default/xui/en/menu_mode_change.xml deleted file mode 100644 index 87d1a0a7a2..0000000000 --- a/indra/newview/skins/default/xui/en/menu_mode_change.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 41a90f5984..087744fea7 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7382,19 +7382,6 @@ The site at '<nolink>[HOST_NAME]</nolink>' in realm ' - - - Changing modes requires you to quit and restart. - confirm - - - - Mode: - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/textures/arrow_keys.png b/indra/newview/skins/minimal/textures/arrow_keys.png deleted file mode 100644 index f19af59251..0000000000 Binary files a/indra/newview/skins/minimal/textures/arrow_keys.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Off.png b/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Off.png deleted file mode 100644 index b6e9eef891..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Off.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Selected_Press.png b/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Selected_Press.png deleted file mode 100644 index 687cb7fb53..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/Speak_Btn_Selected_Press.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/button_separator.png b/indra/newview/skins/minimal/textures/bottomtray/button_separator.png deleted file mode 100644 index 71ed25f931..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/button_separator.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/close_off.png b/indra/newview/skins/minimal/textures/bottomtray/close_off.png deleted file mode 100644 index 241a24bde9..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/close_off.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/close_over.png b/indra/newview/skins/minimal/textures/bottomtray/close_over.png deleted file mode 100644 index 4630cb6dd6..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/close_over.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/bottomtray/close_press.png b/indra/newview/skins/minimal/textures/bottomtray/close_press.png deleted file mode 100644 index 3ed9c99a26..0000000000 Binary files a/indra/newview/skins/minimal/textures/bottomtray/close_press.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/click_to_move.png b/indra/newview/skins/minimal/textures/click_to_move.png deleted file mode 100644 index 74e3faa8ff..0000000000 Binary files a/indra/newview/skins/minimal/textures/click_to_move.png and /dev/null differ diff --git a/indra/newview/skins/minimal/textures/textures.xml b/indra/newview/skins/minimal/textures/textures.xml deleted file mode 100644 index e3ed01721a..0000000000 --- a/indra/newview/skins/minimal/textures/textures.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/da/floater_camera.xml b/indra/newview/skins/minimal/xui/da/floater_camera.xml deleted file mode 100644 index 5b7ef6db54..0000000000 --- a/indra/newview/skins/minimal/xui/da/floater_camera.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - Roter kamera omkring fokus - - - Zoom kamera mod fokus - - - Flyt kamera op og ned, til venstre og højre - - - Kamera valg - - - Kredsløb zoom panorering - - - Forvalg - - - Se objekt - - - - - - Se forfra - - - - - Se fra siden - - - - - Se bagfra - - - - - - - Se fra objekt - - - - - Førsteperson - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/floater_help_browser.xml b/indra/newview/skins/minimal/xui/en/floater_help_browser.xml deleted file mode 100644 index 477f210352..0000000000 --- a/indra/newview/skins/minimal/xui/en/floater_help_browser.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - Loading... - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/floater_media_browser.xml b/indra/newview/skins/minimal/xui/en/floater_media_browser.xml deleted file mode 100644 index 4862146c94..0000000000 --- a/indra/newview/skins/minimal/xui/en/floater_media_browser.xml +++ /dev/null @@ -1,242 +0,0 @@ - - - - http://www.secondlife.com - - - http://support.secondlife.com - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml b/indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml deleted file mode 100644 index 74ac885202..0000000000 --- a/indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml b/indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml deleted file mode 100644 index 83b1260620..0000000000 --- a/indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/indra/newview/skins/minimal/xui/en/floater_web_content.xml b/indra/newview/skins/minimal/xui/en/floater_web_content.xml deleted file mode 100644 index 1d9a967d5a..0000000000 --- a/indra/newview/skins/minimal/xui/en/floater_web_content.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/inspect_avatar.xml b/indra/newview/skins/minimal/xui/en/inspect_avatar.xml deleted file mode 100644 index 853d5f8735..0000000000 --- a/indra/newview/skins/minimal/xui/en/inspect_avatar.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - - -[AGE] - - -[SL_PROFILE] - - - - - - This is my second life description and I really think it is great. But for some reason my description is super extra long because I like to talk a whole lot - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/panel_group_control_panel.xml b/indra/newview/skins/minimal/xui/en/panel_group_control_panel.xml deleted file mode 100644 index abddc59296..0000000000 --- a/indra/newview/skins/minimal/xui/en/panel_group_control_panel.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml index 5475fcd245..3c69a0cb6c 100644 --- a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml +++ b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml @@ -64,14 +64,32 @@ user_resize="false" mouse_opaque="false" height="100" - width="100"> + width="200"> + width="200"/> + + + + width="200"/> Date: Tue, 11 Oct 2011 22:49:00 -0700 Subject: EXP-1275 FIX A UI element or Keyboard shortcut to clear the viewport Ctrl+Shift+U now toggles UI and hides floaters refactored main_view.xml made all members of llviewerwindow private --- indra/llui/llmenugl.cpp | 2 +- indra/newview/llappviewer.cpp | 20 +-- indra/newview/lldirpicker.cpp | 4 +- indra/newview/llfilepicker.cpp | 20 +-- indra/newview/llinventorybridge.cpp | 2 +- indra/newview/lllandmarkactions.cpp | 2 +- indra/newview/lltoolbarview.cpp | 7 + indra/newview/lltoolbarview.h | 2 + indra/newview/lltoolgun.cpp | 4 +- indra/newview/llviewerdisplay.cpp | 14 +- indra/newview/llviewermenu.cpp | 16 +- indra/newview/llviewerwindow.cpp | 42 +++-- indra/newview/llviewerwindow.h | 13 +- indra/newview/skins/default/xui/en/main_view.xml | 173 +++++++-------------- indra/newview/skins/default/xui/en/menu_viewer.xml | 7 + 15 files changed, 160 insertions(+), 168 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index badba7a416..3ef8d8ff35 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1731,7 +1731,7 @@ void LLMenuGL::setCanTearOff(BOOL tear_off) { LLMenuItemTearOffGL::Params p; mTearOffItem = LLUICtrlFactory::create(p); - addChildInBack(mTearOffItem); + addChild(mTearOffItem); } else if (!tear_off && mTearOffItem != NULL) { diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 5077a0a596..4d02093d2e 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1217,7 +1217,7 @@ bool LLAppViewer::mainLoop() if (gViewerWindow) { LLFastTimer t2(FTM_MESSAGES); - gViewerWindow->mWindow->processMiscNativeEvents(); + gViewerWindow->getWindow()->processMiscNativeEvents(); } pingMainloopTimeout("Main:GatherInput"); @@ -1230,7 +1230,7 @@ bool LLAppViewer::mainLoop() llwarns << " Someone took over my signal/exception handler (post messagehandling)!" << llendl; } - gViewerWindow->mWindow->gatherInput(); + gViewerWindow->getWindow()->gatherInput(); } #if 1 && !LL_RELEASE_FOR_DOWNLOAD @@ -1259,9 +1259,9 @@ bool LLAppViewer::mainLoop() // Scan keyboard for movement keys. Command keys and typing // are handled by windows callbacks. Don't do this until we're // done initializing. JC - if ((gHeadlessClient || gViewerWindow->mWindow->getVisible()) + if ((gHeadlessClient || gViewerWindow->getWindow()->getVisible()) && gViewerWindow->getActive() - && !gViewerWindow->mWindow->getMinimized() + && !gViewerWindow->getWindow()->getMinimized() && LLStartUp::getStartupState() == STATE_STARTED && (gHeadlessClient || !gViewerWindow->getShowProgress()) && !gFocusMgr.focusLocked()) @@ -1340,7 +1340,7 @@ bool LLAppViewer::mainLoop() } // yield cooperatively when not running as foreground window - if ( (gViewerWindow && !gViewerWindow->mWindow->getVisible()) + if ( (gViewerWindow && !gViewerWindow->getWindow()->getVisible()) || !gFocusMgr.getAppHasFocus()) { // Sleep if we're not rendering, or the window is minimized. @@ -2920,7 +2920,7 @@ bool LLAppViewer::initWindow() if (gSavedSettings.getBOOL("WindowMaximized")) { - gViewerWindow->mWindow->maximize(); + gViewerWindow->getWindow()->maximize(); } // @@ -2963,7 +2963,7 @@ bool LLAppViewer::initWindow() if (gSavedSettings.getBOOL("WindowMaximized")) { - gViewerWindow->mWindow->maximize(); + gViewerWindow->getWindow()->maximize(); } LLUI::sWindow = gViewerWindow->getWindow(); @@ -2975,7 +2975,7 @@ bool LLAppViewer::initWindow() gViewerWindow->initBase(); // show viewer window - //gViewerWindow->mWindow->show(); + //gViewerWindow->getWindow()->show(); LL_INFOS("AppInit") << "Window initialization done." << LL_ENDL; return true; @@ -3009,12 +3009,12 @@ void LLAppViewer::cleanupSavedSettings() // as we don't track it in callbacks if(NULL != gViewerWindow) { - BOOL maximized = gViewerWindow->mWindow->getMaximized(); + BOOL maximized = gViewerWindow->getWindow()->getMaximized(); if (!maximized) { LLCoordScreen window_pos; - if (gViewerWindow->mWindow->getPosition(&window_pos)) + if (gViewerWindow->getWindow()->getPosition(&window_pos)) { gSavedSettings.setS32("WindowX", window_pos.mX); gSavedSettings.setS32("WindowY", window_pos.mY); diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index dd243397a1..1e03582a29 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -217,12 +217,12 @@ OSStatus LLDirPicker::doNavChooseDialog() error = NavCreateChooseFolderDialog(&mNavOptions, &doNavCallbackEvent, NULL, NULL, &navRef); - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); if (error == noErr) error = NavDialogRun(navRef); - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); if (error == noErr) error = NavDialogGetReply(navRef, &navReply); diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 8c0ed29855..4897cf1885 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -653,12 +653,12 @@ OSStatus LLFilePicker::doNavChooseDialog(ELoadFilter filter) // (It is destroyed by NavDialogDispose() below.) error = NavCreateChooseFileDialog(&mNavOptions, NULL, NULL, NULL, navOpenFilterProc, (void*)(&filter), &navRef); - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); if (error == noErr) error = NavDialogRun(navRef); - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); if (error == noErr) error = NavDialogGetReply(navRef, &navReply); @@ -808,13 +808,13 @@ OSStatus LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& fi } } - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); // Run the dialog if (error == noErr) error = NavDialogRun(navRef); - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); if (error == noErr) error = NavDialogGetReply(navRef, &navReply); @@ -1204,7 +1204,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename return FALSE; } - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); reset(); @@ -1284,7 +1284,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename rtn = (getFileCount() == 1); } - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); return rtn; } @@ -1299,7 +1299,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) return FALSE; } - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); reset(); @@ -1337,7 +1337,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) rtn = (getFileCount() == 1); } - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); return rtn; } @@ -1352,7 +1352,7 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter ) return FALSE; } - gViewerWindow->mWindow->beforeDialog(); + gViewerWindow->getWindow()->beforeDialog(); reset(); @@ -1370,7 +1370,7 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter ) rtn = !mFiles.empty(); } - gViewerWindow->mWindow->afterDialog(); + gViewerWindow->getWindow()->afterDialog(); return rtn; } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 2066cbc6b2..9fe73fc940 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1185,7 +1185,7 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action) std::string buffer; asset_id.toString(buffer); - gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(buffer)); + gViewerWindow->getWindow()->copyTextToClipboard(utf8str_to_wstring(buffer)); return; } else if ("copy" == action) diff --git a/indra/newview/lllandmarkactions.cpp b/indra/newview/lllandmarkactions.cpp index f2aec20611..6625a194fb 100644 --- a/indra/newview/lllandmarkactions.cpp +++ b/indra/newview/lllandmarkactions.cpp @@ -413,7 +413,7 @@ void LLLandmarkActions::copySLURLtoClipboard(const LLUUID& landmarkInventoryItem void copy_slurl_to_clipboard_callback(const std::string& slurl) { - gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(slurl)); + gViewerWindow->getWindow()->copyTextToClipboard(utf8str_to_wstring(slurl)); LLSD args; args["SLURL"] = slurl; LLNotificationsUtil::add("CopySLURL", args); diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 7977faeab7..7273574203 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -456,3 +456,10 @@ void LLToolBarView::onEndDrag() } stopDragTool(); } + +void LLToolBarView::setToolBarsVisible(bool visible) +{ + mToolbarBottom->getParent()->setVisible(visible); + mToolbarLeft->getParent()->setVisible(visible); + mToolbarRight->getParent()->setVisible(visible); +} diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index 6623e63f8a..01ff137c15 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -72,6 +72,8 @@ public: // Loads the toolbars from the existing user or default settings bool loadToolbars(bool force_default = false); // return false if load fails + void setToolBarsVisible(bool visible); + static bool loadDefaultToolbars(); static void startDragTool( S32 x, S32 y, const LLUUID& uuid); diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp index 68af3d73d2..857d105361 100644 --- a/indra/newview/lltoolgun.cpp +++ b/indra/newview/lltoolgun.cpp @@ -56,7 +56,7 @@ void LLToolGun::handleSelect() { gViewerWindow->hideCursor(); gViewerWindow->moveCursorToCenter(); - gViewerWindow->mWindow->setMouseClipping(TRUE); + gViewerWindow->getWindow()->setMouseClipping(TRUE); mIsSelected = TRUE; } @@ -64,7 +64,7 @@ void LLToolGun::handleDeselect() { gViewerWindow->moveCursorToCenter(); gViewerWindow->showCursor(); - gViewerWindow->mWindow->setMouseClipping(FALSE); + gViewerWindow->getWindow()->setMouseClipping(FALSE); mIsSelected = FALSE; } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 19326c4e30..d6512207ae 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -114,8 +114,8 @@ void render_disconnected_background(); void display_startup() { if ( !gViewerWindow->getActive() - || !gViewerWindow->mWindow->getVisible() - || gViewerWindow->mWindow->getMinimized() ) + || !gViewerWindow->getWindow()->getVisible() + || gViewerWindow->getWindow()->getMinimized() ) { return; } @@ -157,7 +157,7 @@ void display_startup() LLGLState::checkStates(); LLGLState::checkTextureChannels(); - gViewerWindow->mWindow->swapBuffers(); + gViewerWindow->getWindow()->swapBuffers(); glClear(GL_DEPTH_BUFFER_BIT); } @@ -223,7 +223,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) { //skip render on frames where window has been resized gGL.flush(); glClear(GL_COLOR_BUFFER_BIT); - gViewerWindow->mWindow->swapBuffers(); + gViewerWindow->getWindow()->swapBuffers(); gPipeline.resizeScreenTexture(); gResizeScreenTexture = FALSE; gWindowResized = FALSE; @@ -260,8 +260,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) // In fact, must explicitly check the minimized state before drawing. // Attempting to draw into a minimized window causes a GL error. JC if ( !gViewerWindow->getActive() - || !gViewerWindow->mWindow->getVisible() - || gViewerWindow->mWindow->getMinimized() ) + || !gViewerWindow->getWindow()->getVisible() + || gViewerWindow->getWindow()->getMinimized() ) { // Clean up memory the pools may have allocated if (rebuild) @@ -1237,7 +1237,7 @@ void render_ui(F32 zoom_factor, int subfield) if (gDisplaySwapBuffers) { LLFastTimer t(FTM_SWAP); - gViewerWindow->mWindow->swapBuffers(); + gViewerWindow->getWindow()->swapBuffers(); } gDisplaySwapBuffers = TRUE; } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index bc0f38dd77..da1b149b59 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -446,11 +446,13 @@ void init_menus() { color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" ); } + + LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder"); + gMenuBarView = LLUICtrlFactory::getInstance()->createFromFile("menu_viewer.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); - gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT)); + gMenuBarView->setRect(LLRect(0, menu_bar_holder->getRect().mTop, 0, menu_bar_holder->getRect().mTop - MENU_BAR_HEIGHT)); gMenuBarView->setBackgroundColor( color ); - LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder"); menu_bar_holder->addChild(gMenuBarView); gViewerWindow->setMenuBackgroundColor(false, @@ -3762,6 +3764,15 @@ class LLViewDefaultUISize : public view_listener_t } }; +class LLViewToggleUI : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility()); + return true; + } +}; + class LLEditDuplicate : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -7926,6 +7937,7 @@ void initialize_menus() view_listener_t::addMenu(new LLZoomer(1/1.2f), "View.ZoomIn"); view_listener_t::addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault"); view_listener_t::addMenu(new LLViewDefaultUISize(), "View.DefaultUISize"); + view_listener_t::addMenu(new LLViewToggleUI(), "View.ToggleUI"); view_listener_t::addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); view_listener_t::addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam"); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index fae3ee9081..2473d41a35 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -76,7 +76,6 @@ #include "lltimer.h" #include "timing.h" #include "llviewermenu.h" -#include "lltoolbarview.h" #include "lltooltip.h" #include "llmediaentry.h" #include "llurldispatcher.h" @@ -147,6 +146,7 @@ #include "lltexturefetch.h" #include "lltextureview.h" #include "lltool.h" +#include "lltoolbarview.h" #include "lltoolcomp.h" #include "lltooldraganddrop.h" #include "lltoolface.h" @@ -1339,7 +1339,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) { if (activated) { - mActive = TRUE; + mActive = true; send_agent_resume(); gAgent.clearAFK(); @@ -1348,7 +1348,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) } else { - mActive = FALSE; + mActive = false; // if the user has chosen to go Away automatically after some time, then go Away when minimizing if (gSavedSettings.getS32("AFKTimeout")) @@ -1531,7 +1531,8 @@ LLViewerWindow::LLViewerWindow( BOOL fullscreen, BOOL ignore_pixel_depth) // fullscreen is no longer used : mWindow(NULL), - mActive(TRUE), + mActive(true), + mUIVisible(true), mWindowRectRaw(0, height, width, 0), mWindowRectScaled(0, height, width, 0), mWorldViewRectRaw(0, height, width, 0), @@ -1771,7 +1772,6 @@ void LLViewerWindow::initBase() // placeholder widget that controls where "world" is rendered mWorldViewPlaceholder = main_view->getChildView("world_view_rect")->getHandle(); - mFloaterViewHolder = main_view->getChildView("floater_view_holder")->getHandle(); mPopupView = main_view->getChild("popup_holder"); mHintHolder = main_view->getChild("hint_holder")->getHandle(); mLoginPanelHolder = main_view->getChild("login_panel_holder")->getHandle(); @@ -1882,7 +1882,7 @@ void LLViewerWindow::initWorldUI() gStatusBar->setShape(status_bar_container->getLocalRect()); // sync bg color with menu bar gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor().get() ); - status_bar_container->addChild(gStatusBar); + status_bar_container->addChildInBack(gStatusBar); status_bar_container->setVisible(TRUE); // Navigation bar @@ -1922,8 +1922,7 @@ void LLViewerWindow::initWorldUI() hud_rect.mTop -= gMenuBarView->getRect().getHeight(); } gHUDView = new LLHUDView(hud_rect); - // put behind everything else in the UI - getRootView()->addChildInBack(gHUDView); + getRootView()->addChild(gHUDView); } LLPanel* panel_ssf_container = getRootView()->getChild("stand_stop_flying_container"); @@ -4084,7 +4083,7 @@ static S32 BORDERWIDTH = 0; void LLViewerWindow::movieSize(S32 new_width, S32 new_height) { LLCoordScreen size; - gViewerWindow->mWindow->getSize(&size); + gViewerWindow->getWindow()->getSize(&size); if ( (size.mX != new_width + BORDERWIDTH) ||(size.mY != new_height + BORDERHEIGHT)) { @@ -4095,7 +4094,7 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height) BORDERHEIGHT = size.mY- y; LLCoordScreen new_size(new_width + BORDERWIDTH, new_height + BORDERHEIGHT); - gViewerWindow->mWindow->setSize(new_size); + gViewerWindow->getWindow()->setSize(new_size); } } @@ -4979,6 +4978,29 @@ bool LLViewerWindow::onAlert(const LLSD& notify) return false; } +void LLViewerWindow::setUIVisibility(bool visible) +{ + mUIVisible = visible; + + if (gToolBarView) + { + gToolBarView->setToolBarsVisible(visible); + } + + mRootView->getChildView("nav_bar_container")->setVisible(visible); + mRootView->getChildView("status_bar_container")->setVisible(visible); + + if (!visible) + { + gFloaterView->closeAllChildren(false); + } +} + +bool LLViewerWindow::getUIVisibility() +{ + return mUIVisible; +} + //////////////////////////////////////////////////////////////////////////// // // LLPickInfo diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index 872eb12753..3afca3073d 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -143,6 +143,8 @@ public: void adjustRectanglesForFirstUse(const LLRect& window); void adjustControlRectanglesForFirstUse(const LLRect& window); void initWorldUI(); + void setUIVisibility(bool); + bool getUIVisibility(); BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, LLMouseHandler::EClickType clicktype, BOOL down); @@ -282,7 +284,6 @@ public: void updateKeyboardFocus(); void updateWorldViewRect(bool use_full_window=false); - LLView* getFloaterViewHolder() { return mFloaterViewHolder.get(); } LLView* getToolBarHolder() { return mToolBarHolder.get(); } LLView* getHintHolder() { return mHintHolder.get(); } LLView* getLoginPanelHolder() { return mLoginPanelHolder.get(); } @@ -394,11 +395,10 @@ private: S32 getChatConsoleBottomPad(); // Vertical padding for child console rect, varied by bottom clutter LLRect getChatConsoleRect(); // Get optimal cosole rect. -public: +private: LLWindow* mWindow; // graphical window object - -protected: - BOOL mActive; + bool mActive; + bool mUIVisible; LLRect mWindowRectRaw; // whole window, including UI LLRect mWindowRectScaled; // whole window, scaled by UI size @@ -444,7 +444,6 @@ protected: std::string mInitAlert; // Window / GL initialization requires an alert LLHandle mWorldViewPlaceholder; // widget that spans the portion of screen dedicated to rendering the 3d world - LLHandle mFloaterViewHolder; // container for floater_view LLHandle mToolBarHolder; // container for toolbars LLHandle mHintHolder; // container for hints LLHandle mLoginPanelHolder; // container for login panel @@ -458,13 +457,11 @@ protected: boost::scoped_ptr mViewerWindowListener; -protected: static std::string sSnapshotBaseName; static std::string sSnapshotDir; static std::string sMovieBaseName; -private: // Object temporarily hovered over while dragging LLPointer mDragHoveredObject; }; diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index 96d070ae50..2c07e8e35f 100644 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -8,98 +8,71 @@ tab_stop="false" name="main_view" width="1024"> + + top="0"> + + + - - + - - - - - - - - - - - + - + left="0" + follows="all" + height="500" + mouse_opaque="false" + name="login_panel_holder" + width="1024"/> - - - - + width="1024"/> - + follows="all" + layout="topleft" + height="500" + width="1024" + top="0" + left="0" + mouse_opaque="false" + tab_stop="false"/> - - - + + + + Date: Wed, 12 Oct 2011 13:50:20 -0700 Subject: EXP-1275 WIP A UI element or Keyboard shortcut to clear the viewport restores hidden floaters now --- indra/llui/llfloater.cpp | 46 ++++++++++++++++++++++++++++++++++++++++ indra/llui/llfloater.h | 11 ++++++++-- indra/newview/llviewerwindow.cpp | 6 +++++- 3 files changed, 60 insertions(+), 3 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 0398c0d7eb..4bcc7c6fe0 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2506,6 +2506,52 @@ void LLFloaterView::closeAllChildren(bool app_quitting) } } +void LLFloaterView::hiddenFloaterClosed(LLFloater* floater) +{ + for (hidden_floaters_t::iterator it = mHiddenFloaters.begin(), end_it = mHiddenFloaters.end(); + it != end_it; + ++it) + { + if (it->first.get() == floater) + { + it->second.disconnect(); + mHiddenFloaters.erase(it); + break; + } + } +} + +void LLFloaterView::hideAllFloaters() +{ + child_list_t child_list = *(getChildList()); + + for (child_list_iter_t it = child_list.begin(); it != child_list.end(); ++it) + { + LLFloater* floaterp = dynamic_cast(*it); + if (floaterp && floaterp->getVisible()) + { + floaterp->setVisible(false); + boost::signals2::connection connection = floaterp->mCloseSignal.connect(boost::bind(&LLFloaterView::hiddenFloaterClosed, this, floaterp)); + mHiddenFloaters.push_back(std::make_pair(floaterp->getHandle(), connection)); + } + } +} + +void LLFloaterView::showHiddenFloaters() +{ + for (hidden_floaters_t::iterator it = mHiddenFloaters.begin(), end_it = mHiddenFloaters.end(); + it != end_it; + ++it) + { + LLFloater* floaterp = it->first.get(); + if (floaterp) + { + floaterp->setVisible(true); + } + it->second.disconnect(); + } + mHiddenFloaters.clear(); +} BOOL LLFloaterView::allChildrenClosed() { diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index b404306e94..275b508f79 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -35,6 +35,7 @@ #include "lluuid.h" //#include "llnotificationsutil.h" #include +#include class LLDragHandle; class LLResizeHandle; @@ -454,8 +455,6 @@ private: typedef std::map, LLFloater*>::iterator handle_map_iter_t; static handle_map_t sFloaterMap; - std::vector > mMinimizedHiddenChildren; - BOOL mHasBeenDraggedWhileMinimized; S32 mPreviousMinimizedBottom; S32 mPreviousMinimizedLeft; @@ -509,6 +508,10 @@ public: BOOL allChildrenClosed(); void shiftFloaters(S32 x_offset, S32 y_offset); + void hideAllFloaters(); + void showHiddenFloaters(); + + LLFloater* getFrontmost() const; LLFloater* getBackmost() const; LLFloater* getParentFloater(LLView* viewp) const; @@ -523,11 +526,15 @@ public: void setFloaterSnapView(LLHandle snap_view) {mSnapView = snap_view; } private: + void hiddenFloaterClosed(LLFloater* floater); + LLHandle mSnapView; BOOL mFocusCycleMode; S32 mSnapOffsetBottom; S32 mSnapOffsetRight; S32 mMinimizePositionVOffset; + typedef std::vector, boost::signals2::connection> > hidden_floaters_t; + hidden_floaters_t mHiddenFloaters; }; // diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 2473d41a35..665b31a427 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4992,7 +4992,11 @@ void LLViewerWindow::setUIVisibility(bool visible) if (!visible) { - gFloaterView->closeAllChildren(false); + gFloaterView->hideAllFloaters(); + } + else + { + gFloaterView->showHiddenFloaters(); } } -- cgit v1.3 From bdf6363e6aa4216913607e83bfc5e159f2535407 Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Fri, 14 Oct 2011 01:07:16 +0300 Subject: EXP-1282 FIXED Bottom bar removed. - LLBottomTray code and XUI removed. - "Speak" buttom which resided in Bottom bar removed. - Voice connection status update moved from LLBottomTray to LLVivoxVoiceClient. --- indra/newview/CMakeLists.txt | 4 - indra/newview/llbottomtray.cpp | 1996 -------------------- indra/newview/llbottomtray.h | 564 ------ indra/newview/llchatbar.cpp | 1 - indra/newview/llfloatersounddevices.cpp | 4 - indra/newview/llimpanel.cpp | 1 - indra/newview/llimview.cpp | 8 - indra/newview/llnearbychathandler.cpp | 1 - indra/newview/llspeakbutton.cpp | 165 -- indra/newview/llspeakbutton.h | 88 - indra/newview/llviewermenu.cpp | 5 +- indra/newview/llviewerwindow.cpp | 11 +- indra/newview/llvoicevivox.cpp | 15 +- .../skins/default/xui/en/panel_bottomtray.xml | 530 ------ .../skins/default/xui/en/panel_side_tray.xml | 174 -- 15 files changed, 21 insertions(+), 3546 deletions(-) delete mode 100644 indra/newview/llbottomtray.cpp delete mode 100644 indra/newview/llbottomtray.h delete mode 100644 indra/newview/llspeakbutton.cpp delete mode 100644 indra/newview/llspeakbutton.h delete mode 100644 indra/newview/skins/default/xui/en/panel_bottomtray.xml delete mode 100644 indra/newview/skins/default/xui/en/panel_side_tray.xml (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 6cbd76bc71..4024e93b33 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -102,7 +102,6 @@ set(viewer_SOURCE_FILES llavatarlist.cpp llavatarlistitem.cpp llavatarpropertiesprocessor.cpp - llbottomtray.cpp llbox.cpp llbreadcrumbview.cpp llbrowsernotification.cpp @@ -449,7 +448,6 @@ set(viewer_SOURCE_FILES llsky.cpp llslurl.cpp llspatialpartition.cpp - llspeakbutton.cpp llspeakers.cpp llspeakingindicatormanager.cpp llsplitbutton.cpp @@ -669,7 +667,6 @@ set(viewer_HEADER_FILES llavatarlist.h llavatarlistitem.h llavatarpropertiesprocessor.h - llbottomtray.h llbox.h llbreadcrumbview.h llbuycurrencyhtml.h @@ -1011,7 +1008,6 @@ set(viewer_HEADER_FILES llsky.h llslurl.h llspatialpartition.h - llspeakbutton.h llspeakers.h llspeakingindicatormanager.h llsplitbutton.h diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp deleted file mode 100644 index af91702f9b..0000000000 --- a/indra/newview/llbottomtray.cpp +++ /dev/null @@ -1,1996 +0,0 @@ -/** - * @file llbottomtray.cpp - * @brief LLBottomTray class implementation - * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" // must be first include - -#define LLBOTTOMTRAY_CPP -#include "llbottomtray.h" - -// library includes -#include "llfloaterreg.h" -#include "llfloatersidepanelcontainer.h" -#include "llflyoutbutton.h" -#include "lllayoutstack.h" -#include "llnotifications.h" -#include "llnotificationsutil.h" -#include "lltexteditor.h" - -// newview includes -#include "llagent.h" -#include "llagentcamera.h" -#include "llavataractions.h" -#include "llchiclet.h" -#include "llfloatercamera.h" -#include "llhints.h" -#include "llimfloater.h" // for LLIMFloater -#include "llnearbychatbar.h" -#include "llnearbychatbarlistener.h" -#include "llspeakbutton.h" -#include "llsplitbutton.h" -#include "llsyswellwindow.h" -#include "lltoolmgr.h" -#include "llviewerparcelmgr.h" - -#include "llviewerwindow.h" -#include "llsdserialize.h" -#include "llfirstuse.h" - -// Distance from mouse down on which drag'n'drop should be started. -#define DRAG_START_DISTANCE 3 - -static const std::string SORTING_DATA_FILE_NAME = "bottomtray_buttons_order.xml"; - -LLDefaultChildRegistry::Register bottomtray_button("bottomtray_button"); - -// LLBottomtrayButton methods - -// virtual -BOOL LLBottomtrayButton::handleHover(S32 x, S32 y, MASK mask) -{ - if (mCanDrag) - { - // pass hover to bottomtray - S32 screenX, screenY; - localPointToScreen(x, y, &screenX, &screenY); - LLBottomTray::getInstance()->onDraggableButtonHover(screenX, screenY); - - return TRUE; - } - else - { - return LLButton::handleHover(x, y, mask); - } -} -//virtual -BOOL LLBottomtrayButton::handleMouseUp(S32 x, S32 y, MASK mask) -{ - if (mCanDrag) - { - S32 screenX, screenY; - localPointToScreen(x, y, &screenX, &screenY); - // pass mouse up to bottomtray - LLBottomTray::getInstance()->onDraggableButtonMouseUp(this, screenX, screenY); - } - return LLButton::handleMouseUp(x, y, mask); -} -//virtual -BOOL LLBottomtrayButton::handleMouseDown(S32 x, S32 y, MASK mask) -{ - if (mCanDrag) - { - S32 screenX, screenY; - localPointToScreen(x, y, &screenX, &screenY); - // pass mouse up to bottomtray - LLBottomTray::getInstance()->onDraggableButtonMouseDown(this, screenX, screenY); - } - return LLButton::handleMouseDown(x, y, mask); -} - -static void update_build_button_enable_state() -{ - bool can_edit = LLToolMgr::getInstance()->canEdit(); - - LLBottomTray::getInstance()->getChildView("build_btn")->setEnabled(can_edit); -} - -// Build time optimization, generate extern template once in .cpp file -template class LLBottomTray* LLSingleton::getInstance(); - -namespace -{ - const std::string& PANEL_CHICLET_NAME = "chiclet_list_panel"; - - S32 get_panel_min_width(LLLayoutStack* stack, LLView* panel) - { - S32 minimal_width = 0; - llassert(stack); - if ( stack && panel && panel->getVisible() ) - { - stack->getPanelMinSize(panel->getName(), &minimal_width); - } - return minimal_width; - } - - S32 get_panel_max_width(LLLayoutStack* stack, LLPanel* panel) - { - S32 max_width = 0; - llassert(stack); - if ( stack && panel && panel->getVisible() ) - { - stack->getPanelMaxSize(panel->getName(), &max_width); - } - return max_width; - } - - S32 get_curr_width(LLUICtrl* ctrl) - { - S32 cur_width = 0; - if ( ctrl && ctrl->getVisible() ) - { - cur_width = ctrl->getRect().getWidth(); - } - return cur_width; - } -} - -class LLBottomTrayLite - : public LLPanel -{ -public: - LLBottomTrayLite() - : mNearbyChatBar(NULL), - mChatBarContainer(NULL), - mGesturePanel(NULL) - { - //mFactoryMap["chat_bar"] = LLCallbackMap(LLBottomTray::createNearbyChatBar, NULL); - buildFromFile("panel_bottomtray_lite.xml"); - } - - BOOL postBuild() - { - //mNearbyChatBar = findChild("chat_bar"); - mChatBarContainer = getChild("chat_bar_layout_panel"); - mGesturePanel = getChild("gesture_panel"); - - // Hide "show_nearby_chat" button - if (mNearbyChatBar) - { - LLLineEditor* chat_box = mNearbyChatBar->getChatBox(); - LLUICtrl* show_btn = mNearbyChatBar->getChild("show_nearby_chat"); - S32 delta_width = show_btn->getRect().getWidth(); - show_btn->setVisible(FALSE); - chat_box->reshape(chat_box->getRect().getWidth() + delta_width, chat_box->getRect().getHeight()); - } - return TRUE; - } - - void onFocusLost() - { - if (gAgentCamera.cameraMouselook()) - { - LLBottomTray::getInstance()->setVisible(FALSE); - } - } - - LLNearbyChatBar* mNearbyChatBar; - LLLayoutPanel* mChatBarContainer; - LLPanel* mGesturePanel; -}; - -LLBottomTray::LLBottomTray(const LLSD&) -: mDesiredNearbyChatWidth(0), - mChicletPanel(NULL), - mSpeakPanel(NULL), - mSpeakBtn(NULL), - mNearbyChatBar(NULL), - mChatBarContainer(NULL), - mNearbyCharResizeHandlePanel(NULL), - mToolbarStack(NULL), - mMovementButton(NULL), - mResizeState(RS_NORESIZE), - mBottomTrayContextMenu(NULL), - mCamButton(NULL), - mBottomTrayLite(NULL), - mIsInLiteMode(false), - mDragStarted(false), - mDraggedItem(NULL), - mLandingTab(NULL), - mCheckForDrag(false) -{ - // Firstly add our self to IMSession observers, so we catch session events - // before chiclets do that. - LLIMMgr::getInstance()->addSessionObserver(this); - - //mFactoryMap["chat_bar"] = LLCallbackMap(LLBottomTray::createNearbyChatBar, NULL); - - buildFromFile("panel_bottomtray.xml"); - - LLUICtrl::CommitCallbackRegistry::defaultRegistrar().add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2)); - - //this is to fix a crash that occurs because LLBottomTray is a singleton - //and thus is deleted at the end of the viewers lifetime, but to be cleanly - //destroyed LLBottomTray requires some subsystems that are long gone - //LLUI::getRootView()->addChild(this); - - { - mBottomTrayLite = new LLBottomTrayLite(); - mBottomTrayLite->setFollowsAll(); - mBottomTrayLite->setVisible(FALSE); - } - - mImageDragIndication = LLUI::getUIImage(getString("DragIndicationImageName")); - mDesiredNearbyChatWidth = mNearbyChatBar ? mNearbyChatBar->getRect().getWidth() : 0; -} - -LLBottomTray::~LLBottomTray() -{ - if (!LLSingleton::destroyed()) - { - LLIMMgr::getInstance()->removeSessionObserver(this); - } - - if (mNearbyChatBar) - { - // store custom width of chatbar panel. - S32 custom_width = mChatBarContainer->getRect().getWidth(); - gSavedSettings.setS32("ChatBarCustomWidth", custom_width); - } - - // emulate previous floater behavior to be hidden on startup. - // override effect of save_visibility=true. - // this attribute is necessary to button.initial_callback=Button.SetFloaterToggle works properly: - // i.g when floater changes its visibility - button changes its toggle state. - getChild("build_btn")->setControlValue(false); - getChild("search_btn")->setControlValue(false); - getChild("world_map_btn")->setControlValue(false); -} - -// *TODO Vadim: why void* ? -void* LLBottomTray::createNearbyChatBar(void* userdata) -{ - //return new LLNearbyChatBar(); - return NULL; -} - -LLNearbyChatBar* LLBottomTray::getNearbyChatBar() -{ - return mIsInLiteMode ? mBottomTrayLite->mNearbyChatBar : mNearbyChatBar; -} - -LLIMChiclet* LLBottomTray::createIMChiclet(const LLUUID& session_id) -{ - LLIMChiclet::EType im_chiclet_type = LLIMChiclet::getIMSessionType(session_id); - - switch (im_chiclet_type) - { - case LLIMChiclet::TYPE_IM: - return getChicletPanel()->createChiclet(session_id); - case LLIMChiclet::TYPE_GROUP: - return getChicletPanel()->createChiclet(session_id); - case LLIMChiclet::TYPE_AD_HOC: - return getChicletPanel()->createChiclet(session_id); - case LLIMChiclet::TYPE_UNKNOWN: - break; - } - - return NULL; -} - -//virtual -void LLBottomTray::sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id) -{ - if (!getChicletPanel()) return; - - LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id); - if (!session) return; - - // no need to spawn chiclets for participants in P2P calls called through Avaline - if (session->isP2P() && session->isOtherParticipantAvaline()) return; - - if (getChicletPanel()->findChiclet(session_id)) return; - - LLIMChiclet* chiclet = createIMChiclet(session_id); - if(chiclet) - { - chiclet->setIMSessionName(name); - chiclet->setOtherParticipantId(other_participant_id); - - LLIMFloater::onIMChicletCreated(session_id); - - } - else - { - llerrs << "Could not create chiclet" << llendl; - } -} - -//virtual -void LLBottomTray::sessionRemoved(const LLUUID& session_id) -{ - if(getChicletPanel()) - { - // IM floater should be closed when session removed and associated chiclet closed - LLIMFloater* iMfloater = LLFloaterReg::findTypedInstance( - "impanel", session_id); - if (iMfloater != NULL) - { - iMfloater->closeFloater(); - } - - getChicletPanel()->removeChiclet(session_id); - } -} - -void LLBottomTray::sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id) -{ - //this is only needed in case of outgoing ad-hoc/group chat sessions - LLChicletPanel* chiclet_panel = getChicletPanel(); - if (chiclet_panel) - { - //it should be ad-hoc im chiclet or group im chiclet - LLChiclet* chiclet = chiclet_panel->findChiclet(old_session_id); - if (chiclet) chiclet->setSessionId(new_session_id); - } -} - -S32 LLBottomTray::getTotalUnreadIMCount() -{ - return getChicletPanel()->getTotalUnreadIMCount(); -} - -// virtual -void LLBottomTray::onChange(EStatusType status, const std::string &channelURI, bool proximal) -{ - // Time it takes to connect to voice channel might be pretty long, - // so don't expect user login or STATUS_VOICE_ENABLED to be followed by STATUS_JOINED. - BOOL enable = FALSE; - - switch (status) - { - // Do not add STATUS_VOICE_ENABLED because voice chat is - // inactive until STATUS_JOINED - case STATUS_JOINED: - enable = TRUE; - break; - default: - enable = FALSE; - break; - } - - // We have to enable/disable right and left parts of speak button separately (EXT-4648) - getChild("speak_btn")->setEnabled(enable); - - // skipped to avoid button blinking - if (status != STATUS_JOINING && status!= STATUS_LEFT_CHANNEL) - { - bool voice_status = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking(); - - gAgent.setVoiceConnected(voice_status); - - getChild("speak_flyout_btn")->setEnabled(voice_status); - gMenuBarView->getChild("Nearby Voice")->setEnabled(voice_status); - if (voice_status) - { - LLFirstUse::speak(true); - } - } -} - -void LLBottomTray::onMouselookModeOut() -{ - mIsInLiteMode = false; - mBottomTrayLite->setVisible(FALSE); - //mNearbyChatBar->getChatBox()->setText(mBottomTrayLite->mNearbyChatBar->getChatBox()->getText()); - setVisible(TRUE); -} - -void LLBottomTray::onMouselookModeIn() -{ - setVisible(FALSE); - - // Attach the lite bottom tray - if (getParent() && mBottomTrayLite->getParent() != getParent()) - getParent()->addChild(mBottomTrayLite); - - mBottomTrayLite->setShape(getLocalRect()); - //mBottomTrayLite->mNearbyChatBar->getChatBox()->setText(mNearbyChatBar->getChatBox()->getText()); - //mBottomTrayLite->mGesturePanel->setVisible(gSavedSettings.getBOOL("ShowGestureButton")); - - mIsInLiteMode = true; -} - -//virtual -// setVisible used instead of onVisibilityChange, since LLAgent calls it on entering/leaving mouselook mode. -// If bottom tray is already visible in mouselook mode, then onVisibilityChange will not be called from setVisible(true), -void LLBottomTray::setVisible(BOOL visible) -{ - if (mIsInLiteMode) - { - mBottomTrayLite->setVisible(visible); - } - else - { - LLPanel::setVisible(visible); - } -} - -S32 LLBottomTray::notifyParent(const LLSD& info) -{ - if(info.has("well_empty")) // implementation of EXT-3397 - { - const std::string chiclet_name = info["well_name"]; - - // only "im_well" or "notification_well" names are expected. - // They are set in panel_bottomtray.xml in & - llassert("im_well" == chiclet_name || "notification_well" == chiclet_name); - - BOOL should_be_visible = !info["well_empty"]; - showWellButton("im_well" == chiclet_name ? RS_IM_WELL : RS_NOTIFICATION_WELL, should_be_visible); - return 1; - } - - if (info.has("action") && info["action"] == "resize") - { - const std::string& name = info["view_name"]; - - // expected only resize of nearby chatbar - if (mChatBarContainer->getName() != name) return LLPanel::notifyParent(info); - - const S32 new_width = info["new_width"]; - - processChatbarCustomization(new_width); - - return 2; - } - return LLPanel::notifyParent(info); -} - -void LLBottomTray::showBottomTrayContextMenu(S32 x, S32 y, MASK mask) -{ - // We should show BottomTrayContextMenu in last turn - if (mBottomTrayContextMenu && !LLMenuGL::sMenuContainer->getVisibleMenu()) - { - //there are no other context menu (IM chiclet etc ), so we can show BottomTrayContextMenu - - updateContextMenu(x, y, mask); - mBottomTrayContextMenu->buildDrawLabels(); - mBottomTrayContextMenu->updateParent(LLMenuGL::sMenuContainer); - LLMenuGL::showPopup(this, mBottomTrayContextMenu, x, y); - - } -} - -void LLBottomTray::updateContextMenu(S32 x, S32 y, MASK mask) -{ - LLUICtrl* edit_box = mNearbyChatBar->getChild("chat_box"); - - S32 local_x = x - mChatBarContainer->getRect().mLeft - edit_box->getRect().mLeft; - S32 local_y = y - mChatBarContainer->getRect().mBottom - edit_box->getRect().mBottom; - - bool in_edit_box = edit_box->pointInView(local_x, local_y); - - mBottomTrayContextMenu->setItemVisible("Separator", in_edit_box); - mBottomTrayContextMenu->setItemVisible("NearbyChatBar_Cut", in_edit_box); - mBottomTrayContextMenu->setItemVisible("NearbyChatBar_Copy", in_edit_box); - mBottomTrayContextMenu->setItemVisible("NearbyChatBar_Paste", in_edit_box); - mBottomTrayContextMenu->setItemVisible("NearbyChatBar_Delete", in_edit_box); - mBottomTrayContextMenu->setItemVisible("NearbyChatBar_Select_All", in_edit_box); -} - -void LLBottomTray::showSpeakButton(bool visible) -{ - // Show/hide the button - setTrayButtonVisible(RS_BUTTON_SPEAK, visible); - - // and adjust other panels according to the occupied/freed space. - const S32 panel_width = mSpeakPanel->getRect().getWidth(); - if (visible) - { - processWidthDecreased(-panel_width); - } - else - { - processWidthIncreased(panel_width); - } -} - -void LLBottomTray::toggleMovementControls() -{ - if (mMovementButton) - mMovementButton->onCommit(); -} - -void LLBottomTray::toggleCameraControls() -{ - if (mCamButton) - mCamButton->onCommit(); -} - -BOOL LLBottomTray::postBuild() -{ - LLHints::registerHintTarget("bottom_tray", LLView::getHandle()); - LLHints::registerHintTarget("dest_guide_btn", getChild("destination_btn")->getHandle()); - LLHints::registerHintTarget("avatar_picker_btn", getChild("avatar_btn")->getHandle()); - - LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("NearbyChatBar.Action", boost::bind(&LLBottomTray::onContextMenuItemClicked, this, _2)); - LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("NearbyChatBar.EnableMenuItem", boost::bind(&LLBottomTray::onContextMenuItemEnabled, this, _2)); - - mBottomTrayContextMenu = LLUICtrlFactory::getInstance()->createFromFile("menu_bottomtray.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); - gMenuHolder->addChild(mBottomTrayContextMenu); - - //mNearbyChatBar = findChild("chat_bar"); - //LLHints::registerHintTarget("chat_bar", mNearbyChatBar->LLView::getHandle()); - - //mListener.reset(new LLNearbyChatBarListener(*mNearbyChatBar)); - - mChatBarContainer = getChild("chat_bar_layout_panel"); - mNearbyCharResizeHandlePanel = getChild("chat_bar_resize_handle_panel"); - - mToolbarStack = getChild("toolbar_stack"); - mMovementButton = getChild("movement_btn"); - LLHints::registerHintTarget("move_btn", mMovementButton->getHandle()); - mCamButton = getChild("camera_btn"); - setRightMouseDownCallback(boost::bind(&LLBottomTray::showBottomTrayContextMenu,this, _2, _3,_4)); - - mSpeakPanel = getChild("speak_panel"); - mSpeakBtn = findChild("talk"); - if (mSpeakBtn) - { - LLHints::registerHintTarget("speak_btn", mSpeakBtn->getHandle()); - - // Localization tool doesn't understand custom buttons like - mSpeakBtn->setSpeakToolTip( getString("SpeakBtnToolTip") ); - mSpeakBtn->setShowToolTip( getString("VoiceControlBtnToolTip") ); - } - else - { - LLTransientFloaterMgr::getInstance()->addControlView(getChild("speak_btn")); - LLTransientFloaterMgr::getInstance()->addControlView(getChild("flyout_btn")); - } - - - // Both parts of speak button should be initially disabled because - // it takes some time between logging in to world and connecting to voice channel. - getChild("speak_btn")->setEnabled(false); - getChild("speak_flyout_btn")->setEnabled(false); - gMenuBarView->getChild("Nearby Voice")->setEnabled(false); - - // Registering Chat Bar to receive Voice client status change notifications. - LLVoiceClient::getInstance()->addObserver(this); - - //mNearbyChatBar->getChatBox()->setContextMenu(NULL); - - mChicletPanel = getChild("chiclet_list"); - - initResizeStateContainers(); - - setButtonsControlsAndListeners(); - - initButtonsVisibility(); - - // update wells visibility: - showWellButton(RS_IM_WELL, !LLIMWellWindow::getInstance()->isWindowEmpty()); - showWellButton(RS_NOTIFICATION_WELL, !LLNotificationWellWindow::getInstance()->isWindowEmpty()); - - loadButtonsOrder(); - - LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&update_build_button_enable_state)); - - return TRUE; -} - -//Drag-n-drop - -void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y) -{ - if (ctrl == NULL) return; - LLView* parent_view = ctrl->getParent(); - if(parent_view != NULL) - { - // we actually drag'n'drop panel (not button) in code, so have to find a parent - // of button which called this method on mouse down. - LLPanel* parent = dynamic_cast(parent_view); - // It may happen that we clicked not usual button, but button inside widget(speak, gesture) - // so we'll need to get a level higher to reach layout panel as a parent. - if(parent == NULL) parent = dynamic_cast(parent_view->getParent()); - if (parent && parent->getVisible()) - { - mDraggedItem = parent; - mCheckForDrag = true; - mStartX = x; - mStartY = y; - } - } -} - -LLPanel* LLBottomTray::findChildPanelByLocalCoords(S32 x, S32 y) -{ - LLPanel* ctrl = 0; - S32 screenX, screenY; - const child_list_t* list = mToolbarStack->getChildList(); - - localPointToScreen(x, y, &screenX, &screenY); - - // look for a child panel which contains the point (screenX, screenY) in it's rectangle - for (child_list_const_iter_t i = list->begin(); i != list->end(); ++i) - { - LLRect rect; - localRectToScreen((*i)->getRect(), &rect); - - if (rect.pointInRect(screenX, screenY)) - { - ctrl = dynamic_cast(*i); - break; - } - } - - return ctrl; -} - -void LLBottomTray::onDraggableButtonHover(S32 x, S32 y) -{ - // if mouse down on draggable item was done, check whether we should start DnD - if (mCheckForDrag) - { - // Start drag'n'drop if mouse cursor was dragged away frome mouse down location enough - if(sqrt((float)((mStartX-x)*(mStartX-x)+(mStartY-y)*(mStartY-y))) > DRAG_START_DISTANCE) - { - mDragStarted = true; - mCheckForDrag = false; - } - } - if (mDragStarted) - { - // Check whether the cursor is over draggable area, find which panel it is and set is as - // landing tab for drag'n'drop - if(isCursorOverDraggableArea(x, y)) - { - LLPanel* panel = findChildPanelByLocalCoords(x,y); - if (panel && panel != mDraggedItem) mLandingTab = panel; - gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROWDRAG); - } - else - { - gViewerWindow->getWindow()->setCursor(UI_CURSOR_NO); - } - } - else - { - // Reset cursor in case you move your mouse from the drag handle to a button. - getWindow()->setCursor(UI_CURSOR_ARROW); - - } -} - -bool LLBottomTray::isCursorOverDraggableArea(S32 x, S32 y) -{ - // Draggable area lasts from the nearby chat input resize handle - // to the chiclet area (exlusively). - bool result = getRect().pointInRect(x, y); - result = result && mNearbyCharResizeHandlePanel->calcScreenRect().mRight < x; - result = result && mChicletPanel->calcScreenRect().mRight > x; - return result; -} - -void LLBottomTray::updateButtonsOrdersAfterDnD() -{ - // *TODO: change implementation of this method to support simplify it - // (and according to future possible changes in the way button order is saved between sessions). - state_object_map_t::const_iterator it = mStateProcessedObjectMap.begin(); - state_object_map_t::const_iterator it_end = mStateProcessedObjectMap.end(); - EResizeState dragged_state = RS_NORESIZE; - EResizeState landing_state = RS_NORESIZE; - bool landing_state_found = false; - // Find states for dragged item and landing tab - for (; it != it_end; ++it) - { - if (it->second == mDraggedItem) - { - dragged_state = it->first; - } - else if (it->second == mLandingTab) - { - landing_state = it->first; - landing_state_found = true; - } - } - - if (dragged_state == RS_NORESIZE) - { - llwarns << "Cannot determine what button is being dragged" << llendl; - llassert(dragged_state != RS_NORESIZE); - return; - } - - lldebugs << "Will place " << resizeStateToString(dragged_state) - << " before " << resizeStateToString(landing_state) << llendl; - - // Update order of buttons according to drag'n'drop - mButtonsOrder.erase(std::find(mButtonsOrder.begin(), mButtonsOrder.end(), dragged_state)); - if (!landing_state_found && mLandingTab == getChild(PANEL_CHICLET_NAME)) - { - mButtonsOrder.push_back(dragged_state); - } - else - { - if (!landing_state_found) landing_state = RS_BUTTON_SPEAK; // just a random fallback - mButtonsOrder.insert(std::find(mButtonsOrder.begin(), mButtonsOrder.end(), landing_state), dragged_state); - } - - // Synchronize button process order with their order - resize_state_vec_t::const_iterator it1 = mButtonsOrder.begin(); - const resize_state_vec_t::const_iterator it_end1 = mButtonsOrder.end(); - resize_state_vec_t::iterator it2 = mButtonsProcessOrder.begin(); - for (; it1 != it_end1; ++it1) - { - // Skip Speak because it is not in mButtonsProcessOrder(it's the reason why mButtonsOrder was introduced). - // If any other draggable items will be added to bottomtray later, they should also be skipped here. - if (*it1 != RS_BUTTON_SPEAK) - { - *it2 = *it1; - ++it2; - } - } - - saveButtonsOrder(); -} - -void LLBottomTray::saveButtonsOrder() -{ - if (!gSavedSettings.getBOOL("AllowBottomTrayButtonReordering")) return; - - std::string user_dir = gDirUtilp->getLindenUserDir(); - if (user_dir.empty()) return; - - std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME); - LLSD settings_llsd; - int i = 0; - const resize_state_vec_t::const_iterator it_end = mButtonsOrder.end(); - // we use numbers as keys for map which is saved in file and contains resize states as its values - for (resize_state_vec_t::const_iterator it = mButtonsOrder.begin(); it != it_end; ++it, i++) - { - std::string str = llformat("%d", i); - settings_llsd[str] = *it; - } - llofstream file; - file.open(filename); - LLSDSerialize::toPrettyXML(settings_llsd, file); -} - -void LLBottomTray::loadButtonsOrder() -{ - if (!gSavedSettings.getBOOL("AllowBottomTrayButtonReordering")) return; - - // load per-resident sorting information - std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME); - - LLSD settings_llsd; - llifstream file; - file.open(filename); - if (!file.is_open()) return; - - LLSDSerialize::fromXML(settings_llsd, file); - - - mButtonsOrder.clear(); - mButtonsProcessOrder.clear(); - int i = 0; - // getting button order from file - for (LLSD::map_const_iterator iter = settings_llsd.beginMap(); - iter != settings_llsd.endMap(); ++iter, ++i) - { - std::string str = llformat("%d", i); - EResizeState state = (EResizeState)settings_llsd[str].asInteger(); - mButtonsOrder.push_back(state); - // RS_BUTTON_SPEAK is skipped, because it shouldn't be in mButtonsProcessOrder (it does not hide or shrink). - if (state != RS_BUTTON_SPEAK) - { - mButtonsProcessOrder.push_back(state); - } - } - - // There are other panels in layout stack order of which is not saved. Also, panels order of which is saved, - // are already in layout stack but in wrong order. The most convenient way to place them is moving them - // to front one by one (because in this case we don't have to pass the panel before which we want to insert our - // panel to movePanel()). So panels are moved in order from the end of mButtonsOrder vector(reverse iterator is used). - const resize_state_vec_t::const_reverse_iterator it_end = mButtonsOrder.rend(); - // placing panels in layout stack according to button order which we loaded in previous for - for (resize_state_vec_t::const_reverse_iterator it = mButtonsOrder.rbegin(); it != it_end; ++it, ++i) - { - LLPanel* panel_to_move = getButtonPanel(*it); - mToolbarStack->movePanel(panel_to_move, NULL, true); // prepend - } - // Nearbychat is not stored in order settings file, but it must be the first of the panels, so moving it - // (along with its drag handle) manually here. - mToolbarStack->movePanel(getChild("chat_bar_resize_handle_panel"), NULL, true); - mToolbarStack->movePanel(mChatBarContainer, NULL, true); -} - -void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y) -{ - //if mouse up happened over area where drop is possible, change order of buttons - if (mLandingTab != NULL && mDraggedItem != NULL && mDragStarted) - { - if(isCursorOverDraggableArea(x, y)) - { - // change order of panels in layout stack - mToolbarStack->movePanel(mDraggedItem, (LLPanel*)mLandingTab); - // change order of buttons in order vectors - updateButtonsOrdersAfterDnD(); - } - } - gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW); - mDragStarted = false; - mDraggedItem = NULL; - mLandingTab = NULL; - mCheckForDrag = false; -} - -void LLBottomTray::draw() -{ - LLPanel::draw(); - if (mLandingTab) - { - static S32 w = mImageDragIndication->getWidth(); - static S32 h = mImageDragIndication->getHeight(); - LLRect rect = mLandingTab->calcScreenRect(); - mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h); - } - getChild("show_profile_btn")->setToggleState(LLAvatarActions::profileVisible(gAgent.getID())); - - LLPanel* panel = LLFloaterSidePanelContainer::getPanel("people", "panel_people"); - if (panel && panel->isInVisibleChain()) - { - getChild("show_people_button")->setToggleState(true); - } - else - { - getChild("show_people_button")->setToggleState(false); - } - - LLFloater* help_browser = (LLFloaterReg::findInstance("help_browser")); - bool help_floater_visible = (help_browser && help_browser->isInVisibleChain()); - - getChild("show_help_btn")->setToggleState(help_floater_visible); - - bool openmic = LLVoiceClient::getInstance()->getUserPTTState(); - bool voiceenabled = LLVoiceClient::getInstance()->voiceEnabled(); - getChild("speak_btn")->setToggleState(openmic && voiceenabled); - getChild("chat_zone_indicator")->setIsMuted(!voiceenabled); - -} - -bool LLBottomTray::onContextMenuItemEnabled(const LLSD& userdata) -{ - std::string item = userdata.asString(); - /* - LLLineEditor* edit_box = mNearbyChatBar->findChild("chat_box"); - - if (item == "can_cut") - { - return edit_box->canCut(); - } - else if (item == "can_copy") - { - return edit_box->canCopy(); - } - else if (item == "can_paste") - { - return edit_box->canPaste(); - } - else if (item == "can_delete") - { - return edit_box->canDoDelete(); - } - else if (item == "can_select_all") - { - return edit_box->canSelectAll() && (edit_box->getLength()>0); - }*/ - return true; -} - - -void LLBottomTray::onContextMenuItemClicked(const LLSD& userdata) -{/* - std::string item = userdata.asString(); - LLLineEditor* edit_box = mNearbyChatBar->findChild("chat_box"); - - if (item == "cut") - { - edit_box->cut(); - } - else if (item == "copy") - { - edit_box->copy(); - } - else if (item == "paste") - { - edit_box->paste(); - edit_box->setFocus(TRUE); - } - else if (item == "delete") - { - edit_box->doDelete(); - } - else if (item == "select_all") - { - edit_box->selectAll(); - }*/ -} - -void LLBottomTray::log(LLView* panel, const std::string& descr) -{ - if (NULL == panel) return; - LLView* layout = panel->getParent(); - LL_DEBUGS("Bottom Tray Rects") << descr << ": " - << "panel: " << panel->getName() - << ", rect: " << panel->getRect() - - - << " layout: " << layout->getName() - << ", rect: " << layout->getRect() - << LL_ENDL; -} - -void LLBottomTray::reshape(S32 width, S32 height, BOOL called_from_parent) -{ - static S32 debug_calling_number = 0; - lldebugs << "**************************************** " << ++debug_calling_number << llendl; - - S32 current_width = getRect().getWidth(); - S32 delta_width = width - current_width; - lldebugs << "Reshaping: " - << ", width: " << width - << ", cur width: " << current_width - << ", delta_width: " << delta_width - << ", called_from_parent: " << called_from_parent - << llendl; - - if (mNearbyChatBar) log(mNearbyChatBar, "before"); - if (mChicletPanel) log(mChicletPanel, "before"); - - // Difference between bottom tray width required to fit its children and the actual width. (see EXT-991) - // Positive value means that bottom tray is not wide enough. - // Negative value means that there is free space. - static S32 extra_shrink_width = 0; - bool should_be_reshaped = true; - - if (mChicletPanel && mToolbarStack && mNearbyChatBar) - { - // Firstly, update layout stack to ensure we deal with correct panel sizes. - { - BOOL saved_anim = mToolbarStack->getAnimate(); - // Set chiclet panel to be autoresized by default. - mToolbarStack->updatePanelAutoResize(PANEL_CHICLET_NAME, TRUE); - // Disable animation to prevent layout updating in several frames. - mToolbarStack->setAnimate(FALSE); - // Force the updating of layout to reset panels collapse factor. - mToolbarStack->updateLayout(); - // Restore animate state. - mToolbarStack->setAnimate(saved_anim); - } - - // bottom tray is narrowed - if (delta_width < 0) - { - if (extra_shrink_width > 0) // not enough space - { - extra_shrink_width += llabs(delta_width); - should_be_reshaped = false; - } - else - { - extra_shrink_width = processWidthDecreased(delta_width); - - // increase new width to extra_shrink_width value to not reshape less than bottom tray minimum - width += extra_shrink_width; - } - } - // bottom tray is widened - else - { - if (extra_shrink_width > delta_width) - { - // Still not enough space. - // Only subtract the delta from the required delta and don't reshape. - extra_shrink_width -= delta_width; - should_be_reshaped = false; - } - else - { - if (extra_shrink_width > 0) - { - // If we have some extra shrink width let's reduce delta_width & width - delta_width -= extra_shrink_width; - width -= extra_shrink_width; - extra_shrink_width = 0; - } - processWidthIncreased(delta_width); - } - } - } - - if (should_be_reshaped) - { - lldebugs << "Reshape all children with width: " << width << llendl; - LLPanel::reshape(width, height, called_from_parent); - } - - if (mNearbyChatBar) log(mNearbyChatBar, "after"); - if (mChicletPanel) log(mChicletPanel, "after"); - - - // Restore width of the chatbar on first reshape. - // we can not to do this from postBuild because reshape is called from parent view on startup - // creation after it and reset width according to resize logic. - static bool needs_restore_custom_state = true; - if (mChatBarContainer && needs_restore_custom_state) - { - // restore custom width of chatbar panel. - S32 new_width = gSavedSettings.getS32("ChatBarCustomWidth"); - if (new_width > 0) - { - mDesiredNearbyChatWidth = new_width; - processChatbarCustomization(new_width); - lldebugs << "Setting nearby chat bar width to " << new_width << " px" << llendl; - mChatBarContainer->reshape(new_width, mChatBarContainer->getRect().getHeight()); - } - needs_restore_custom_state = false; - } - -} - -S32 LLBottomTray::processWidthDecreased(S32 delta_width) -{ - bool still_should_be_processed = true; - - const S32 chiclet_panel_shrink_headroom = getChicletPanelShrinkHeadroom(); - - // There are four steps of processing width decrease. If in one of them required width was reached, - // further are not needed. - // 1. Decreasing width of chiclet panel. - if (chiclet_panel_shrink_headroom > 0) - { - // we have some space to decrease chiclet panel - S32 shrink_by = llmin(-delta_width, chiclet_panel_shrink_headroom); - - lldebugs << "delta_width: " << delta_width - << ", panel_delta_min: " << chiclet_panel_shrink_headroom - << ", shrink_by: " << shrink_by - << llendl; - - // is chiclet panel wide enough to process resizing? - delta_width += chiclet_panel_shrink_headroom; - - still_should_be_processed = delta_width < 0; - - lldebugs << "Shrinking chiclet panel by " << shrink_by << " px" << llendl; - mChicletPanel->getParent()->reshape(mChicletPanel->getParent()->getRect().getWidth() - shrink_by, mChicletPanel->getParent()->getRect().getHeight()); - log(mChicletPanel, "after processing panel decreasing via chiclet panel"); - - lldebugs << "RS_CHICLET_PANEL" - << ", delta_width: " << delta_width - << llendl; - } - - S32 buttons_freed_width = 0; - // 2. Decreasing width of buttons. - if (still_should_be_processed) - { - processShrinkButtons(delta_width, buttons_freed_width); - still_should_be_processed = delta_width < 0; - } - - // 3. Decreasing width of nearby chat. - const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mChatBarContainer); - const S32 chatbar_panel_width = mChatBarContainer->getRect().getWidth(); - if (still_should_be_processed && chatbar_panel_width > chatbar_panel_min_width) - { - // we have some space to decrease chatbar panel - S32 chatbar_shrink_headroom = chatbar_panel_width - chatbar_panel_min_width; - - S32 shrink_by = llmin(-delta_width, chatbar_shrink_headroom); - - // is chatbar panel wide enough to process resizing? - delta_width += chatbar_shrink_headroom; - - still_should_be_processed = delta_width < 0; - - // chatbar should only be shrunk here, not stretched - if (shrink_by > 0) - { - //lldebugs << "Shrinking nearby chat bar by " << delta_panel << " px " << llendl; - //mChatBarContainer->reshape(mNearbyChatBar->getRect().getWidth() - delta_panel, mChatBarContainer->getRect().getHeight()); - } - - log(mNearbyChatBar, "after processing panel decreasing via nearby chatbar panel"); - - lldebugs << "RS_CHATBAR_INPUT" - << ", shrink_by: " << shrink_by - << ", delta_width: " << delta_width - << llendl; - } - - S32 extra_shrink_width = 0; - // 4. Hiding buttons if needed. - if (still_should_be_processed) - { - processHideButtons(delta_width, buttons_freed_width); - - if (delta_width < 0) - { - extra_shrink_width = -delta_width; - llwarns << "There is no enough width to reshape all children: " - << extra_shrink_width << llendl; - } - - if (buttons_freed_width > 0) - { - S32 nearby_needed_width = mDesiredNearbyChatWidth; - if ( 0) - { - S32 compensative_width = nearby_needed_width > buttons_freed_width ? buttons_freed_width : nearby_needed_width; - log(mNearbyChatBar, "before applying compensative width"); - lldebugs << "Extending nearby chat bar by " << compensative_width << " px" << llendl; - mChatBarContainer->reshape(mChatBarContainer->getRect().getWidth() + compensative_width, mChatBarContainer->getRect().getHeight() ); - log(mNearbyChatBar, "after applying compensative width"); - lldebugs << buttons_freed_width << llendl; - } - } - } - - return extra_shrink_width; -} - -void LLBottomTray::processWidthIncreased(S32 delta_width) -{ - if (delta_width <= 0) return; - - // how much room we have to show hidden buttons - S32 available_width = delta_width + getChicletPanelShrinkHeadroom(); - - lldebugs << "Distributing (" << getChicletPanelShrinkHeadroom() - << " + " << delta_width << ") = " << available_width << " px" << llendl; - - // 1. Try showing buttons that have been auto-hidden. - S32 processed_width = processShowButtons(available_width); - lldebugs << "processed_width = " << processed_width << ", delta_width = " << delta_width << llendl; - - lldebugs << "Available_width after showing buttons: " << available_width << llendl; - - // If the newly shown buttons have consumed more than delta_width pixels, - // shrink the chiclet panel. - if (processed_width > delta_width) - { - // 1. use delta width of resizing - S32 shrink_by = processed_width - delta_width; - - // 2. use width available via decreasing of chiclet panel - if (shrink_by > 0) - { - lldebugs << "Shrinking chiclet panel by " << shrink_by << " px" << llendl; - mChicletPanel->getParent()->reshape(mChicletPanel->getParent()->getRect().getWidth() - shrink_by, mChicletPanel->getParent()->getRect().getHeight()); - log(mChicletPanel, "after applying compensative width for chiclets: "); - lldebugs << shrink_by << llendl; - } - - // shown buttons take some space, rest should be processed by nearby chatbar & chiclet panels - delta_width -= processed_width; - } - - // 2. Expand the nearby chat bar if needed. - S32 chatbar_panel_width = mChatBarContainer->getRect().getWidth(); - lldebugs << "delta_width = " << delta_width - << ", chatbar_panel_width = " << chatbar_panel_width - << ", mDesiredNearbyChatWidth = " << mDesiredNearbyChatWidth << llendl; - if (delta_width > 0 && chatbar_panel_width < mDesiredNearbyChatWidth) - { - S32 extend_by_max = mDesiredNearbyChatWidth - chatbar_panel_width; - S32 extend_by = llmin(delta_width, extend_by_max); - lldebugs << "Unprocessed delta width: " << delta_width - << " px, chatbar can be extended by " << extend_by_max - << " px, extending it by " << extend_by << " px" - << llendl; - - delta_width -= extend_by_max; - lldebugs << "Extending nearby chat bar by " << extend_by << " px " << llendl; - mChatBarContainer->reshape(chatbar_panel_width + extend_by, mChatBarContainer->getRect().getHeight()); - log(mNearbyChatBar, "applied unprocessed delta width"); - } - - // 3. Expand buttons that have been auto-shrunk, - // if we haven't yet consumed all the available headroom. - if (delta_width > 0) - { - S32 available_width = delta_width + getChicletPanelShrinkHeadroom(); - processExtendButtons(available_width); - } -} - -S32 LLBottomTray::processShowButtons(S32& available_width) -{ - lldebugs << "Distributing " << available_width << " px" << llendl; - S32 original_available_width = available_width; - - // process buttons from left to right - resize_state_vec_t::const_iterator it = mButtonsProcessOrder.begin(); - const resize_state_vec_t::const_iterator it_end = mButtonsProcessOrder.end(); - - for (; it != it_end; ++it) - { - // is there available space? - if (available_width <= 0) break; - - // try to show next button - processShowButton(*it, available_width); - } - - return original_available_width - available_width; -} - -bool LLBottomTray::processShowButton(EResizeState shown_object_type, S32& available_width) -{ - // Check if the button was previously auto-hidden (due to lack of space). - if (!isAutoHidden(shown_object_type)) - { - return false; - } - - // Ok. Try showing the button. - return showButton(shown_object_type, available_width); -} - -void LLBottomTray::processHideButtons(S32& required_width, S32& buttons_freed_width) -{ - // process buttons from right to left - resize_state_vec_t::const_reverse_iterator it = mButtonsProcessOrder.rbegin(); - const resize_state_vec_t::const_reverse_iterator it_end = mButtonsProcessOrder.rend(); - - for (; it != it_end; ++it) - { - // is it still necessary to hide a button? - if (required_width >= 0) break; - - // try to hide next button - processHideButton(*it, required_width, buttons_freed_width); - } -} - -void LLBottomTray::processHideButton(EResizeState processed_object_type, S32& required_width, S32& buttons_freed_width) -{ - lldebugs << "Trying to hide object type: " << processed_object_type << llendl; - LLPanel* panel = getButtonPanel(processed_object_type); - if (NULL == panel) - { - return; - } - - if (panel->getVisible()) - { - required_width += panel->getRect().getWidth(); - - if (required_width > 0) - { - buttons_freed_width += required_width; - } - - setTrayButtonVisible(processed_object_type, false); - - setAutoHidden(processed_object_type, true); - - lldebugs << "processing object type: " << processed_object_type - << ", buttons_freed_width: " << buttons_freed_width - << llendl; - } -} - -void LLBottomTray::processShrinkButtons(S32& required_width, S32& buttons_freed_width) -{ - // process buttons from right to left - resize_state_vec_t::const_reverse_iterator it = mButtonsProcessOrder.rbegin(); - const resize_state_vec_t::const_reverse_iterator it_end = mButtonsProcessOrder.rend(); - - // iterate through buttons in the mButtonsProcessOrder first - for (; it != it_end; ++it) - { - // is it still necessary to hide a button? - if (required_width >= 0) break; - - // try to shrink next button - processShrinkButton(*it, required_width); - } - - // then shrink Speak button - if (required_width < 0) - { - S32 panel_min_width = 0; - std::string panel_name = mSpeakPanel->getName(); - bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width); - if (!success) - { - lldebugs << "Panel was not found to get its min width: " << panel_name << llendl; - } - else - { - S32 panel_width = mSpeakPanel->getRect().getWidth(); - S32 possible_shrink_width = panel_width - panel_min_width; - - if (possible_shrink_width > 0) - { - if (mSpeakBtn) - { - mSpeakBtn->setLabelVisible(false); - } - - mSpeakPanel->reshape(panel_width - possible_shrink_width, mSpeakPanel->getRect().getHeight()); - - required_width += possible_shrink_width; - - if (required_width > 0) - { - buttons_freed_width += required_width; - } - - lldebugs << "Shrunk Speak button panel: " << panel_name - << ", shrunk width: " << possible_shrink_width - << ", rest width to process: " << required_width - << llendl; - } - } - } -} - -void LLBottomTray::processShrinkButton(EResizeState processed_object_type, S32& required_width) -{ - LLPanel* panel = getButtonPanel(processed_object_type); - if (NULL == panel) - { - return; - } - - if (panel->getVisible()) - { - S32 panel_width = panel->getRect().getWidth(); - S32 panel_min_width = 0; - std::string panel_name = panel->getName(); - bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width); - S32 possible_shrink_width = panel_width - panel_min_width; - - if (!success) - { - lldebugs << "Panel was not found to get its min width: " << panel_name << llendl; - } - // we have some space to free by shrinking the button - else if (possible_shrink_width > 0) - { - // let calculate real width to shrink - - // 1. apply all possible width - required_width += possible_shrink_width; - - // 2. it it is too much... - if (required_width > 0) - { - // reduce applied shrunk width to the excessive value. - possible_shrink_width -= required_width; - required_width = 0; - } - panel->reshape(panel_width - possible_shrink_width, panel->getRect().getHeight()); - - lldebugs << "Shrunk panel: " << panel_name - << ", shrunk width: " << possible_shrink_width - << ", rest width to process: " << required_width - << llendl; - } - } -} - - -void LLBottomTray::processExtendButtons(S32& available_width) -{ - // do not allow extending any buttons if we have some buttons hidden via resize - if (isAutoHidden(RS_BUTTONS_CAN_BE_HIDDEN)) return; - - lldebugs << "Distributing " << available_width << " px" << llendl; - - // First try extending the Speak button. - if (available_width > 0) - { - if (!processExtendSpeakButton(available_width)) - { - // The Speak button needs extension but lacks some space. - // Don't extend other buttons in this case: the Speak button - // should consume the available headroom first. - return; - } - } - - // Then process the other buttons from left to right. - if (available_width > 0) - { - resize_state_vec_t::const_iterator it = mButtonsProcessOrder.begin(); - const resize_state_vec_t::const_iterator it_end = mButtonsProcessOrder.end(); - - // iterate through buttons in the mButtonsProcessOrder first - for (; it != it_end; ++it) - { - // is there available space? - if (available_width <= 0) break; - - // try to extend next button - processExtendButton(*it, available_width); - } - } -} - -bool LLBottomTray::processExtendSpeakButton(S32& available_width) -{ - if (available_width <= 0) - { - llassert(available_width > 0); - return true; - } - - const S32 panel_max_width = mObjectDefaultWidthMap[RS_BUTTON_SPEAK]; - const S32 panel_width = mSpeakPanel->getRect().getWidth(); - const S32 required_headroom = panel_max_width - panel_width; - - if (panel_width < panel_max_width) // if the button isn't extended already - { - if (available_width < required_headroom) // not enough space - { - lldebugs << "Need (" << required_headroom << " - " << available_width << ") = " - << (required_headroom - available_width) << " more px" - << " to extend the Speak button"<< llendl; - - return false; // Don't extend other buttons until we extend Speak. - } - - // Reshape the Speak button to its maximum width. - if (mSpeakBtn) mSpeakBtn->setLabelVisible(true); - mSpeakPanel->reshape(panel_max_width, mSpeakPanel->getRect().getHeight()); - - available_width -= required_headroom; - llassert(available_width >= 0); - - lldebugs << "Extending Speak button panel: " << mSpeakPanel->getName() - << ", extended width: " << required_headroom - << ", rest width to process: " << available_width - << llendl; - } - - return true; -} - -void LLBottomTray::processExtendButton(EResizeState processed_object_type, S32& available_width) -{ - llassert(available_width >= 0); - - LLPanel* panel = getButtonPanel(processed_object_type); - if (NULL == panel) - { - return; - } - - if (!panel->getVisible()) return; - - // Widen the button up to its maximum width, but by not more than px. - S32 panel_max_width = mObjectDefaultWidthMap[processed_object_type]; - S32 panel_width = panel->getRect().getWidth(); - S32 required_headroom = panel_max_width - panel_width; - - S32 extend_by = llmin(available_width, required_headroom); - if (extend_by > 0) - { - panel->reshape(panel_width + extend_by, panel->getRect().getHeight()); - - // Decrease amount of headroom available for other panels. - available_width -= extend_by; - - lldebugs << "Extending " << panel->getName() - << " by " << extend_by - << " px; remaining available width: " << available_width - << llendl; - } -} - -bool LLBottomTray::canButtonBeShown(EResizeState processed_object_type) const -{ - // Check that all buttons (that can be hidden on resize) - // to the left of the given one are already shown. - - // process buttons in direct order (from left to right) - resize_state_vec_t::const_iterator it = mButtonsProcessOrder.begin(); - const resize_state_vec_t::const_iterator it_end = mButtonsProcessOrder.end(); - - MASK buttons_before_mask = RS_NORESIZE; - for (; it != it_end; ++it) - { - const EResizeState button_type = *it; - if (button_type == processed_object_type) break; - - buttons_before_mask |= button_type; - } - - return !isAutoHidden(buttons_before_mask); -} - -void LLBottomTray::initResizeStateContainers() -{ - // init map with objects should be processed for each type - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SPEAK, getChild("speak_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_GESTURES, getChild("gesture_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_MOVEMENT, getChild("movement_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_CAMERA, getChild("cam_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_DESTINATIONS, getChild("destinations_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_AVATARS, getChild("avatar_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SNAPSHOT, getChild("snapshot_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_BUILD, getChild("build_btn_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SEARCH, getChild("search_btn_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_WORLD_MAP, getChild("world_map_btn_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_MINI_MAP, getChild("mini_map_btn_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SPLITTER_1, getChild("splitter_panel_1"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_PEOPLE, getChild("people_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_PROFILE, getChild("profile_panel"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SPLITTER_2, getChild("splitter_panel_2"))); - mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_HOWTO, getChild("howto_panel"))); - - // init an order of processed buttons - mButtonsProcessOrder.push_back(RS_BUTTON_DESTINATIONS); - mButtonsProcessOrder.push_back(RS_BUTTON_AVATARS); - mButtonsProcessOrder.push_back(RS_BUTTON_SNAPSHOT); - mButtonsProcessOrder.push_back(RS_BUTTON_BUILD); - mButtonsProcessOrder.push_back(RS_BUTTON_SEARCH); - mButtonsProcessOrder.push_back(RS_BUTTON_WORLD_MAP); - mButtonsProcessOrder.push_back(RS_BUTTON_MINI_MAP); - mButtonsProcessOrder.push_back(RS_BUTTON_SPLITTER_1); - mButtonsProcessOrder.push_back(RS_BUTTON_PEOPLE); - mButtonsProcessOrder.push_back(RS_BUTTON_PROFILE); - mButtonsProcessOrder.push_back(RS_BUTTON_SPLITTER_2); - mButtonsProcessOrder.push_back(RS_BUTTON_HOWTO); - mButtonsProcessOrder.push_back(RS_BUTTON_MOVEMENT); - mButtonsProcessOrder.push_back(RS_BUTTON_CAMERA); - mButtonsProcessOrder.push_back(RS_BUTTON_GESTURES); - - mButtonsOrder.push_back(RS_BUTTON_SPEAK); - mButtonsOrder.insert(mButtonsOrder.end(), mButtonsProcessOrder.begin(), mButtonsProcessOrder.end()); - - // init default widths - - // process buttons that can be hidden on resize... - resize_state_vec_t::const_iterator it = mButtonsProcessOrder.begin(); - const resize_state_vec_t::const_iterator it_end = mButtonsProcessOrder.end(); - - for (; it != it_end; ++it) - { - const EResizeState button_type = *it; - // is there an appropriate object? - LLPanel* button_panel = getButtonPanel(button_type); - if (!button_panel) continue; - - // set default width for it. - mObjectDefaultWidthMap[button_type] = button_panel->getRect().getWidth(); - } - - // ... and add Speak button because it also can be shrunk. - mObjectDefaultWidthMap[RS_BUTTON_SPEAK] = mSpeakPanel->getRect().getWidth(); -} - -// this method must be called before restoring of the chat entry field on startup -// because it resets chatbar's width according to resize logic. -void LLBottomTray::initButtonsVisibility() -{ - setVisibleAndFitWidths(RS_BUTTON_SPEAK, gSavedSettings.getBOOL("EnableVoiceChat") || !mSpeakBtn ); - setVisibleAndFitWidths(RS_BUTTON_GESTURES, gSavedSettings.getBOOL("ShowGestureButton")); - setVisibleAndFitWidths(RS_BUTTON_MOVEMENT, gSavedSettings.getBOOL("ShowMoveButton")); - setVisibleAndFitWidths(RS_BUTTON_CAMERA, gSavedSettings.getBOOL("ShowCameraButton")); - setVisibleAndFitWidths(RS_BUTTON_SNAPSHOT, gSavedSettings.getBOOL("ShowSnapshotButton")); - setVisibleAndFitWidths(RS_BUTTON_BUILD, gSavedSettings.getBOOL("ShowBuildButton")); - setVisibleAndFitWidths(RS_BUTTON_SEARCH, gSavedSettings.getBOOL("ShowSearchButton")); - setVisibleAndFitWidths(RS_BUTTON_WORLD_MAP, gSavedSettings.getBOOL("ShowWorldMapButton")); - setVisibleAndFitWidths(RS_BUTTON_MINI_MAP, gSavedSettings.getBOOL("ShowMiniMapButton")); - lldebugs << "mResizeState = " << resizeStateMaskToString(mResizeState) << llendl; -} - -void LLBottomTray::setButtonsControlsAndListeners() -{ - // always show the speak panel if using the basic skin - if (mSpeakBtn) - { - gSavedSettings.getControl("EnableVoiceChat")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_SPEAK, _2)); - } - - gSavedSettings.getControl("ShowGestureButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_GESTURES, _2)); - gSavedSettings.getControl("ShowMoveButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_MOVEMENT, _2)); - gSavedSettings.getControl("ShowCameraButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_CAMERA, _2)); - gSavedSettings.getControl("ShowSnapshotButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_SNAPSHOT, _2)); - gSavedSettings.getControl("ShowBuildButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_BUILD, _2)); - gSavedSettings.getControl("ShowSearchButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_SEARCH, _2)); - gSavedSettings.getControl("ShowWorldMapButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_WORLD_MAP, _2)); - gSavedSettings.getControl("ShowMiniMapButton")->getSignal()->connect(boost::bind(&LLBottomTray::toggleShowButton, RS_BUTTON_MINI_MAP, _2)); - - - LLButton* build_btn = getChild("build_btn"); - // set control name for Build button. It is not enough to link it with Button.SetFloaterToggle in xml - std::string vis_control_name = LLFloaterReg::declareVisibilityControl("build"); - // Set the button control value (toggle state) to the floater visibility control (Sets the value as well) - build_btn->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name)); -} - -bool LLBottomTray::toggleShowButton(LLBottomTray::EResizeState button_type, const LLSD& new_visibility) -{ - if (LLBottomTray::instanceExists()) - { - LLBottomTray::getInstance()->setTrayButtonVisibleIfPossible(button_type, new_visibility.asBoolean()); - } - return true; -} - -bool LLBottomTray::showButton(EResizeState button_type, S32& available_width) -{ - LLPanel* panel = getButtonPanel(button_type); - if (NULL == panel) - { - return false; - } - - if (panel->getVisible()) - { - return false; - } - - // Check if none of the buttons to the left of the given one was auto-hidden. - // (we auto-show the buttons left to right). - if (!canButtonBeShown(button_type)) - { - return false; - } - - // Make sure we have enough room to show this button. - const S32 required_width = panel->getRect().getWidth(); - if (available_width < required_width) - { - lldebugs << "Need " << (required_width - available_width) << " more px to show " << resizeStateToString(button_type) << llendl; - return false; - } - - // All good. Show the button. - setTrayButtonVisible(button_type, true); - - // Let the caller know that there is now less available space. - available_width -= required_width; - - lldebugs << "Showing button " << resizeStateToString(button_type) - << ", remaining available width: " << available_width - << llendl; - setAutoHidden(button_type, false); - - return true; -} - -void LLBottomTray::setTrayButtonVisible(EResizeState shown_object_type, bool visible) -{ - LLPanel* panel = getButtonPanel(shown_object_type); - if (NULL == panel) - { - return; - } - - panel->setVisible(visible); -} - -void LLBottomTray::setTrayButtonVisibleIfPossible(EResizeState shown_object_type, bool visible, bool raise_notification) -{ - if (!setVisibleAndFitWidths(shown_object_type, visible) && visible && raise_notification) - { - LLNotificationsUtil::add("BottomTrayButtonCanNotBeShown", - LLSD(), - LLSD(), - LLNotificationFunctorRegistry::instance().DONOTHING); - } -} - -bool LLBottomTray::setVisibleAndFitWidths(EResizeState object_type, bool visible) -{ - // The Speak button is treated specially: if voice is enabled, - // the button should be displayed no matter how much space we've got. - if (object_type == RS_BUTTON_SPEAK) - { - showSpeakButton(visible); - return true; - } - - LLPanel* cur_panel = getButtonPanel(object_type); - if (NULL == cur_panel) - { - return false; - } - - bool is_set = true; - - if (visible) - { - // Assume that only chiclet panel can be auto-resized - const S32 available_width = getChicletPanelShrinkHeadroom(); - - S32 preferred_width = mObjectDefaultWidthMap[object_type]; - S32 current_width = cur_panel->getRect().getWidth(); - S32 result_width = 0; - bool decrease_width = false; - - if (preferred_width > 0 && available_width >= preferred_width) - { - result_width = preferred_width; - } - else if (available_width >= current_width) - { - result_width = current_width; - } - else - { - // Calculate the possible shrunk width as difference between current and minimal widths - const S32 chatbar_shrunk_width = - mChatBarContainer->getRect().getWidth() - get_panel_min_width(mToolbarStack, mChatBarContainer); - - S32 sum_of_min_widths = get_panel_min_width(mToolbarStack, mSpeakPanel); - S32 sum_of_curr_widths = get_curr_width(mSpeakPanel); - - resize_state_vec_t::const_iterator it = mButtonsProcessOrder.begin(); - const resize_state_vec_t::const_iterator it_end = mButtonsProcessOrder.end(); - - for (; it != it_end; ++it) - { - LLPanel* cur_panel = getButtonPanel(*it); - sum_of_min_widths += get_panel_min_width(mToolbarStack, cur_panel); - sum_of_curr_widths += get_curr_width(cur_panel); - } - - const S32 possible_shrunk_width = - chatbar_shrunk_width + (sum_of_curr_widths - sum_of_min_widths); - - // Minimal width of current panel - S32 minimal_width = 0; - mToolbarStack->getPanelMinSize(cur_panel->getName(), &minimal_width); - - if ( (available_width + possible_shrunk_width) >= minimal_width) - { - // There is enough space for minimal width, but set the result_width - // to preferred_width so buttons widths decreasing will be done in predefined order - result_width = (preferred_width > 0) ? preferred_width : current_width; - decrease_width = true; - } - else - { - lldebugs << "Need " << (minimal_width - available_width - possible_shrunk_width) - << " more px to show " << resizeStateToString(object_type) << llendl; - - // Make the button uppear when we have more available space. - setAutoHidden(object_type, true); - return false; - } - } - - if (result_width != current_width) - { - cur_panel->reshape(result_width, cur_panel->getRect().getHeight()); - current_width = result_width; - } - - is_set = showButton(object_type, current_width); - - // Shrink buttons if needed - if (is_set && decrease_width) - { - processWidthDecreased( -result_width); - } - } - else - { - const S32 delta_width = get_curr_width(cur_panel); - - setTrayButtonVisible(object_type, false); - - // Mark button NOT to show while future bottom tray extending - lldebugs << "Removing " << resizeStateToString(object_type) << " from mResizeState" << llendl; - setAutoHidden(object_type, false); - - // Extend other buttons if need - if (delta_width) - { - processWidthIncreased(delta_width); - } - } - return is_set; -} - -LLPanel* LLBottomTray::getButtonPanel(EResizeState button_type) -{ - // Don't use the operator[] because it inserts a NULL value if the key is not found. - if (mStateProcessedObjectMap.count(button_type) == 0) - { - llwarns << "Cannot find a panel for " << resizeStateToString(button_type) << llendl; - llassert(mStateProcessedObjectMap.count(button_type) == 1); - return NULL; - } - - return mStateProcessedObjectMap[button_type]; -} - -void LLBottomTray::showWellButton(EResizeState object_type, bool visible) -{ - llassert( ((RS_NOTIFICATION_WELL | RS_IM_WELL) & object_type) == object_type ); - - const std::string panel_name = RS_IM_WELL == object_type ? "im_well_panel" : "notification_well_panel"; - - LLView * panel = getChild(panel_name); - - // if necessary visibility is set nothing to do here - if (panel->getVisible() == (BOOL)visible) return; - - S32 panel_width = panel->getRect().getWidth(); - panel->setVisible(visible); - - if (visible) - { - // method assumes that input param is a negative value - processWidthDecreased(-panel_width); - } - else - { - processWidthIncreased(panel_width); - } -} - -void LLBottomTray::processChatbarCustomization(S32 new_width) -{ - if (NULL == mNearbyChatBar) return; - - const S32 delta_width = mChatBarContainer->getRect().getWidth() - new_width; - - if (delta_width == 0) return; - - { - static unsigned dbg_cnt = 0; - lldebugs << llformat("*** (%03d) ************************************* %d", delta_width, ++dbg_cnt) << llendl; - } - - mDesiredNearbyChatWidth = new_width; - - const S32 available_chiclet_shrink_width = getChicletPanelShrinkHeadroom(); - llassert(available_chiclet_shrink_width >= 0); - - if (delta_width > 0) // panel gets narrowly - { - S32 total_possible_width = delta_width + available_chiclet_shrink_width; - processShowButtons(total_possible_width); - processExtendButtons(total_possible_width); - } - // here (delta_width < 0) // panel gets wider - else //if (-delta_width > available_chiclet_shrink_width) - { - S32 required_width = delta_width + available_chiclet_shrink_width; - S32 buttons_freed_width = 0; - processShrinkButtons(required_width, buttons_freed_width); - processHideButtons(required_width, buttons_freed_width); - } -} - -S32 LLBottomTray::getChicletPanelShrinkHeadroom() const -{ - static const S32 min_width = mChicletPanel->getMinWidth(); - const S32 cur_width = mChicletPanel->getParent()->getRect().getWidth(); - - S32 shrink_headroom = cur_width - min_width; - llassert(shrink_headroom >= 0); // the panel cannot get narrower than the minimum - return shrink_headroom; -} - -// static -std::string LLBottomTray::resizeStateToString(EResizeState state) -{ - const char *rs_string = "UNKNOWN_BUTTON"; - - switch (state) - { - case RS_NORESIZE: rs_string = "RS_NORESIZE"; break; - case RS_CHICLET_PANEL: rs_string = "RS_CHICLET_PANEL"; break; - case RS_CHATBAR_INPUT: rs_string = "RS_CHATBAR_INPUT"; break; - case RS_BUTTON_SNAPSHOT: rs_string = "RS_BUTTON_SNAPSHOT"; break; - case RS_BUTTON_CAMERA: rs_string = "RS_BUTTON_CAMERA"; break; - case RS_BUTTON_MOVEMENT: rs_string = "RS_BUTTON_MOVEMENT"; break; - case RS_BUTTON_GESTURES: rs_string = "RS_BUTTON_GESTURES"; break; - case RS_BUTTON_SPEAK: rs_string = "RS_BUTTON_SPEAK"; break; - case RS_IM_WELL: rs_string = "RS_IM_WELL"; break; - case RS_NOTIFICATION_WELL: rs_string = "RS_NOTIFICATION_WELL"; break; - case RS_BUTTON_BUILD: rs_string = "RS_BUTTON_BUILD"; break; - case RS_BUTTON_SEARCH: rs_string = "RS_BUTTON_SEARCH"; break; - case RS_BUTTON_WORLD_MAP: rs_string = "RS_BUTTON_WORLD_MAP"; break; - case RS_BUTTON_MINI_MAP: rs_string = "RS_BUTTON_MINI_MAP"; break; - case RS_BUTTON_DESTINATIONS: rs_string = "RS_BUTTON_DESTINATIONS"; break; - case RS_BUTTON_AVATARS: rs_string = "RS_BUTTON_AVATARS"; break; - case RS_BUTTON_PEOPLE: rs_string = "RS_BUTTON_PEOPLE"; break; - case RS_BUTTON_PROFILE: rs_string = "RS_BUTTON_PROFILE"; break; - case RS_BUTTON_HOWTO: rs_string = "RS_BUTTON_HOWTO"; break; - case RS_BUTTON_SPLITTER_1: rs_string = "RS_BUTTON_SPLITTER_1"; break; - case RS_BUTTON_SPLITTER_2: rs_string = "RS_BUTTON_SPLITTER_2"; break; - case RS_BUTTONS_CAN_BE_HIDDEN: rs_string = "RS_BUTTONS_CAN_BE_HIDDEN"; break; - // No default to track additions. - } - - return rs_string; -} - -// static -std::string LLBottomTray::resizeStateMaskToString(MASK mask) -{ - std::string res; - - bool add_delimiter = false; - for (U32 i = 0; i < 16; i++) - { - EResizeState state = (EResizeState) (1 << i); - if (mask & state) - { - if (!add_delimiter) - { - add_delimiter = true; - } - else - { - res += ", "; - } - - res += resizeStateToString(state); - } - } - - if (res.empty()) - { - res = resizeStateToString(RS_NORESIZE); - } - - res += llformat(" (0x%X)", mask); - return res; -} - -bool LLBottomTray::isAutoHidden(MASK button_types) const -{ - return (mResizeState & button_types) != 0; -} - -void LLBottomTray::setAutoHidden(MASK button_types, bool hide) -{ - if (hide) - { - mResizeState |= button_types; - } - else - { - mResizeState &= ~button_types; - } -} - -//EOF diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h deleted file mode 100644 index e26b0792e9..0000000000 --- a/indra/newview/llbottomtray.h +++ /dev/null @@ -1,564 +0,0 @@ -/** -* @file llbottomtray.h -* @brief LLBottomTray class header file -* -* $LicenseInfo:firstyear=2009&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, Linden Research, Inc. -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA -* $/LicenseInfo$ -*/ - -#ifndef LL_LLBOTTOMPANEL_H -#define LL_LLBOTTOMPANEL_H - -#include "llpanel.h" -#include "llimview.h" -#include "llbutton.h" - -class LLChicletPanel; -class LLLayoutStack; -class LLSpeakButton; -class LLNearbyChatBar; -class LLIMChiclet; -class LLBottomTrayLite; -class LLLayoutPanel; -class LLMenuGL; -class LLNearbyChatBarListener; - -// Build time optimization, generate once in .cpp file -#ifndef LLBOTTOMTRAY_CPP -extern template class LLBottomTray* LLSingleton::getInstance(); -#endif - -/** - * Class for buttons that should have drag'n'drop ability in bottomtray. - * These buttons pass mouse events handling to bottomtray. - */ -class LLBottomtrayButton : public LLButton -{ -public: - struct Params : public LLInitParam::Block - { - Optional can_drag; - Params() - : can_drag("can_drag", true){} - }; - /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); - /*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask); - /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); - -protected: - LLBottomtrayButton(const Params& p) - : LLButton(p), - mCanDrag(p.can_drag) - { - - } - friend class LLUICtrlFactory; - - bool mCanDrag; -}; - -class LLBottomTray - : public LLSingleton - , public LLPanel - , public LLIMSessionObserver - , public LLVoiceClientStatusObserver -{ - LOG_CLASS(LLBottomTray); - friend class LLSingleton; - friend class LLBottomTrayLite; -public: - ~LLBottomTray(); - - BOOL postBuild(); - - LLChicletPanel* getChicletPanel() {return mChicletPanel;} - LLNearbyChatBar* getNearbyChatBar(); - - void onCommitGesture(LLUICtrl* ctrl); - - // LLIMSessionObserver observe triggers - virtual void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id); - virtual void sessionRemoved(const LLUUID& session_id); - void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id); - - S32 getTotalUnreadIMCount(); - - virtual void reshape(S32 width, S32 height, BOOL called_from_parent); - - virtual void setVisible(BOOL visible); - - /*virtual*/ S32 notifyParent(const LLSD& info); - - // Implements LLVoiceClientStatusObserver::onChange() to enable the speak - // button when voice is available - /*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal); - - void showBottomTrayContextMenu(S32 x, S32 y, MASK mask); - - void showSpeakButton(bool visible); - - void toggleMovementControls(); - void toggleCameraControls(); - - void onMouselookModeIn(); - void onMouselookModeOut(); - - /** - * Creates IM Chiclet based on session type (IM chat or Group chat) - */ - LLIMChiclet* createIMChiclet(const LLUUID& session_id); - - // Below are methods that were introduced or overriden in bottomtray to handle drag'n'drop - - virtual void draw(); - - /** - * These three methods handle drag'n'drop, they may be called directly from child buttons. - * handleHover and other virtual handle* couldn't be used here, because we should call LLPanel::handle*, - * but x and y here are often outside of bottomtray. - */ - void onDraggableButtonHover(S32 x, S32 y); - void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y); - void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y); - - -private: - typedef enum e_resize_state - { - RS_NORESIZE = 0x0000, - RS_CHICLET_PANEL = 0x0001, - RS_CHATBAR_INPUT = 0x0002, - RS_BUTTON_SNAPSHOT = 0x0004, - RS_BUTTON_CAMERA = 0x0008, - RS_BUTTON_MOVEMENT = 0x0010, - RS_BUTTON_GESTURES = 0x0020, - RS_BUTTON_SPEAK = 0x0040, - RS_IM_WELL = 0x0080, - RS_NOTIFICATION_WELL = 0x0100, - RS_BUTTON_BUILD = 0x0200, - RS_BUTTON_SEARCH = 0x0400, - RS_BUTTON_WORLD_MAP = 0x0800, - RS_BUTTON_MINI_MAP = 0x1000, - RS_BUTTON_DESTINATIONS = 0x2000, - RS_BUTTON_AVATARS = 0x4000, - RS_BUTTON_PEOPLE = 0x8000, - RS_BUTTON_PROFILE = 0x10000, - RS_BUTTON_HOWTO = 0x20000, - RS_BUTTON_SPLITTER_1 = 0x40000, - RS_BUTTON_SPLITTER_2 = 0x80000, - - /* - Once new button that can be hidden on resize is added don't forget to update related places: - - RS_BUTTONS_CAN_BE_HIDDEN enum value below. - - initResizeStateContainers(): mStateProcessedObjectMap and mButtonsProcessOrder - */ - - /** - * Specifies buttons which can be hidden when bottom tray is shrunk. - * They are: Gestures, Movement (Move), Camera (View), Snapshot - * new: Build, Search, Map, World Map, Mini-Map, destinations, avatars - */ - RS_BUTTONS_CAN_BE_HIDDEN = RS_BUTTON_SNAPSHOT | RS_BUTTON_CAMERA | RS_BUTTON_MOVEMENT | RS_BUTTON_GESTURES - | RS_BUTTON_BUILD | RS_BUTTON_SEARCH | RS_BUTTON_WORLD_MAP | RS_BUTTON_MINI_MAP - | RS_BUTTON_DESTINATIONS | RS_BUTTON_AVATARS - }EResizeState; - - // Below are three methods that were introduced to handle drag'n'drop - - /** - * finds a panel under the specified LOCAL point - */ - LLPanel* findChildPanelByLocalCoords(S32 x, S32 y); - - /** - * checks whether the cursor is over an area where the dragged button may be dropped - */ - bool isCursorOverDraggableArea(S32 x, S32 y); - - /** - * Updates process(shrink/show/hide) order of buttons and order in which they'll be stored for further save/load. - * It is called when dragged button is dropped - */ - void updateButtonsOrdersAfterDnD(); - - // saves order of buttons to file on disk - void saveButtonsOrder(); - // reads order of buttons from file on disk - void loadButtonsOrder(); - - /** - * Updates child controls size and visibility when it is necessary to reduce total width. - * - * Process order: - * - reduce chiclet panel to its minimal width; - * - reduce chatbar to its minimal width; - * - reduce visible buttons from right to left to their minimal width; - * - hide visible buttons from right to left; - * When button is hidden chatbar extended to fill released space if it is necessary. - * - * @param[in] delta_width - value by which bottom tray should be shrunk. It is a negative value. - * @return positive value which bottom tray can not process when it reaches its minimal width. - * Zero if there was enough space to process delta_width. - */ - S32 processWidthDecreased(S32 delta_width); - - /** - * Updates child controls size and visibility when it is necessary to extend total width. - * - * Process order: - * - show invisible buttons should be shown from left to right if possible; - * - extend visible buttons from left to right to their default width; - * - extend chatbar to its maximal width; - * - extend chiclet panel to all available space; - * When chatbar & chiclet panels are wider then their minimal width they can be reduced to allow - * a button gets visible in case if passed delta_width is not enough (chatbar first). - * - * @param[in] delta_width - value by which bottom tray should be extended. It is a positive value. - */ - void processWidthIncreased(S32 delta_width); - - /** helper function to log debug messages */ - void log(LLView* panel, const std::string& descr); - - /** - * Tries to show hidden by resize buttons using available width. - * - * Gets buttons visible if there is enough space. Reduces available_width in this case. - * - * @params[in, out] available_width - reference to available width to be used to show buttons. - * @see processShowButton() - * @return consumed pixels (difference in available width). - */ - S32 processShowButtons(S32& available_width); - - /** - * Tries to show panel with specified button using available width. - * - * Shows button specified by type if there is enough space. Reduces available_width in this case. - * - * @params[in] shown_object_type - type of button to be shown. - * @params[in, out] available_width - reference to available width to be used to show button. - * - * @return true if button can be shown, false otherwise - */ - bool processShowButton(EResizeState shown_object_type, S32& available_width); - - /** - * Hides visible panels with all buttons that may be hidden by resize if it is necessary. - * - * When button gets hidden some space is released in bottom tray. - * This space is taken into account for several consecutive calls for several buttons. - * - * @params[in, out] required_width - reference to required width to be released. This is a negative value. - * Its absolute value is decreased by shown panel width. - * @params[in, out] buttons_freed_width - reference to value released over required one. - * If panel's width is more than required difference is added to buttons_freed_width. - * @see processHideButton() - */ - void processHideButtons(S32& required_width, S32& buttons_freed_width); - - /** - * Hides panel with specified button if it is visible. - * - * When button gets hidden some space is released in bottom tray. - * This space is taken into account for several consecutive calls for several buttons. - * - * @params[in] processed_object_type - type of button to be hide. - * @params[in, out] required_width - reference to required width to be released. This is a negative value. - * Its absolute value is decreased by panel width. - * @params[in, out] buttons_freed_width - reference to value released over required one. - * If panel's width is more than required difference is added to buttons_freed_width. - */ - void processHideButton(EResizeState processed_object_type, S32& required_width, S32& buttons_freed_width); - - /** - * Shrinks shown buttons to reduce total taken space. - * - * Shrinks buttons that may be shrunk smoothly first. Then shrinks Speak button. - * - * @param[in, out] required_width - reference to width value which should be released when buttons are shrunk. It is a negative value. - * It is increased on the value processed by buttons. - * @params[in, out] buttons_freed_width - reference to value released over required one. - * If width of panel with Speak button is more than required that difference is added - * to buttons_freed_width. - * This is because Speak button shrinks discretely unlike other buttons which are changed smoothly. - */ - void processShrinkButtons(S32& required_width, S32& buttons_freed_width); - - /** - * Shrinks panel with specified button if it is visible. - * - * @params[in] processed_object_type - type of button to be shrunk. - * @param[in, out] required_width - reference to width value which should be released when button is shrunk. It is a negative value. - * It is increased on the value released by the button. - */ - void processShrinkButton(EResizeState processed_object_type, S32& required_width); - - /** - * Extends shown buttons to increase total taken space. - * - * Extends buttons that may be extended smoothly first. Then extends Speak button. - * - * @param[in, out] available_width - reference to width value which buttons can use to be extended. - * It is a positive value. It is decreased on the value processed by buttons. - */ - void processExtendButtons(S32& available_width); - - /** - * Extends the Speak button if there is enough headroom. - * - * Unlike other buttons, the Speak buttons has only two possible widths: - * the minimal one (without label) and the maximal (default) one. - * - * If the button is at its minimum width there is not enough headroom to - * reshape it to the maximum width, the method does nothing. - * - * @param available_width Available headroom. - * @return false if the button requires extension but there's not enough headroom, true otherwise. - */ - bool processExtendSpeakButton(S32& available_width); - - /** - * Extends shown button to increase total taken space. - * - * @params[in] processed_object_type - type of button to be extended. - * @param[in, out] available_width - reference to width value which button can use to be extended. - * It is a positive value. It is decreased on the value processed by buttons. - */ - void processExtendButton(EResizeState processed_object_type, S32& available_width); - - /** - * Determines if specified by type object can be shown. It should be hidden by shrink before. - * - * Processes buttons a such way to show buttons in constant order: - * - Gestures, Move, View, Snapshot - */ - bool canButtonBeShown(EResizeState processed_object_type) const; - - /** - * Initializes all containers stored data related to children resize state. - * - * @see mStateProcessedObjectMap - * @see mObjectDefaultWidthMap - * @see mButtonsProcessOrder - */ - void initResizeStateContainers(); - - /** - * Initializes buttons' visibility depend on stored Control Settings. - */ - void initButtonsVisibility(); - - /** - * Initializes listeners of Control Settings to toggle appropriate buttons' visibility. - * - * @see toggleShowButton() - */ - void setButtonsControlsAndListeners(); - - /** - * Toggles visibility of specified button depend on passed value. - * - * @param button_type - type of button to be toggled - * @param new_visibility - new visibility of the button - * - * @see setButtonsControlsAndListeners() - */ - static bool toggleShowButton(EResizeState button_type, const LLSD& new_visibility); - - /** - * Show the button if there is enough space. - * - * @param[in] button_type - type of button to be shown. - * @param[in, out] available_width amount of available space on the bottom bar. - * - * @return true if button was shown, false that's not possible (not enough space, etc) - */ - bool showButton(EResizeState button_type, S32& available_width); - - /** - * Sets passed visibility to object specified by resize type. - */ - void setTrayButtonVisible(EResizeState shown_object_type, bool visible); - - /** - * Sets passed visibility to object specified by resize type if it is possible. - * - * If it is impossible to show required button due to there is no enough room in bottom tray - * it will no be shown. Is called via context menu commands. - * In this case Alert Dialog will be shown to notify user about that. - * - * Method also stores resize state to be processed while future bottom tray extending: - * - if hidden while resizing button should be hidden it will not be shown while extending; - * - if hidden via context menu button should be shown but there is no enough room for now - * it will be shown while extending. - */ - void setTrayButtonVisibleIfPossible(EResizeState shown_object_type, bool visible, bool raise_notification = true); - - /** - * Sets passed visibility to required button and fit widths of shown - * buttons(notice that method can shrink widths to - * allocate needed room in bottom tray). - * Returns true if visibility of required button was set. - */ - bool setVisibleAndFitWidths(EResizeState object_type, bool visible); - - /** - * Get panel containing the given button. - * - * @see mStateProcessedObjectMap - */ - LLPanel* getButtonPanel(EResizeState button_type); - - /** - * Shows/hides panel with specified well button (IM or Notification) - * - * @param[in] object_type - type of well button to be processed. - * Must be one of RS_IM_WELL or RS_NOTIFICATION_WELL. - * @param[in] visible - flag specified whether button should be shown or hidden. - */ - void showWellButton(EResizeState object_type, bool visible); - - /** - * Handles a customization of chatbar width. - * - * When chatbar gets wider layout stack will reduce chiclet panel (it is auto-resizable) - * But once chiclet panel reaches its minimal width Stack will force to reduce buttons width. - * including Speak button. The similar behavior is when chatbar gets narrowly. - * This methods force resize behavior to resize buttons properly in these cases. - */ - void processChatbarCustomization(S32 new_width); - - /** - * @return difference between current chiclet panel width and the minimum. - */ - S32 getChicletPanelShrinkHeadroom() const; - - /// Get button name for debugging. - static std::string resizeStateToString(EResizeState state); - - /// Dump a mask for debugging - static std::string resizeStateMaskToString(MASK mask); - - /// @return true if any of the the passed buttons have been auto-hidden due to lack of available space. - bool isAutoHidden(MASK button_types) const; - - /** - * (Un)Mark the buttons as hidden. - * - * Auto-hidden buttons are those that re-appear as soon as we have enough available space. - */ - void setAutoHidden(MASK button_types, bool hide); - - /// Buttons automatically hidden due to lack of space. - MASK mResizeState; - - /** - * Mapping of button types to the layout panels the buttons are wrapped in. - * - * Used by getButtonPanel(). - */ - typedef std::map state_object_map_t; - state_object_map_t mStateProcessedObjectMap; - - /// Default (maximum) widths of the layout panels. - typedef std::map state_object_width_map_t; - state_object_width_map_t mObjectDefaultWidthMap; - - typedef std::vector resize_state_vec_t; - - /** - * Contains order in which child buttons should be processed in show/hide, extend/shrink methods. - */ - resize_state_vec_t mButtonsProcessOrder; - - /** - * Contains order in which child buttons are shown. - * It traces order of all bottomtray buttons that may change place via drag'n'drop and should - * save and load it between sessions. mButtonsProcessOrder is not enough for it because it contains only - * buttons that may be hidden. - */ - resize_state_vec_t mButtonsOrder; - -protected: - - LLBottomTray(const LLSD& key = LLSD()); - - static void* createNearbyChatBar(void* userdata); - - void updateContextMenu(S32 x, S32 y, MASK mask); - void onContextMenuItemClicked(const LLSD& userdata); - bool onContextMenuItemEnabled(const LLSD& userdata); - - // Either default or saved after user's manual resize width of nearby chat. - // Nearby chat will not always have it, because sometimes it can be shrunk on resize, - // but when possible it will be restored back to this value. - S32 mDesiredNearbyChatWidth; - LLChicletPanel* mChicletPanel; - LLPanel* mSpeakPanel; - LLSpeakButton* mSpeakBtn; - LLNearbyChatBar* mNearbyChatBar; - LLLayoutPanel* mChatBarContainer; - LLPanel* mNearbyCharResizeHandlePanel; - LLLayoutStack* mToolbarStack; - LLMenuGL* mBottomTrayContextMenu; - LLButton* mCamButton; - LLButton* mMovementButton; - LLBottomTrayLite* mBottomTrayLite; - bool mIsInLiteMode; - - // Drag'n'Drop - - /** - * Is true if mouse down happened on draggable button. - * Set false whether on drag start or on mouse up. - */ - bool mCheckForDrag; - /** - * These two variables hold corrdinates of mouse down on draggable button. - * They are used to compare with current coordinates of cursor and determine whether drag'n'drop should start. - */ - S32 mStartX; - S32 mStartY; - /** - * True if drag'n'drop is happening. - */ - bool mDragStarted; - - /** - * Pointer to panel which is currently dragged (though it seems to user that button is dragged, - * we are changing place of layout panel). - */ - LLPanel* mDraggedItem; - /** - * Panel before which the dragged button will be inserted. - */ - LLPanel* mLandingTab; - /** - * Image used to show position where dragged button will be dropped. - */ - LLUIImage* mImageDragIndication; - - // We want only one LLNearbyChatBarListener object, so it's tied to this singleton - boost::shared_ptr mListener; -}; - -#endif // LL_LLBOTTOMPANEL_H diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp index fb3abb132b..d6095cce07 100644 --- a/indra/newview/llchatbar.cpp +++ b/indra/newview/llchatbar.cpp @@ -60,7 +60,6 @@ #include "llui.h" #include "llviewermenu.h" #include "lluictrlfactory.h" -#include "llbottomtray.h" // // Globals diff --git a/indra/newview/llfloatersounddevices.cpp b/indra/newview/llfloatersounddevices.cpp index e692f1735a..56c0806546 100644 --- a/indra/newview/llfloatersounddevices.cpp +++ b/indra/newview/llfloatersounddevices.cpp @@ -28,7 +28,6 @@ #include "llfloatersounddevices.h" -#include "llbottomtray.h" #include "lldraghandle.h" #include "llpanelvoicedevicesettings.h" @@ -55,9 +54,6 @@ LLFloaterSoundDevices::~LLFloaterSoundDevices() BOOL LLFloaterSoundDevices::postBuild() { LLTransientDockableFloater::postBuild(); - - LLView *anchor_panel = LLBottomTray::getInstance()->getChild("flyout_btn"); - setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(), LLDockControl::TOP)); setIsChrome(TRUE); if (mDragHandle) diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index b3b0c93b99..0250af6a0e 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -41,7 +41,6 @@ #include "llagent.h" #include "llbutton.h" -#include "llbottomtray.h" #include "llcallingcard.h" #include "llchannelmanager.h" #include "llchat.h" diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 441ea2923d..64d5152ebe 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -46,7 +46,6 @@ #include "llagentui.h" #include "llappviewer.h" #include "llavatariconctrl.h" -#include "llbottomtray.h" #include "llcallingcard.h" #include "llchat.h" #include "llimfloater.h" @@ -1680,13 +1679,6 @@ BOOL LLCallDialog::postBuild() if (!LLDockableFloater::postBuild()) return FALSE; - // dock the dialog to the Speak Button, where other sys messages appear - LLView *anchor_panel = LLBottomTray::getInstance()->getChild("speak_panel"); - - setDockControl(new LLDockControl( - anchor_panel, this, - getDockTongue(), LLDockControl::TOP)); - return TRUE; } diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index 7503164fe6..49f2dc082c 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -29,7 +29,6 @@ #include "llagentdata.h" // for gAgentID #include "llnearbychathandler.h" -#include "llbottomtray.h" #include "llchatitemscontainerctrl.h" #include "llfirstuse.h" #include "llfloaterscriptdebug.h" diff --git a/indra/newview/llspeakbutton.cpp b/indra/newview/llspeakbutton.cpp deleted file mode 100644 index bbe573c546..0000000000 --- a/indra/newview/llspeakbutton.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/** -* @file llspeakbutton.cpp -* @brief LLSpeakButton class implementation -* -* $LicenseInfo:firstyear=2002&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, Linden Research, Inc. -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA -* $/LicenseInfo$ -*/ - -#include "llviewerprecompiledheaders.h" // must be first include - -#include "llbutton.h" -#include "llfloaterreg.h" - -#include "llagent.h" -#include "llbottomtray.h" -#include "llcallfloater.h" -#include "lloutputmonitorctrl.h" -#include "lltransientfloatermgr.h" - -#include "llspeakbutton.h" - -#include "llbottomtray.h" -#include "llfirstuse.h" - -static LLDefaultChildRegistry::Register t1("talk_button"); - -////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////// - -LLSpeakButton::Params::Params() -: speak_button("speak_button"), - show_button("show_button"), - monitor("monitor") -{} - -LLSpeakButton::LLSpeakButton(const Params& p) -: LLUICtrl(p) -, mOutputMonitor(NULL) -, mSpeakBtn(NULL) -, mShowBtn(NULL) -{ - LLRect rect = p.rect(); - LLRect speak_rect(0, rect.getHeight(), rect.getWidth(), 0); - LLRect show_rect = p.show_button.rect(); - show_rect.set(0, rect.getHeight(), show_rect.getWidth(), 0); - - speak_rect.mRight -= show_rect.getWidth(); - show_rect.mLeft = speak_rect.getWidth(); - show_rect.mRight = rect.getWidth(); - - LLButton::Params speak_params = p.speak_button; - speak_params.rect(speak_rect); - mSpeakBtn = LLUICtrlFactory::create(speak_params); - addChild(mSpeakBtn); - LLTransientFloaterMgr::getInstance()->addControlView(mSpeakBtn); - - mSpeakBtn->setMouseDownCallback(boost::bind(&LLSpeakButton::onMouseDown_SpeakBtn, this)); - mSpeakBtn->setMouseUpCallback(boost::bind(&LLSpeakButton::onMouseUp_SpeakBtn, this)); - mSpeakBtn->setToggleState(FALSE); - - LLBottomtrayButton::Params show_params = p.show_button; - show_params.rect(show_rect); - mShowBtn = LLUICtrlFactory::create(show_params); - addChild(mShowBtn); - LLTransientFloaterMgr::getInstance()->addControlView(mShowBtn); - -// mShowBtn->setClickedCallback(boost::bind(&LLSpeakButton::onClick_ShowBtn, this)); -// mShowBtn->setToggleState(FALSE); - - static const S32 MONITOR_RIGHT_PAD = 2; - - LLRect monitor_rect = p.monitor.rect(); - S32 monitor_height = monitor_rect.getHeight(); - monitor_rect.mLeft = speak_rect.getWidth() - monitor_rect.getWidth() - MONITOR_RIGHT_PAD; - monitor_rect.mRight = speak_rect.getWidth() - MONITOR_RIGHT_PAD; - monitor_rect.mBottom = (rect.getHeight() / 2) - (monitor_height / 2); - monitor_rect.mTop = monitor_rect.mBottom + monitor_height; - - LLOutputMonitorCtrl::Params monitor_params = p.monitor; - monitor_params.draw_border(false); - monitor_params.rect(monitor_rect); - monitor_params.auto_update(true); - monitor_params.speaker_id(gAgentID); - mOutputMonitor = LLUICtrlFactory::create(monitor_params); - mSpeakBtn->addChild(mOutputMonitor); - - // never show "muted" because you can't mute yourself - mOutputMonitor->setIsMuted(false); - mOutputMonitor->setIsAgentControl(true); - - //*TODO find a better place to do that - LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLCallFloater::sOnCurrentChannelChanged, _1), true); -} - -LLSpeakButton::~LLSpeakButton() -{ - if(LLTransientFloaterMgr::instanceExists()) - { - LLTransientFloaterMgr::getInstance()->removeControlView(mSpeakBtn); - LLTransientFloaterMgr::getInstance()->removeControlView(mShowBtn); - } -} - -void LLSpeakButton::setSpeakToolTip(const std::string& msg) -{ - mSpeakBtn->setToolTip(msg); -} - -void LLSpeakButton::setShowToolTip(const std::string& msg) -{ - mShowBtn->setToolTip(msg); -} - -void LLSpeakButton::setLabelVisible(bool visible) -{ - static std::string label_selected = mSpeakBtn->getLabelSelected(); - static std::string label_unselected = mSpeakBtn->getLabelUnselected(); - - if (visible) - { - mSpeakBtn->setLabelSelected(label_selected); - mSpeakBtn->setLabelUnselected(label_unselected); - } - else - { - static LLStringExplicit empty_string(""); - mSpeakBtn->setLabelSelected(empty_string); - mSpeakBtn->setLabelUnselected(empty_string); - } -} - -////////////////////////////////////////////////////////////////////////// -/// PROTECTED SECTION -////////////////////////////////////////////////////////////////////////// -void LLSpeakButton::onMouseDown_SpeakBtn() -{ - bool down = true; - LLVoiceClient::getInstance()->inputUserControlState(down); // this method knows/care about whether this translates into a toggle-to-talk or down-to-talk - LLFirstUse::speak(false); -} -void LLSpeakButton::onMouseUp_SpeakBtn() -{ - bool down = false; - LLVoiceClient::getInstance()->inputUserControlState(down); -} - diff --git a/indra/newview/llspeakbutton.h b/indra/newview/llspeakbutton.h deleted file mode 100644 index 7db01112ef..0000000000 --- a/indra/newview/llspeakbutton.h +++ /dev/null @@ -1,88 +0,0 @@ -/** -* @file llspeakbutton.h -* @brief LLSpeakButton class header file -* -* $LicenseInfo:firstyear=2002&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, Linden Research, Inc. -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA -* $/LicenseInfo$ -*/ - -#ifndef LL_LLSPEAKBUTTON_H -#define LL_LLSPEAKBUTTON_H - -#include "llinitparam.h" -#include "lluictrl.h" - -class LLCallFloater; -class LLButton; -class LLOutputMonitorCtrl; -class LLBottomtrayButton; - -/* - * Button displaying voice chat status. Displays voice chat options when - * clicked. -*/ -class LLSpeakButton : public LLUICtrl -{ -public: - - struct Params : public LLInitParam::Block - { - Optional speak_button; - Optional show_button; - Optional monitor; - - Params(); - }; - - /*virtual*/ ~LLSpeakButton(); - - // *HACK: Need to put tooltips in a translatable location, - // the panel that contains this button. - void setSpeakToolTip(const std::string& msg); - void setShowToolTip(const std::string& msg); - - /** - * Sets visibility of speak button's label according to passed parameter. - * - * It removes label/selected label if "visible" is false and restores otherwise. - * - * @param visible if true - show label and selected label. - * - * @see mSpeakBtn - * @see LLBottomTray::processShrinkButtons() - */ - void setLabelVisible(bool visible); - -protected: - friend class LLUICtrlFactory; - LLSpeakButton(const Params& p); - - void onMouseDown_SpeakBtn(); - void onMouseUp_SpeakBtn(); - -private: - LLButton* mSpeakBtn; - LLBottomtrayButton* mShowBtn; - LLHandle mPrivateCallPanel; - LLOutputMonitorCtrl* mOutputMonitor; -}; - -#endif // LL_LLSPEAKBUTTON_H diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 5d215c7f6d..6ce0c358a1 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -42,7 +42,6 @@ #include "llagentcamera.h" #include "llagentwearables.h" #include "llagentpilot.h" -#include "llbottomtray.h" #include "llcompilequeue.h" #include "llconsole.h" #include "lldaycyclemanager.h" @@ -7795,7 +7794,7 @@ class LLWorldToggleMovementControls : public view_listener_t { bool handleEvent(const LLSD& userdata) { - LLBottomTray::getInstance()->toggleMovementControls(); + LLFloaterReg::toggleInstanceOrBringToFront("moveview"); return true; } }; @@ -7804,7 +7803,7 @@ class LLWorldToggleCameraControls : public view_listener_t { bool handleEvent(const LLSD& userdata) { - LLBottomTray::getInstance()->toggleCameraControls(); + LLFloaterReg::toggleInstanceOrBringToFront("camera"); return true; } }; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 85f74c9fdd..1f8bac5069 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -187,7 +187,6 @@ #include "llviewerjoystick.h" #include "llviewernetwork.h" #include "llpostprocess.h" -#include "llbottomtray.h" #include "llnearbychatbar.h" #include "llagentui.h" #include "llwearablelist.h" @@ -2163,10 +2162,10 @@ void LLViewerWindow::reshape(S32 width, S32 height) // Hide normal UI when a logon fails void LLViewerWindow::setNormalControlsVisible( BOOL visible ) { - if(LLBottomTray::instanceExists()) + if(LLChicletBar::instanceExists()) { - LLBottomTray::getInstance()->setVisible(visible); - LLBottomTray::getInstance()->setEnabled(visible); + LLChicletBar::getInstance()->setVisible(visible); + LLChicletBar::getInstance()->setEnabled(visible); } if ( gMenuBarView ) @@ -4921,8 +4920,8 @@ S32 LLViewerWindow::getChatConsoleBottomPad() { S32 offset = 0; - if(LLBottomTray::instanceExists()) - offset += LLBottomTray::getInstance()->getRect().getHeight(); + if(gToolBarView) + offset += gToolBarView->getChild("bottom_toolbar_panel")->getRect().getHeight(); return offset; } diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 90a05cd9e5..05cd1d79b0 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -55,7 +55,7 @@ #include "llimview.h" // for LLIMMgr #include "llparcel.h" #include "llviewerparcelmgr.h" -//#include "llfirstuse.h" +#include "llfirstuse.h" #include "llspeakers.h" #include "lltrans.h" #include "llviewerwindow.h" @@ -6258,6 +6258,19 @@ void LLVivoxVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::ESta it = mStatusObservers.upper_bound(observer); } + // skipped to avoid speak button blinking + if ( status != LLVoiceClientStatusObserver::STATUS_JOINING + && status != LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL) + { + bool voice_status = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking(); + + gAgent.setVoiceConnected(voice_status); + + if (voice_status) + { + LLFirstUse::speak(true); + } + } } void LLVivoxVoiceClient::addObserver(LLFriendObserver* observer) diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml deleted file mode 100644 index 2737746c0e..0000000000 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ /dev/null @@ -1,530 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml deleted file mode 100644 index 0f330a7b98..0000000000 --- a/indra/newview/skins/default/xui/en/panel_side_tray.xml +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.3 From 8e3717e187766f0ad24f29886ae930be186a4394 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 13 Oct 2011 20:31:41 -0700 Subject: EXP-1323 FIX Mouselook text "Press ESC to return to World View" overlaps with bottom toolbar if mode is icon only hide toolbars in mouselook hide top_info_bar when hiding UI disable mouselook when hiding UI fixed layout of more button in navigation bar --- indra/newview/llagent.cpp | 3 +++ indra/newview/llagentcamera.cpp | 4 +++- indra/newview/llviewerwindow.cpp | 2 ++ indra/newview/skins/default/xui/en/panel_navigation_bar.xml | 10 ++++++---- 4 files changed, 14 insertions(+), 5 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 31a73c8c31..edb536d337 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -68,6 +68,7 @@ #include "llstatusbar.h" #include "llteleportflags.h" #include "lltool.h" +#include "lltoolbarview.h" #include "lltoolpie.h" #include "lltoolmgr.h" #include "lltrans.h" @@ -1862,6 +1863,7 @@ void LLAgent::endAnimationUpdateUI() // clean up UI from mode we're leaving if (gAgentCamera.getLastCameraMode() == CAMERA_MODE_MOUSELOOK ) { + gToolBarView->setToolBarsVisible(true); // show mouse cursor gViewerWindow->showCursor(); // show menus @@ -1972,6 +1974,7 @@ void LLAgent::endAnimationUpdateUI() if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK) { // hide menus + gToolBarView->setToolBarsVisible(false); gMenuBarView->setVisible(FALSE); LLNavigationBar::getInstance()->setVisible(FALSE); gStatusBar->setVisibleForMouselook(false); diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index f195c985c0..27e9aa32f2 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -2040,7 +2040,9 @@ void LLAgentCamera::resetCamera() //----------------------------------------------------------------------------- void LLAgentCamera::changeCameraToMouselook(BOOL animate) { - if (!gSavedSettings.getBOOL("EnableMouselook") || LLViewerJoystick::getInstance()->getOverrideCamera()) + if (!gSavedSettings.getBOOL("EnableMouselook") + || LLViewerJoystick::getInstance()->getOverrideCamera() + || !gViewerWindow->getUIVisibility()) { return; } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 665b31a427..92dc352cf4 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4987,11 +4987,13 @@ void LLViewerWindow::setUIVisibility(bool visible) gToolBarView->setToolBarsVisible(visible); } + mRootView->getChildView("topinfo_bar_container")->setVisible(visible); mRootView->getChildView("nav_bar_container")->setVisible(visible); mRootView->getChildView("status_bar_container")->setVisible(visible); if (!visible) { + gAgentCamera.changeCameraToDefault(); gFloaterView->hideAllFloaters(); } else 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 ab6fa36e6c..7a8e872dc9 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -188,10 +188,12 @@ + tab_stop="false" + tool_tip="Show more of My Favorites" + top="13" + width="50" + bottom="0" + valign="bottom"> More ▼ -- cgit v1.3 From 9f682772d93b4530ad7bcbf52adb2300cd91cd4d Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 13 Oct 2011 20:45:50 -0700 Subject: EXP-1323 FIX Mouselook text "Press ESC to return to World View" overlaps with bottom toolbar if mode is icon only fixed popping out of mouselook when turning off UI --- indra/newview/llviewerwindow.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 92dc352cf4..b8715bfa5b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4982,24 +4982,24 @@ void LLViewerWindow::setUIVisibility(bool visible) { mUIVisible = visible; - if (gToolBarView) - { - gToolBarView->setToolBarsVisible(visible); - } - - mRootView->getChildView("topinfo_bar_container")->setVisible(visible); - mRootView->getChildView("nav_bar_container")->setVisible(visible); - mRootView->getChildView("status_bar_container")->setVisible(visible); - if (!visible) { - gAgentCamera.changeCameraToDefault(); + gAgentCamera.changeCameraToThirdPerson(FALSE); gFloaterView->hideAllFloaters(); } else { gFloaterView->showHiddenFloaters(); } + + if (gToolBarView) + { + gToolBarView->setToolBarsVisible(visible); + } + + mRootView->getChildView("topinfo_bar_container")->setVisible(visible); + mRootView->getChildView("nav_bar_container")->setVisible(visible); + mRootView->getChildView("status_bar_container")->setVisible(visible); } bool LLViewerWindow::getUIVisibility() -- cgit v1.3 From aa7245fa2b5441285d2de384a9629782456af88a Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Fri, 14 Oct 2011 11:46:38 -0700 Subject: EXP-1361 FIX -- Repositioning Viewer Window on mac triggers click to walk * Mouse clicks outside the root view are now discarded before they can cause problems. Reviewed by Richard --- indra/newview/llviewerwindow.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b8715bfa5b..0873e4f6ea 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -938,6 +938,11 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK // } //} + // Mark the click as handled and return if we aren't within the root view to avoid spurious bugs + if( !mRootView->pointInView(x, y) ) + { + return TRUE; + } // Give the UI views a chance to process the click if( mRootView->handleAnyMouseClick(x, y, mask, clicktype, down) ) { -- cgit v1.3 From 7bc1eaf22f3c8bde69922215fb61b448afa8967a Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Fri, 14 Oct 2011 15:22:53 -0700 Subject: EXP-1342 FIX -- Update avatar picker and destination guide urls * URL's are in place with the [GRID_LOWERCASE] used in the link to go to the proper page based on the grid. * Added "GRID_LOWERCASE" substitution for URL's since it is case sensitive --- indra/newview/app_settings/settings.xml | 6 +++--- indra/newview/llviewermenu.cpp | 3 ++- indra/newview/llviewerwindow.cpp | 10 +++++++--- indra/newview/llweb.cpp | 1 + 4 files changed, 13 insertions(+), 7 deletions(-) (limited to 'indra/newview/llviewerwindow.cpp') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index da2161c8de..52aa2a3be3 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -619,7 +619,7 @@ Type String Value - http://drofnas.components.pdp48.lindenlab.com/avatars.html + http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/avatars.html AvatarBakedTextureUploadTimeout @@ -2717,7 +2717,7 @@ Type String Value - http://drofnas.components.pdp48.lindenlab.com/guide.html + http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/guide.html DisableCameraConstraints @@ -4037,7 +4037,7 @@ Type String Value - http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/howto/index.html + http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/howto/index.html HomeSidePanelURL diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 10563971b3..57ff62f60f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6893,7 +6893,8 @@ class LLToggleHowTo : public view_listener_t bool handleEvent(const LLSD& userdata) { LLFloaterWebContent::Params p; - p.url = gSavedSettings.getString("HowToHelpURL"); + std::string url = gSavedSettings.getString("HowToHelpURL"); + p.url = LLWeb::expandURLSubstitutions(url, LLSD()); p.show_chrome = false; p.target = "__help_how_to"; p.show_page_title = false; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 0873e4f6ea..1d64e22db2 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1947,13 +1947,17 @@ void LLViewerWindow::initWorldUI() if (destinations) { destinations->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); - destinations->navigateTo(gSavedSettings.getString("DestinationGuideURL"), "text/html"); + std::string url = gSavedSettings.getString("DestinationGuideURL"); + url = LLWeb::expandURLSubstitutions(url, LLSD()); + destinations->navigateTo(url, "text/html"); } LLMediaCtrl* avatar_picker = LLFloaterReg::getInstance("avatar")->findChild("avatar_picker_contents"); if (avatar_picker) { avatar_picker->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL")); - avatar_picker->navigateTo(gSavedSettings.getString("AvatarPickerURL"), "text/html"); + std::string url = gSavedSettings.getString("AvatarPickerURL"); + url = LLWeb::expandURLSubstitutions(url, LLSD()); + avatar_picker->navigateTo(url, "text/html"); } } @@ -1980,7 +1984,7 @@ void LLViewerWindow::shutdownViews() // *TODO: Make LLNavigationBar part of gViewerWindow if (LLNavigationBar::instanceExists()) { - delete LLNavigationBar::getInstance(); + delete LLNavigationBar::getInstance(); } // destroy menus after instantiating navbar above, as it needs diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp index 7bc5453688..b2f35892d0 100644 --- a/indra/newview/llweb.cpp +++ b/indra/newview/llweb.cpp @@ -210,6 +210,7 @@ std::string LLWeb::expandURLSubstitutions(const std::string &url, substitution["VERSION_BUILD"] = LLVersionInfo::getBuild(); substitution["CHANNEL"] = LLVersionInfo::getChannel(); substitution["GRID"] = LLGridManager::getInstance()->getGridLabel(); + substitution["GRID_LOWERCASE"] = utf8str_tolower(LLGridManager::getInstance()->getGridLabel()); substitution["OS"] = LLAppViewer::instance()->getOSInfo().getOSStringSimple(); substitution["SESSION_ID"] = gAgent.getSessionID(); substitution["FIRST_LOGIN"] = gAgent.isFirstLogin(); -- cgit v1.3