From 1bb46c7384f6532da8f0315f61b8613bd0b9b717 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 16 Feb 2011 17:02:06 -0800 Subject: [PATCH 001/168] SOCIAL-544 PARTIAL move skylight skin to viewer repo --- indra/newview/skins/minimal/colors.xml | 6 + .../skins/minimal/textures/arrow_keys.png | Bin 0 -> 6558 bytes .../textures/bottomtray/button_separator.png | Bin 0 -> 153 bytes .../textures/login_teleport_background.jpg | Bin 0 -> 130026 bytes .../skins/minimal/textures/sl_logo.png | Bin 0 -> 4542 bytes .../skins/minimal/textures/textures.xml | 7 + .../skins/minimal/xui/en/floater_camera.xml | 257 ++++++++ .../minimal/xui/en/floater_help_browser.xml | 52 ++ .../minimal/xui/en/floater_media_browser.xml | 205 ++++++ .../minimal/xui/en/floater_nearby_chat.xml | 52 ++ .../skins/minimal/xui/en/inspect_avatar.xml | 135 ++++ .../skins/minimal/xui/en/inspect_object.xml | 116 ++++ .../skins/minimal/xui/en/main_view.xml | 236 +++++++ .../minimal/xui/en/menu_add_wearable_gear.xml | 2 + .../minimal/xui/en/menu_attachment_other.xml | 35 ++ .../minimal/xui/en/menu_attachment_self.xml | 2 + .../skins/minimal/xui/en/menu_avatar_icon.xml | 2 + .../minimal/xui/en/menu_avatar_other.xml | 25 + .../skins/minimal/xui/en/menu_avatar_self.xml | 2 + .../skins/minimal/xui/en/menu_bottomtray.xml | 2 + .../minimal/xui/en/menu_cof_attachment.xml | 2 + .../minimal/xui/en/menu_cof_body_part.xml | 2 + .../minimal/xui/en/menu_cof_clothing.xml | 2 + .../skins/minimal/xui/en/menu_cof_gear.xml | 2 + .../skins/minimal/xui/en/menu_edit.xml | 90 +++ .../skins/minimal/xui/en/menu_favorites.xml | 2 + .../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 + .../minimal/xui/en/menu_im_well_button.xml | 2 + .../minimal/xui/en/menu_imchiclet_adhoc.xml | 2 + .../minimal/xui/en/menu_imchiclet_group.xml | 2 + .../minimal/xui/en/menu_imchiclet_p2p.xml | 2 + .../xui/en/menu_inspect_avatar_gear.xml | 2 + .../xui/en/menu_inspect_object_gear.xml | 2 + .../minimal/xui/en/menu_inspect_self_gear.xml | 2 + .../minimal/xui/en/menu_inv_offer_chiclet.xml | 2 + .../skins/minimal/xui/en/menu_inventory.xml | 2 + .../minimal/xui/en/menu_inventory_add.xml | 2 + .../xui/en/menu_inventory_gear_default.xml | 2 + .../skins/minimal/xui/en/menu_land.xml | 2 + .../skins/minimal/xui/en/menu_landmark.xml | 2 + .../skins/minimal/xui/en/menu_login.xml | 2 + .../skins/minimal/xui/en/menu_mini_map.xml | 2 + .../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 + .../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 + .../minimal/xui/en/menu_participant_list.xml | 2 + .../xui/en/menu_people_friends_view_sort.xml | 2 + .../minimal/xui/en/menu_people_groups.xml | 2 + .../xui/en/menu_people_groups_view_sort.xml | 2 + .../minimal/xui/en/menu_people_nearby.xml | 2 + .../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 + .../skins/minimal/xui/en/menu_picks.xml | 2 + .../skins/minimal/xui/en/menu_picks_plus.xml | 2 + .../skins/minimal/xui/en/menu_place.xml | 2 + .../minimal/xui/en/menu_place_add_button.xml | 2 + .../xui/en/menu_places_gear_folder.xml | 2 + .../xui/en/menu_places_gear_landmark.xml | 2 + .../minimal/xui/en/menu_profile_overflow.xml | 2 + .../skins/minimal/xui/en/menu_save_outfit.xml | 2 + .../minimal/xui/en/menu_script_chiclet.xml | 2 + .../skins/minimal/xui/en/menu_slurl.xml | 2 + .../xui/en/menu_teleport_history_gear.xml | 2 + .../xui/en/menu_teleport_history_item.xml | 2 + .../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 + .../skins/minimal/xui/en/menu_url_http.xml | 2 + .../minimal/xui/en/menu_url_inventory.xml | 2 + .../skins/minimal/xui/en/menu_url_map.xml | 2 + .../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 + .../minimal/xui/en/menu_url_teleport.xml | 2 + .../skins/minimal/xui/en/menu_viewer.xml | 71 +++ .../xui/en/menu_wearable_list_item.xml | 2 + .../minimal/xui/en/menu_wearing_gear.xml | 2 + .../skins/minimal/xui/en/menu_wearing_tab.xml | 2 + .../xui/en/notification_visibility.xml | 32 + .../skins/minimal/xui/en/panel_bottomtray.xml | 412 +++++++++++++ .../minimal/xui/en/panel_im_control_panel.xml | 27 + .../skins/minimal/xui/en/panel_login.xml | 188 ++++++ .../minimal/xui/en/panel_navigation_bar.xml | 97 +++ .../xui/en/panel_prim_media_controls.xml | 581 ++++++++++++++++++ .../skins/minimal/xui/en/panel_progress.xml | 21 + 95 files changed, 2825 insertions(+) create mode 100644 indra/newview/skins/minimal/colors.xml create mode 100644 indra/newview/skins/minimal/textures/arrow_keys.png create mode 100644 indra/newview/skins/minimal/textures/bottomtray/button_separator.png create mode 100644 indra/newview/skins/minimal/textures/login_teleport_background.jpg create mode 100644 indra/newview/skins/minimal/textures/sl_logo.png create mode 100644 indra/newview/skins/minimal/textures/textures.xml create mode 100644 indra/newview/skins/minimal/xui/en/floater_camera.xml create mode 100644 indra/newview/skins/minimal/xui/en/floater_help_browser.xml create mode 100644 indra/newview/skins/minimal/xui/en/floater_media_browser.xml create mode 100644 indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml create mode 100644 indra/newview/skins/minimal/xui/en/inspect_avatar.xml create mode 100644 indra/newview/skins/minimal/xui/en/inspect_object.xml create mode 100644 indra/newview/skins/minimal/xui/en/main_view.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_add_wearable_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_attachment_other.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_attachment_self.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_icon.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_other.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_avatar_self.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_bottomtray.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_attachment.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_body_part.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_clothing.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_cof_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_edit.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_favorites.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_gesture_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_group_plus.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_hide_navbar.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_im_well_button.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_adhoc.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_group.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_imchiclet_p2p.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_avatar_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_object_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inv_offer_chiclet.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory_add.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_inventory_gear_default.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_land.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_landmark.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_login.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_mini_map.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_navbar.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_nearby_chat.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_notification_well_button.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_object.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_object_icon.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_outfit_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_outfit_tab.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_participant_list.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_friends_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_groups.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_groups_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby_multiselect.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_nearby_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_people_recent_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_picks.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_picks_plus.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_place.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_place_add_button.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_places_gear_folder.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_places_gear_landmark.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_profile_overflow.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_save_outfit.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_script_chiclet.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_slurl.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_item.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_teleport_history_tab.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_text_editor.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_topinfobar.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_agent.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_group.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_http.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_inventory.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_map.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_objectim.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_parcel.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_slapp.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_slurl.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_url_teleport.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_viewer.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_wearable_list_item.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_wearing_gear.xml create mode 100644 indra/newview/skins/minimal/xui/en/menu_wearing_tab.xml create mode 100644 indra/newview/skins/minimal/xui/en/notification_visibility.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_bottomtray.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_login.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_prim_media_controls.xml create mode 100644 indra/newview/skins/minimal/xui/en/panel_progress.xml diff --git a/indra/newview/skins/minimal/colors.xml b/indra/newview/skins/minimal/colors.xml new file mode 100644 index 0000000000..097a298ce5 --- /dev/null +++ b/indra/newview/skins/minimal/colors.xml @@ -0,0 +1,6 @@ + + + + diff --git a/indra/newview/skins/minimal/textures/arrow_keys.png b/indra/newview/skins/minimal/textures/arrow_keys.png new file mode 100644 index 0000000000000000000000000000000000000000..f19af59251c46159a0aa6f5ec983a66df961c703 GIT binary patch literal 6558 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 Q)Bpeg07*qoM6N<$f&s#9xc~qF literal 0 HcmV?d00001 diff --git a/indra/newview/skins/minimal/textures/bottomtray/button_separator.png b/indra/newview/skins/minimal/textures/bottomtray/button_separator.png new file mode 100644 index 0000000000000000000000000000000000000000..71ed25f931b519d9d4f2a074b4ce150c5889e9ed GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-R!3HER>*_fHDVB6cUq=Rpjs4tz5?O(K$r9Iy zlHmNblJdl&REB`W%)AmkKi3e2GGjecJyXxFKM#P4v^`xMLnOkJpFDc>D?dN~{DA`} xPyW1r`SNFbW)GG#4c!kC3yO>X^K)?g;AePSDYop*!@D4D44$rjF6*2UngB%VGo%0j literal 0 HcmV?d00001 diff --git a/indra/newview/skins/minimal/textures/login_teleport_background.jpg b/indra/newview/skins/minimal/textures/login_teleport_background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43bf0a58f438e41af522d5f2a9738e6936cce7fb GIT binary patch literal 130026 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

job7dd0o~Ld{%mWgQ>4V)2GGY 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

ge{~ zLU#lyJ_K)E^6cA15oppeSS+oY)63eD2xIyv_dD2G%lWg9N}+qO6PoKGE$ z?8H>(;bzXh)o6xtXA8S0vq_w5aCCgXHt2_@rE1+#rKjf5l%J?TSD-$Xi>f0~=--o%XXM+Q zx?gONr&{h0dv&Vtm8DYRzQXx>6^uCFyQw-)$E_9Lq&%b@_gj6{kF0}1!G9$)UFA3TNkbAh=|dWs6^(zs6O%Tey}*nBvE zzh{`rT?h;44xpf%&_Zvrz6WASlWVuPYM6KDLJ4g8cSury3X=@!l4`5sxW>i8_j|LK zWi6O7-Cl!m?J6r5Ky@G19uwEe2&{V6}B{{VGFekCk0hE&fmAZZ6)orh1NYp)-}U40)h&d2-4 zYi0Rn)4e3Xx=FfAL^v=Xl`YS8i0S7n{ew+x>v2y8eyF@r!Q5<_O}O_C+}dd^^;A~~ z$tOFYEj=;gSlV{#{{VOj#k|6uLFl3P&_8NHT)dBlV z&Hn(~tf}SA%b$U4p^Dt`&8b9;8Yl>$9$K`OV_-o0=%`>;$3TFn3<{`{hk%Z@v;tH? z*Yt)w1x7#=L4ib0L=}4|k&&RQPCl1UF1YohBk){~!kqSoxw%S$Qg*?|{B2N&mY}~} zY!6MmDuZN^(ulH&-6>L&l!LhQ^r*>d(#DcT-XK&~qQd7joo8~M={1bAt4D80E6Mw+ zHba&6&37ujdp56|gvdxw>AT)n`#NjRslTh3LWpD%`=6T~KFy_Qx{j01FXmlOrfAA!#IdajSD2(RxLF}1{ycxgRY;S8ebAxQZ$oCn^t|GJ zunQk$5GvVP$Awgscaof|^mqQL{uE;-z0>AA{VOI0o$jk|h^oR&m1$S#tM=5GVP)OA zThXo2`5+e@mxSlwH}pBJnCG*e{$1{Wv?Zoj`UBi- z{53DugK%KqWvf)Vf*W2D;d{sRop2NVl!^(Etx%$6O|%1t-gQK{;rOk2QJ{Eo(Yuc7 zKDhnV4J|QNjR#uOom*@D-W4_#=}aNAJq|iBI=bmtIa9J|~!SpIX;v zHc8yN0NpvPSiQXgr5T`bGe9bCf+NVFt)DI=L>0(&Eu?s;;)1EWwYp&;hmz(zjRa{; zoO)1U=5ZV`bmt|&8)$~};Bs(WK7*xf$7eU7ZiVl;()6%2#_03KD)?Pa*O+=pZd zjgQZ#OSt;z=zi4x%EDUh20gtpI7#HGUq2nzllEt0@Ta10vzFOp4j%26I{ny}LxuSP zDLy`d4FoUk*jAkJx=Vi+b$D|aZt~uDPe$E8*mJy}#=KY3V7H@ZVz_KKsScTjwj{8j zS+LX3K8GC8tPqUn-ms{?}VUZx=#5&3Q>)*Ungh;&e1Iq8{{EDS>IZ_zhX!6 zthf5QE9|-RJ(!!XY|ch2!!0eKedCde$KASTg^oRCooBUMweo9mpxGRKD^?XDD$>$Z z;;g7|k4jD`k5-(VeMbA~rY@;N3aw5gDJ{^MQ%f7xP{w6nC0)`zD>!SEb{cHk&`@&k zHGIT*W2QdJvkre#*2qQaQlUt|k0Cnn2-lIhAb3_$9;qz<0BkVhwFxp|4KSH)n2AT5 z+|7N#)RCRfoqF|}>*4U>@9X7p!o8Neazin=nJZzZ8%&kMLBoV&WVn8YRFjZ5t#z-) z!zOQsv!QmO+0=jeGI}EmOAt7Dwa$jyeSU2R4V_u;;Z-x!b$Y(aY_W=;B;y$A<%;a2?jCkZ%ujZM zhAm6FzUo;#sEwQ{+-LPtJ#oEj&6lD+?Yw?GylcgK29(a7hbRkfv0Vu})6d#%pi7X!p=7?*QH+*r4Ao7R5%j-3bsbXu)O8&Ww$e zj$j&*tPMhw7OKUof66VBiul8aid${+{50%@FT647<65msS-P1oPs6Wpe->RX@xzN6 z4_qfT!eBVBQ)Rf*WxuWC5 zka$U_3b<2+bVqbHdycK56DC5u30s7Ke7+{SoH*mx)>n7=p3>BYlybrMTlzW10RyH$ zsMys0PyBrE3|~(R-cE}}=|kCFQSLV>TMhbQ-GTMR2hnm>^O_a!r{?}CJwJs95ADZ_ zZqZn3D+!Hou-#Hvdpo$qxatZDO3-#V0a#G#6+y%%-B2AyTRF#ifDi|U$Wnhm`2ADy6cvu5H0C{?P~Ye*bqCCU3Jk@@*Cq>^TpF7`^W?3BxiDYg)&7Nu%Rw4fCow2|TGPj@h} zk_FjY3st^sqBniyr&mpfd-qn%P{TC#P3>kg5_l5)Bw(S4eCE~U>Q)Lq+~8L0G}ZEg zmTLx2tUD3m3w@J;q0Qx_+^+43a-Sd-XkX@=2kNCb+s?9v6E3R|B{5Nfjl2mTzNyqD zvWL_2z^ESuVPpNEX``u6a^U_Dkl9r0JQ*kcdLsw%(@iei^*x;MERGAAb@>`BNm3h< z<8mRkmR5$cqS{8Cj>u0@SXO&%$&M}XzH__VWLs`ht?~vRis5a{d5`d|@h=kf>75{v zlU0diFt$hw>Yx-nb|RwbXAbKHn?uo@XIsnC1dpUW?|0$nMsYovz$lei>p_17q{(AGBdtbI zbqy&!&ngX%41^{Nnt{hB(AF(TpvgFc#0^>!AIFa6~&a4sQ7Gt z2CD*Xil||IG3C;$2{5CSkp4^K0nY9DC2Aq0Tzs)GNPp zZN>hQ@;~m@7Ui}_63bY(s4`NM9cfZm?&-n(mCbHk$!;~O^~z$Sv#+4@tv1UmgBMi3 zYVC)Oc%{j!Vicvf8$Hy5Mm+0o4SKus)2FpuiM9)m>%3f)6Ynf!{{Y9|U7Pwjwe^=m zv|V^!)d{B?wo7!B6^Q~Xg(^VUt6rQDpBln&-c~cx4bSZ=5qsI$jO22yid^}FgXR^c zu=f^*-+x;)7cMO0i*=b7OMS`0mJ_9Hy@%RU4tI2ryzB`b4PhLM*VS#ur1}=g`9(!~ zGPLW^e#Pp%2B+H$w$!+tl={{S3VI8(HH9M(8;;>(lTd*vua zD>&x9oeOEy9`kyNai2Qri$uAtS%V#%Tc)wXHn`K+TzOH_T5+d3jV>I0gkaZAJUejw ztyG2^Vl(m=?l6VAzk&v%`zt2b%kgbDPA9y`mWKHaN_4vG%IJ`@oO<9_JXU4qOzvM* z_9p^0yM)<+6=iIp*Gg7;l23U3^uCQcdQJxQh%RD0=nXHnngTM0C?mTyDM=*YP;5Fo3GWU5iW7~!ck-(YtL4!6Htf^Z(C#titz0E7@aR|vRq-p+V)xwm3&1Wg=cM43y-a0x;p*Un9R8$6I%){W0-Xr%Dh4p|`UeO}!>gQdv_UK|H}AYlotX45H$r+f4H7Yjb(lKjm$ z=KR}4eNohpO4l&r_LnEFbkR4GGJ4i8DAa`vRY_6IP#HCpFxsf7xW7SJu~rExjQWxR zQk1=rHzfO`1J8QOE4GQ1#}ve04!~k`<$siTNCsU_PY<{e=$f6B6C zk=^As&PSNakKnOeVm>Dgr{IPwwkW(to)3__GwTfQi=!W$*A;2ftOK8PkWM@)mXk5r z+wAULX_I&F^!&bSOgDTKlUy^#m(|zXnEsak06$a7i2nem-&ju;&Z>KR2jBSyR5=P@ z_j7^`Tzq>(vE}<;225Is@8&y8QOaRlFKsS+nZk#jl;Bd|JiKau;;MrCZRe^Ci0qWN zt;mG{=e!flMo+FyZN+_U&7U6i{F{p$25pcThTr->eP3CBNndHMOqS}My&N>?jV+pc z=MH>pQ+nnxZPv7!#j#g<;a_P%TVQ0?%HK^HF>Or)gV!EQZj>jQ(aUNrp?E(9g(kN9 z?RaSY+kRTkEaFZzx^V0EJFV4HZL(67y29hI6@(C^;b}l41t5%8QOLBgo*iSmoP3hB zEh*KkderJ(hg9s@hRV4bFmd~3?Tp=nc*o2(mA>hf;(_uNZL zE{~p0ql~3vbMQH?Yv82#?Jk^o@>kDzZFri--vw}27V)YQpO@~5OHn0b=OeQBE;&D+a!i?pam{Mgq{MPv$)Hpt%3(_@x!2AttWVN;4 z^6D+O2SRy7a^xuNw0LCs)kk9C8&$qUH5mv)@m~c4I4Si~PnvxEC^`oKamw%Z8BrFm zYra{6qqqsssVD&ZGyXW{frTFhR9DZuS#`HwxR!O|6lWndEQe%8cOBU{!@lmvD&Os( zqqW*)Uhd4mhMiI+FG4(k@lo_h+|YeJ!<;p3v{_lRu-H^a+vT_x0S@Z?;+8rcWbZ_C z9?^RddMI-3!mSsg`|>R#ytH|$KZ=w39Y=;}u1uH4g*5tktsRt=4E^GQAhz4sdzi{H z6}okIwE7AOX;lNsRRkOA$hMsx`C0;T*E!DLbq0%rxWlv_A7hxs{&NK5L}K!mgpX7& zQgcDlWA@G3bJmY*YVoOY^r}zHv%7A0LWg(gxqIa5JZI5W<`?xZG z#`9u(bXq?@-WvFylv5~3`9j?4KCxwKSpNWPMJvyw`b#X|vKi@J_10(U-FXkUjtrWD z%kmb&UP(fOt*C6FgSgZ>R`}%OpI4WY*j&2*01p2E6APXJx$vtNG)IYchVLnEEyK-1 zPC6uzq6pfy`{1P-EFwX z{&5AN8=8}iXhz6a$4^?uW?`H}Iz_Lw{sVoM$F?nl>YznE;`_FWFB$OT>I;o^X-OmL z?O8@fKI!ftyfADtq(*%Yt)>=J%RVI}C;g%-^>#?6rB8o?h#VCP)326?6B;XyD_{~- zo??%nN>pl0d^%X4i*J{B!tBN0if-37Kh5PyacqC;^Mrl^x5PX=w(7LXl+|Db5@;GU z4FOvlh6MrQpdc!sz^JKB%Y6}*87d*AkW`V-k>Y;(F2WN;IE0!B`l9Rj-eAHzt`$|e;06v+h&aDoVw*^4; zQcYsn9iJ%PGwtd})!Mx5ejcU#tQcQ;XW*Z(4AxTgDwSAm4k@LJ zm~Kc(#&Uzu)YC4bj(3t%LQNsV(A8oUe#)$5!SSlbQzAZ95x}GFJlen6Q2o_u8fnP= z4YI{UmdH&b^GJ@uTyZ%iUBIAo(`635MP}CJ9kPBg-%?&%dX@B1w!?m=ya!Ed|Iv)$XB1?4dMN=RCL4tv9)8x4(aq|UoE zS|fek+p_*MbBSWhM8u^x7-~wM)3Q{T3BrKz>5BC@xjLb7*Qc|hITg1eNJ^3vl_5Zb zxFC*(x|><(ygg})A-3bjX@cQ85`+Pr12`2L;*kq}9=bOKT-;K|h>B9Yu$+JWrnF@8 zdWh>L*NJuAo*3dY;vT++kdt7)DJi{^;gZ67qD7tIx zJ*6V&A*NRi#!I_ol&K^7$=J~y1}0r@gEhus!hQNlLTb&^N3m z?D{2_nHln9A{^m0`2j`N7)rov3eu3Gb|pY++ofj`*D&au1=xh!o2|>cy0paVrkmKS z(5Tf-JMEgsXtFkl*2u_?)&{L3brIsF9nA)M`PtLVdsXV&IW0wx^X|iND^Ld{@|K+R z@B~(IX4>ReN8$^XjASX%(MQC3{k6Mpt*ny)6CfGwY@n<>k6yZkRns%aTsUraIZdHG z=_u5XNiA>w*YB(?4S6fsGxBKSKWO2Z)>m*}wm-~eD&Gvq$?53gS6b@vv&Vh9<6^Y<#-Sb@GC5XmVeWQwlnrly=HS00+Z8D)h0oTE}lDpxHR8`72$>@}lQF zlw_5BPSuUC5#gfzne^=F*84Dx87R|$k$^m_M9Y9{?rr5!jH;*0)7`A%7)pX;>RHf_ zc>e&#Yh*Q%4TOLwJk72XHw4}jtW8n`WRQMrcb21+{bS&3D&(DM&1(EimEK+3jk{fD z0|-;BI>ChGVsH@^2~d%^>6HSYe8{g(BdWi54{UC#88%l$6crenLzed!)l6f$GxeMI z74{z*%42c=00k|+{=Oxv;rr`v+mP%1((078tH_hEK3&i&JT}~I&&a{wvlYi&XT%o% zBvfl;z}zs)YS3Fk#-(RFsAjX7On75m-0tmZMdC`OxR#?ySH7strL?I1Wgu;zQHsUU z5v4Sa6uPy$8f2&RPL+Mf_|#;skrH%pM2PM+;guxg@99A!g{Q@x6XeNi8IGf+v)50U z_!32NXRfDjPl!tR~FjrzP5B$ZsnH<5=~woKVDFt&v!C z=@q`V+nUsfX*)gc+*RS+C-ALVTWHVRcx6(q&dqOIGCBO@KG7*qP{;}dcz|o89$Bn* zab?37nc8O$-}qmKtoKW25m?^7yFHT^+MIE+fX3uBmda2W!j4Lll1}~tyJ^aa^7Ha= zrYEwiv3}2_PLj;)vJ_c>ptkjNT82V8_4B4G_22&hj5PCePAq!?ge6`t4)uPWe zPnH4))za!*D?bFF*L=KO5%E4~yhx9AWl-D+Z=H!YrT7A*jct4mD;IKx*K&5=;AUJN zen?7nWh(RoAc~6Z_Pgp8!O+0@P) zc3i8nP;QGnrb}wpl(DhOPTQ?reiR*1hW7oGMAnitU~Fivb=se2oE0|FKK(F!mpUs- zd2{0cIf@?YTyJE!RB$t~^`QByNybjc#(5xa4W6#F*<- zPk=GsLDF{k*Un8lzhuYCisOr0zurAf$6iT3d(^Zt8;q|=JM^> zY}oID19v4tcjVP6O`={h-n4;~Ok6wKd-jJvwLfWi+-iI?887J(Kl46~%v&@&Y<^61W9uyLr5`eD z*~N;u<52v!+CJ0G%*of5cl3`){36M1BoIc`wdbiM+O5Qu7|mzI=uhybnZ{d3syfmT zoha@k3;>;mKFY0olzw8HR!6UZ&i=h?9++*ed&jJ#L*jef6NV(KmOx95sHmlB3JcPp zPBE0$KI$8zos;sm<4)DMr;4H?6wXX&X*!h5WT8cw@^IT7#$6jQD>9Wk0x7nhZ*nBG0ybl=A{wY1Pp5MeY11w|MXLx4~? z5@;>$5Me%tjF)*hLbU#tG51uKRYP$aTvB>q<8A7(IDt@KaL@Vw0QG81Ixbh_eDi~wZ!cfc#7cJ80Eg=aqw9c!w~gIhk$8k)SuZ$bWdjY z@_e#6eeFKoAdJSe=39sKz#*~yt^Ufk@X>2Nx8lASws8fKcB#qBWOo(yNUb|#5aCk4 zCN&vK47}UX7ILPXB?NkYq+z^xmhJ4x7l%N{M(6i zXds}I)g28^UN>B;> zO=S&NeYe{O8O`B-1CMWj@J+?^vlH4u?3&|-8Pd`yO)$Z+z^zrn=&B+&(iM$@U5*vwcajV1x1f?<( z%aL6uKu8PLw2dlIKnIrD81*F98F?7v?#mY!Ci`}1xGS^!`I9Z#$d1Hvu4FbD3(G^n zA#2K(KU%!J*R1$@l$%%PcUP8O;m%>|S{eA(c8%bPdGw8E*WH7)TAF%sam0nEB_$`; zxhpSYH)v_2aC8JLJP-zV*jD(*GV^WC*M#5X&8x+bel^ivJjtHFoO)H9 zQC6wVYkIR+)wWck1#?~KabjN^-&y5dC$;rmSpLe?kKJ3Sw^K-Dxr}?-az4u4S<^+M zZBJ!9PAuG49Z#=BNyFJC6VPh+6n+cEb#d*}f3jB3ryxp8t+<2Krx^Sz)oq79?FWc1 z95s87b7`+=iy6k=aisMLQgkbCQQ|8LPMUICQq7~Zt{j;fQ-0g*;$m>?YV=m4lk2#x zSDm@?Oj;c4jX2CplCs0P+XvrAf_yzIQ%=`+4$JuJ7Y0D$xy-d1*E=gwM><4?TPW7b z-qGDacw#r1 zTwN|_SV%k8ZBmKEjBAv(h}m0Ehd-Cug~$0t7l>_csx8tRYeZ*4TX85Z?56@;N`}2B z0Qgodkt&Wcgm* zCemLqRUt?L^o*1(wS^DuBovyuWi{KJaO9Nmhi|V%Bb9BxIJVNCqCKqZZ~HH&Pup52 zwVr1)AD7YLjAJ#E%W!@-;R!YygRNw)BhM-5FL}1GN|1j^vN7<*d0FxF%iQDU>w<9f z^n?bS?>4kyNj{q&!np4as7ro2;7Hi&jIG&o^iJR!&a<~gZnI(JEdq^#_GZ+tjZLb? z-C>2VUV)#5NoMx33hO9o==DW=M|-mF6zmO^~}OVXXxdJ5YR z)iP<6<8$vGrm|v?1!5o4zh`-*pMOh(^_w~U^)}OJ?r-vY;n|7fE-1Q8My1DXsO`D` z0M-^=Q3v{>y{r=xUe6<$^maZW;rms_7qG2m3UKpdygl}w8?i}(| z4lLo9j;M>B4P9kILYxQn*&3W|{4$?fm5!Npd)nSUlE86o^W_`j&@c?vdZxjkA{YR~dZ(DqmV0L^3n0PN(hw%a#Utf-+b zcaq@PrDT5{>sK1xRPOBd_87;?o}c24x0>Y$ts&JFC;&-5WDM6QZL*E&d2UbhV0|lH zo9b=ev<}03wyKh`Ej6<0Hcv{|FxwYj$CsU}T*GupC*4rWbQJIZW3x%QzE|2a?`CcO-}q%aZ??TRfg}X} zX$r)jM%_tkSM^k+n(CLG$DfJux=`b9n@rbvJcmAQ)6pb)`5vOMcQ*-}IToHvudyk) z9n`p#r&tN~8&yWDgX~LxhyGMaD{V5@8PtEPJhUwb`uqLW2L27IG^nbNA*8(>#Duug z#!^R-`)Z4x8{s=GnQyyniX*C4o_-3HJDI>5iNM~V)1i%f5rQ`gppwB#j-HE8Q9&Yu zhyGAJUCogng`%&x&Y3qX9;+kfn?I^M$KoiiHKu{JiUvyXXeKr6-o)abNmGtsN8cF1 z@2HO-A^sE*kjQaa`Xli)8eSYkNRv|~`AUTJRGAQ+OMJ}BZwhHAVgS#MD;vbjcI_^X zCGpcOXC!q}C%hTr3&hK`=cmk9GHkawk{6^SQjb+(I8NuTE6TnL#O}|&0Ebx9~CUCYSizWE9DZk1SDlkI#N8zu8eT;`MEnf&GyA2$-=f<3zpO( z?QtCUWfy{<(4~Ca1%dgr^g4;$j+ufss@b%XKDa62nB6y zI@@JL0pf8$`&tpNn2lKlDe%Gbs0S1V1p%Z`NmHs@XhHW;oj+{{k&&NKiU-o6%F(1} zIo0FvpmDTh&}jH(Kl7z4$rX&YQE>&Gb3Q7~Mo`l=+(AAn+w81c65(YC);;$&O+p+G zwu=|ZoM_{zA2mI+zLWZ1>i+=R8Lmu`t34buy0A%++*@bIYH8UP?E16vP~o^uaBA<( zr}@N}-etvjlG?HRFHM2ZGazt#egX_VTNIe6-1ZS7(U@jnpA*LIR(!tjoRq*kcvv%CE~aofo*{6)Y#9S|kg8bgCpNmdH-n(oKP za9-EHnbbMI6?UK5=NDO|S>-E2BqzA=15-|qam4JD4hM zMI?@g9wX58tERa$g>8=`QHdPu@v4%OWVj;Vd$!zNPNv~XVnd1Z47!z(_a>_eeH-~g z-kfmS^(|^p$J4&u(n`c33?MGYl(A0Ihj3bVFTo+R|z>T+14o>FQAu zpUW(k)@}Y6=*cjqC^&nHI~wzRJ=^?s?AcppwEG|h0!4a!OugSf$i+33rJD4nT*~>+ z1f=g=Ij^?dbz*N1`_;v1dsr&@ON#=3l=ob8_J@D>%C3rdYRTn9w5VZ8+>hN`VWv=I zBqiNR{M+3<4Q;DUy#8I=vYsipU9Ii&)s@0fW##9*umHg$;CHW6k9o8*thPLD!k{H}J0-O}^UI$908IO-^TGA4T@GJz(!uDkm6F^79p{S|+QG8tfa7^n9A-+T_)&cT7~uc`TIqXbJ-!l^Jc; z_(QO}C4mS~X*|)?fw?~#nog$j-wBvE2AXX;LXe^NVAf1koJ|<~qLnA6%AmEiDmg$) zgMR}=SUV-8Af-EciYqa8p0c$dB#k}_QD57>Y7B+WL3Pa;=DW}~ozL7lRTT}wTz3?= z4qRVUk98n;dY>~zSV_0Xxj`}B@F{V%_0qH)rBp>98AHmWNEuREPbEq|Bd^`Lt(e^y z5K#@6VWr2Fpflbsc^3SCvx8fmI%jwZd~0#zd-cNVJ(|x9Dg!70hSuwEWh!essH9~| zSFS4>?`?ScrqjO)U&;!>DYFBKp`l4!Wo5@uKQ^sHaz{)!0UsL2EH(0~>ejy2xJ~XI zw_N4SZI`9TL$0z^gp{m~_|i_Tm66i0+sOUiS6pYpad?gtNK0_E>xx;5`1%fV^&wuP zDcpHhtkmk$J~jF_<41+*0BzzRxptr6;0Pe8-({yho?2 zZY;a=8t3P?Qm$ylSVS*eW!MF#y74ka_4D| z)6o>eNbkIqD_SxL(rQdPv1N#k?63Tl_Ke<1wk25lvKc@2g-tg5`iO8JXbpSTXAVBA zjGy~;biVqiJV#>Un|+RJ^X+d(j)w5#%G0E3AP$81n$w@;m!s^P#PVscul+f4zf*J|mD#pUOZ;wv6$<+(!LkJ4S{x!`q>DOhosjqCf zM}|G;mEQC~-AC>fzmHzK#5p-xdNItm*UM+O+Fp#<`Sw4YLh}np(H~}0UqO-|ElE>G z_Di*~O-MprY4*!fm{#Ko7*bR{MP(DXdD$t^Z9Zx3Kd{7Fu2ODN7N+=nS{sWvEjo}K z_gi!x@gYY6UR5R?c=GjrT;?ufsJPoeQ!~DTiykJ!QKe@*VR_ zFR1is@%fj1H#k4xLDxl^MYd6j=;`jS!AbBUh`5a2I?zkz1`ws5f`TkY*0+nq;l&;3 zJ;e9O{5xTlc%8cuQ;?DGEowMI2kR)&UnShG67F{yHyMi8DqD(q<$jWmcJv(u1Y(*7 z9qBBkUR>s1v}1rc8Gsv)@9 z(pBL=&ov2U#1sWBSkk`~E;vMM^8;7!{I_?{njj2i+;}NcT;IA zJqYxo$|G$BAxhK+o`b~vD8!&q4g}FoB{W0HO+foe+*KN$98Q$TUy^ZHOKld`wEX6; z_}-%`uGip^`n4I##ts(lucFq&;%Y20-M4Uqmu?(t=M_4pT6H+I4ys{T=6`1y`|D0> z`nvF6Q>V@n8~0W|2DH`P52-&Td-Kh9Z*_{>eCMOx6c}tCrRG~!{zD+vtlgWi)2dtf z_WsZ&E1HX|QP6kgFrJ>7J!_g`&qBWLJppdFaa#`s%DQvXo~bDnA|<=BYe46}ABq@T_)ZCd@MPTxq9u1_F;jkl_ue0m*d${My2^lhYW-jda@64>B>@{{UHNI4|;hb<2Wo z7p9ROB1uq)oacUnK9#TDOQYP@o#)TdS=-lVu&oWlzFJu2MNT5lKE3dC=U>gmOreViq%-}rrDm` zeYL~4XqO9QSrOH#m)b+EE6pn!hwZM6IW+S581*|`X1y-Bmm;%>WqUoj*T2=ItL_!% z^QUgUB{zLNW_O!yZ71IYzCBL=0KTxnZR468s_P>?C`Cla5hZC#HyhUuyS*w+x*}no zi80$J6EPjPH9(k7k>syWjb~2M-z*Y0Am2Ygy>v#K&Fb zleT)+oxK{ypEGe2yvyyyes8(>xT9T^@Zi6dd+AeS3-0&7$M@E7!cb&4kfzSTTc^=g zwzAb|Z~GURv^jBXd(Ek*ardQPvb`QG`D?4U-0f?T0UpXu6^BwY^t?XvUAk_VW8X|VJ>m}k0B+O~FR}}glIR1LMhBkM5L&z?my+Ig zS5J*WW@V{Ksw%D`JE!MUuO6g*hXiJzt8r*;y)C6Jqw1spKMD#-Tf0?3KI$!&HXNTbwAoXTegf@BVRV(r|Hyn;A;B^B=O48-%oV)sXy} zteh`%lX~I%{kgaAcDFUQT+Z!hLdF3A=~(gl)y)qlF5+KBPl|oA(i<93+?)_PY2-LD zQr@4Ix_bT;7wcC((ZsQmkX&wBB_STaHs*fZ8t1)t)atD3O8z3?WZbNxb(!*q8`YSK z?}D^@$Oo!VfcRFtxVo#^o-C6S-O6tKCB#!oE>L1WCNW6ot~-3~C%~yADjRxNCMrzB zs`iF`)l7o%Y14%d1tmy7ao)3MT#FW`T+-54fu&yQ)!|JyMZ&rB)zx7m(|T!k7XEPM z&iVDD6tpI>64_2gVjl_KqO74OD6APm4-mArml@>!Ag0y!VM36@EHoXM$x<#+<*fdF z$056q(nwN%^?_Zye%AcFzEp0r4!}ivPaw%j1dk620V%2*Qa9d#vW(FgjywKJO0i0{ zaSZgsi7X9zTnT%+ps}ELiQPU`t2L<+@lKwnviSU~<%?jX+R^sx`F8!o_V##<{{WEX zDcd_MNr?OT=BNM($ijY>d@IhLZaT)RxqY>NWx3hs-e#Iob@`s(kM6se)}`o*W8te!x_eGF87XvcsAq4! zv9;!5mO4aBRW{~`%_~ZRPzFkmOjjnIRTTCsDB_5+(KFi=;|&z&4W*@&Ej#@s z5ub)U>)he-x+8PuUpLO>`^nUNvHe{UdXS*8)jfZGcRc8EuGeF6M+@B9;=UMgrMRjJ zxI$J;c`+VV>2V{WY2S52a24fT*)sdM+tJ|rJ~^2q9`!Tf$@@a>g7?LII-5M}V-VY1 zggwq>#i*WEPMsnP#<;GdmI{m5pH*N)Mds}@|r#nclmy9Y7;n`nl>|JBC!yHWL z64BkY+?IX(Y#MN%r{sQ@#)GFW64*Lb_8$X8LXy67;iUVm``@kp6c!O941woGaj(iR zibIoN@U(U15pgnjAL|w{$`8RLtL+pVZ6bje(t;|&l%SM?qILjoNj?IDw%&L`Cj<5y zDh$`r4~V$A=<(*rUi`Mf=X)^pN?Y%GpM?h-7WG@R5y@g-EcaeXB{(BEPJE~r=KhHr z?r0lWpf;TD;(}eV@`**i2M6LS&-RWz(|F1BA0~17WUuv({{Zo|gRC;>++g{q zYVo4e57M&WrcXc7(D)APz;@mrO}Nau*)LBx49l!%vdiONbS;t=j3GTT+4$G1$L7)_ zQ`zud+5MR1Uj2CHFCR}6{lBZNaRiHO*WydJUYB!~Q?f_Ecu{2#iXlL)jLv~T zX~>|G(`$K1NE>^g(0NTMvxRJYs0}HglDO+{PN9uy3Qxj=$xRUQQ$Zo5_k}^Hvkfp_ zKUm_imfEguN#E0{`zlL1tOCG0_zeB^6>n@thSQ#>zORX>%Buw^DJM|KBXD{V;C`XXYnp4RdU!H!7M+gq{GJoPzZFgt+iuC_Iy!_t zGs$xw6QuedO2YNqs};Isw&1Qa?N^IC)8|5s5^?v8{(UX z#}^xOw#%E)-QSj_ATQ4qy~(XgGLLqNAT?N~*?-Sf>Yvy}XykmYn0&PpLFKmK`aiq; z4SBS8+;N^sMw7Zu$NoMQEel&dkL*8+weXBcOLymOrBO)E`cu1q>=9aTJ@(reqSe>Y z*kaz0urpgLndfBU=yxO{;StEkbU2a^z=~wIQw(1O?aZZ)(W6ZQEQsx}T1pAZ_gZ_o z_j(ar@shFi+t-Rk{+d?~0^-Z#?>m2eZLrAhw;f*j`q}GQb?d|>vQxy%XJX-~kXdBz z>#Ts3IO#4gAFOK%_i4?W(ibx%x1#`zis+XeDJ;Fw?UZv`EcEczin>k-4lP{}3Xj1% z(jmUm`P&X$E}94DCB6sRv;P41S9ErVndVdYnj%+!pAn&yw(G$O^l7x?@D-IjF~633 zJjU^z$B(CizRJymW7zut0P?0oKhh$sD1MV_N&T6w?i}~i4_D9}IdM#sN`kGPx40T3 z^jvK&Hm}DYWqLK1+RB>aZ$npE2?GtdvyX#=SMR98W4funWDX=|PIM*p1gU-jN*Ydo ztSepNr!9Lrt(DhMq^-x&tbG)ujs7H>(BxlxPNDC0prYcdXArvs+AO#;H%byt-8NAh zZJxANWqd!{8^}Wv9u0HxmykxJ{cXF{8ap=v&bI0H+mo|WmGe@E03>+n*VKv|Xk;Ne zGLer;tW?t0F-255?FD11%E_RGcw#KrsDU74I(6h66zS-%#y zHrt0TOXy{(BqP3{4y^YG9eUO=W~$_fl}*XXyb;?yr;6?Dmm*w>n3owiPO?#@#`177 zKm|GR6|V8!&&bE!^*CB&Cf_9=n|Z{zllmp4s8+dg(mboAL0giq%L6URVF?4xNNA1z z@mOoTvflKQVuny;=~vCjS|y|((@4}QNYg8KR`C24S$LXMW3*XHTA0UzRIOPjj~rh(TFqp3b^W#-Wgvzlyo9*7oW@eqX;4;FqqTKwZg`pWeA9B`HZPZ1 z4;yF-ZKW1SoLYWPmB}+GLRbobJ) z4^du?IM#=cn=EPHVNHuRGGC199&JP3LCCK`lD%zzK8@7Xs7YBOOL|t{!w`>D?!{tLy&&Wb$x*??)n$H<|ct0M9@$zdk=2@%ViF z>+U+TcEhPSk{gvs%@=M2cJoxK4b+68~ zxb+?)w$@rL3HH09UT1URSXzwfbhSJUW2Sown$|H@6r#;)6PKuR)aKzp=^*)oTRP>9 zG1qMhY`j#&bgB%GYh&o8YbjsD#Wk<0uFrFSPU{$aX~fp}oT)J1?rq;>yN^($>e{fJ zb(Qy)i0=}zjmMVxPRD819TQ#2)P~P2fz+s+X{;@eOnTyfEC*~{ZzVw3;HyJQ1KU;( z;TZra#J=nLda1)9VM;!|+;y2ICpcRD_h4OJynmq>k`b;~qK9O)OdQw{Da8N?&L%qlMdLFk?29N^&tAhb0nA zg|IuI0fe19XEmmnt67<^tI*~1^X9E-mS%n4^}jvXG}gxms1r0DN3;If=h~3nuZT+L zTDC)S{pk!2o$wprE0?cA>CN+RWO z60!4T^zW@_z&1A-+ckvbj;^0p=)q~HU!*iYly?$b#lpvLi44qQGj2_iUh}|df z^u3RgY0Jkk=d1pEE!a}jJL*VZhg=`wUKd0^SN-Po^BeqsZ$Hat30i&O_V`v4Nry%* zU2o!l&%xNUP69o4en=(H%L{ofOKa=w zmj~Uk{{W5a(8KK;$Iad!9qm8Zjy7M51pBLfJlFfj`Prz6dAHpfE<|%Ad+0kUKM`KO z9QDZ`3-fRDo3$&kCXoqJk@eh>o#9!i57$6b+F@ zHboGiR>o%q1AtIYw#rmV2z@^KNYXq$+AJ1R#rY08pfxQ-l00)!Bq^#M+~S~dB8Yhj zppwda!h=h17=w?js>QZEF0IMJ7JV`I)Mp2WePKUYSfVscr9#XrQqHV{&C|J?W zqSGj&`O;*mq`BkEQ)Nm|-jQ0eI`~uGTvRoyZyuQyrRnMP?_>~ocaFGLJL$Qf1eLjEBOBE(a8B*F?`L7$kfu)<=*?c z{sz3Lm!&b;T7~FdK98U8t@93emal?1tJSQsd=G*0t}hPxtXZ;yJ4;*c4R55pyx4o3SY_QkH0Q>!v~7oYPI6_jjZUsY z5;4Dce#-8xD;@Uaj9D$(B3ZkS64>Lc;rt<86ZTqKDcw(&gpTb6zcs|<082x9&ER9 zrDO^s^W_NfqZeLSN)R$hs56dsp~Fd84$0D_XGsXw2>S@FQ<<_c%PDp3!rIimZ6!sN z_exZuk_V5FtRpP8dy`Cd@57TMH5sO4s!Qq!ZIm*ll@sJf)wV9zIHnpSa`u+Wv?;ZH zRcvcxS`)4x8X^+bGwI_+WbYSgN#X@IhSsz+(iDWC6R{c3m29NCG1?*&cPpx<+*0z} zF_+5;TU^8~M1prAvUK(7n#-$YFEh3EmSbsbpl9oE>DTbA;n5PCK1)xfY^dccNl*NK z2CB=STVPyf@f#Mj&PA>~sR5O^!wrWJ3Br`86{~+*(=~Bko@KA?Cxqax1GXP*_Rt$a zit5ybOD?2$R8XBNCnKm%^(~e)-D4+JJ})g_3U-Zm;f@5b+W4~1IX4)H5yXI$ggV+X zmWk9t(sW=PrnLLVJkxEIUedT}#5^RTL=@=?biCiuAOnmNRsB&kuvf6G^WhNnvpjlFg1!~WA2^~~P@E%pKHD_JC z!#q~*`OmgKJ9CM6fr*!EMChD5Y)g@#KHgES=i5rc%bnzBPzO)d6}Fe$ZH&{WvzYMJ z)bxGlHSBRRbyr@n z^0|2WZNEuscwe+Rwl-OPYmA$WW}ZWgDo&8-WMCwx1cfN>onAe0T}}&AZ>1qVxiF*1 zTV<8J(i~Gt>XNjAQhi2oM-;%+D2B+O=l!Ynj;;}I-5LvQO1fMg)9mjPgt7+fAtW8u zfGSMsyB02|&pbgT=O({$kjob4WV^Erp+Te*<&_hU8sN#nrKf%$X~X@h?R|RA z_Kd?Tb;N0Pry5Zm2UeU1_8QK0D@?YlRTq!0Yx$O~&8gLmJ7m_2QXQ4#$R|9A zaowLk9K1?`9g^AC+)4>T5k za^eIwkQ1B?;Hzx-nr$Y!@~gS_k;nH)ZbGQ~azuAhYfMV8c*6}ORtf|JxxN+>-L!PZ4w-8>B&j)N&Xd#eVeZlZq|!U2~CE1O4Xib+I+s+4>pmg zW~iMt5fb8kl|@L>okc?jRyV9xO}3rtu~F{yKG_FT{2I_0KPAj<@+T@mI*aeJ;xKu^RHh<%84OBjsuP&{tUB z!z^*%rS+OFK&N9`Hp*}bR~Ff9Jm*BHXW^Q$Z87%~GpI?vPKqE0L#Ze`j2hdYBx$RO zirso-ZQMs}a%)XPk{y3gONdT!g&ce*69)Tl2fv+AR>CCF!K+2Q#PTvaXiF3>xWze+gS6pEF)U+&1t9E6@#mMNh zNq70=aD9zO{Ub^GKNSAT=F3l4W(=N=nC15RxS=-bA&2pRrKehc)cDq_&Yd==Qn|a| zX>!R_@Ve6&1f3qn~>UKWNFVopp3Yb>_r8 z64NX8o88HBK>90IlxOuuDo#oCPxSox{G~&SVv=;lZ7OM_<$?BAt3=0^yXK2{N}iL; z*jAWoa=z8Be7I4dB<}Lds~(BiekQu`*Sm+4ZpuCoh@k`|Y`KS9hsmVuKK<)`nknGz ziKMD~ucTmRNgvjGNc5nXIUv zARHgMx8w5?*VOuBirQR$HQ}8$ya0m{^#BxLE^GSHvh1J~hp1_j#G4R(AVM-MKN_eTM^$I0BnmPC*Bu6|JpH$F}Yw zy;~e&-*7QPJKTUbdmlqz(X1~Gl$eJ*w^}%1)v3Fz$!xmb&L>xRD0mPtS{;$4o3D0X zYlWuY9dd3bAyQ@Iu68I-c+o7d?Ee6V-;s6~$C=REV2H^h9eitLYUas(x=PWE`PSx@ zbfw~gsZVpB5)=>^j*=8qD zr|lzwtQLM4ZgrB{%pnov`$=IMRHoeSWoq}8g=4K|%ZZkHyZW&dB}>LL;11)cH7%1#Y?@hFxK2zaNP#bG{IVuH7= zY};-Z2?&MkfBI6JdzYUCf`As^UWrnH^7=KhjBMpyrE$gH{{VSv>2g$tlIu!p$I4Jr zIZ0Zsnj8+ry z_w*-r?H*blF5s@u+q`_EXR$|tED%DO)&Nl3P;4kPlkiP(<>YU)czQg3Cr^3rDpXrY zKJL}ew_bxH+(!7tHfXFzAYh7;X=!d_tzu~}k@JIU#h#O+x1`o0-a9FAHG?Q&`(;ZE zaO6aC!sV`7S0BBhNadvKSUa3<0r=N%0w=HZa&u-nKUXPwM9*MpF54omB=_2hA!LW2 zOqSKmE&=)0)aG{}VO=ZMc@Ly}H0=%B%cjY6Qrx+=9a9qhoU(_I!jhK(9TKz`0MmiB zS0+q)Z`XhcI|0oqiyM2XjF50+EqHVxsF5HiLJ16u!98mtx#-`mE@O@kkT-npz zcIPre-jM0a$sIR76@vt>tY{%Mp2f#zHpC+^y)4ivXUZcCEE%crW3b9Jq~lo1)7vj_ih)YAS}jLaGDBSz>ukL|*ZO(7wX7)g0WO69k*5)^y@sf*el?_X$s$IiOA{*m&} zui{lI3vF6f3RFA|dR4ScZah9CHXGu%P2y{4^pi_)lY!LMO>rArN47f4Tl?pA58Yf5 z?HX@hkFLr48_JAvXqcO8y?kr!zaQ}N1t&^|4R+S?Zt>mn`S|%T+ovUFw)?zvl#oV2 z>sd6Z%O$7Om5pf!Vm39;IrTc1vya(6^Bi82&Xr4QR}Rn{@UAIk#7$_KNBV| znmY^RD2%AR8&Va6mh+UKzk1EgWKcZX_n_bQS;CVzw(Ba@3R_X9GaSo|9?q8wYD!d{ zNzRjn1Jby;d{29+j?)jP{ha-vjt^BbMB5$yo|FFoxO67_EG)*m#^MVL&&nDdwMvfe zfU*vm4JFR|SswBNfF~Zc#T;3#_Z|H;{a;a&+qm<4xyO>dJ>t=5-oM*EllGa3^=3Ge zv(5_$w%o1Pr!7#gO><$#n9Gj_`D!gX9CfWn^NBdXJ9VjUp3}b4%M5ZY*G`VB;+;;W zJMX+|Ctja+I`P6hL1}5Z4zigr9#WAWd_@P?aHFV7lhA?HBm?PKOgbr&W@bN%JjaQT z)BgN@*{i$G@)FX)8v19(y$&6FZ_DGqX>&|kG3sj`evvc(03DkC2II9o%d_3w%iios zYWjXnto?5zrfa?1Hm}!L^zQ}I*~*?l+;tG6hrA0RF+fT6h?+3 zPbC$LY%UR>Wc%tf^hmYin6vN{O0HV#QJLhP^%zMmHnuKy=@$7P=JMMuJNl~YP>IyO zOnNi+>($EG`(!E%hZtJ1w{>MB?*k&auUEgu%hdEsq?!IH#1~NVJxglo{b99X z9vh~0ZNAgt`|NA2t|i7I^+uS|9%TNC#(we8*Cf4Z)uU_PQ&Xb55%NP%B&9_=5uYls zY@aD!67-YkUV`Y&qRM>a>y&iljR zT@Gn9O&Fbm=Pqn@{Z|wFYaEff&*5o56gMxO1+{r6{>p!ac-4BALtYa2`ik55R@m^> zK1?hrwd8nKYXi&&*13jpF44g}X&UhvADpgpCp1Nv$G z6ZlsyOnQ14b8qtArIpH!^DY+NBf7C#D}6epNbG(wY4FREoX622Amn-+S7chU<+bkz zf036-?uTS^UOsMg{A(@!8fN|b%Jv5iwQh~2X&lqmxvw)U<0sKubZ-y(&3uWc1&dM*CN(e;ZzQ=NDxK#nx@STA3{@ zE*ym-Q)@xWRNK2R1Z+oI!Oe@~!>?FwA`L1?&gdnQeLd#QZmhfb*?Q>`eb7qsjkiD+wE>UYKeAgZ~AUqYFd(xfZ<9BP7jc+ zQ5$pPrvCsgt#6XVq-0?Eio#)x#*N*3I^nzdOOm6bou-n*K0)?1YSY(r0K{a+3-}?7)!oR}SN94XtW?>G!^Hoej1R zkoXFSkH--2j9VL2S&Kxsv~y+2NDgHE1_0FJ&*>`_jF7$IOI^USq^VKX`WxEia7xg| zNZ$cTZD-?IL@t>w)>S&yz;8piToW!l*-f?#LZKCslga?_5k9Ykx%>ET^*J^sxepLbR4YVB;Y3(pzf zE@2i(jEiNl(%yy0)S&8ygz74B1Ox%U#}w<0>(!$!IhgRwc9Gj<_lt{=AZoSP4&Kg_ z^UtULc|*hW2Htt3%HzWo{JGAwrwK^O@B*W8h_f`lv@gX(C{agq?=r)lDAdZ2!@Qrs z&<(2MVn|D!M@6U2KjBzpr&Km#$3v{NQX)ZRcNLJw2ooeaqQqeG$_CET?8JW@F zs>FIe>WiVdV7FW&=#t-jdygk&r{I5asqZEhaYduLrF;o^X<*yurD;2ayb2Zfr%b4T13MuU9Y0uGD;Jp6An#TScxYMka z{Hu|Q;Fs3W`fCSOP61fAL=Q)mbYbLcwD@@b()K^R`0@PTPp|&Nn(us^#-~%{qOqGq zHd6*me6^YV4l**Yg>dq7`bUS=`xn_!UymewUrF@;0NTlx#w*OUzT*uN(2-iD-%6iI z6|P-%fh~qzPM1&?J!;b>tKxLSk-@{BHI}u!ec;npyL(Ot5XcK14(A_zZND!qqfe1DC5{9asS`&s!fx4&nyaBaBwu}_KmeW&~StCXEfD)X)^m)!02ygo0x$6Ea% z?nPnN=(ipvA%!S+SHF?2{2ZP3pD&d5x3Om*`k3S4^^d3BR^oKHr1=snvGZg~yVM;A zu^Y+NdICH~^^NPc{yuMa zZR>rM6L>wRMr1%@YsG11IVnb#TX5=m#cK;n#!?OodCh3HAGY4MFKSGDx3wc%pFQS2 zSnaKUKMak>gSeIJ%M#kXX@zW(VMby2tcDQkzyp$oxkx&cu$@{^bI{iR}|K9{CO+YGZvl9NBgFCJ|lYE$JvhUH-~Jiw=wdwP~zT~Elj&AFm$rxK^fMx z?oyzwjx`@z)0#Rv{I=hidS1-5a%R}(CoT?+^xs>F{{Z7ZkN&Pj#hsg7Ec}-frP%V? zOYxjSwY0RW{ad{W9SG_xqMY8I**$$@!^Y))%vUc}xO2Xl)Z@2nNBQZ$=CR=pF?GeJ z&v+#=$96mG>c7xm>G>a}@$2c*@h^ksaP5lI6BAjFF)d5Ut&cqw#?V_)D#C^|r_O>B z_NpSgxy=N13L%vW29zioP@r%M&5`osi%Jrsl%Qb)$Y(SL-*s7_ko%?gl<7!GQO*)D zKEXlcrigVZpm{X|sT2|$PDm6IlHQjz=RTvQMQCHnN}{2yJv@ABHf>}70HP!QJZduZ zO11P+^E4{BXWgjG^ElPL8q?#9(TkGyi@}B7G`XdK&kK0=E zQ*NFp#TkQIZ^c{wY-~O zV0i!v$)aV?`&fe1{tCLrS6)`MezJEJooBmT*R$iNec@ejd$df{E6$wo;-i3$MYDN(|cpMkA&4V9fs=$;?BDX9sCCn0@VQnu8e5&FsT6~TJ? zy-MHFy|=uDEP7T{^5)MAy(s18yIxe!c5?M4hLWvI0<>NoxLm7_xY4*axh6k;K^hnX za$H|^I3F5Q9_7CIH4GOBaMO@udsO7&ORCqUU31}|hwZM5+0Txe^7Y4yY>qnQ2+}>O zQ3_6$5>^4mH&?s(*4%u1OI7(4g*y0|txU#ZE3T>I%Vh|`Qq-R25|NzmwQY_(wNEA) z{v?kr%ZsK;1Y*~5O*-RTz*E#{3MV=6t<}RY(UUgW=Tx10bgZ=2`X$Fj^YUh1JIjp$ z2knI*1OCb@x6U_LoJr=|%RQX%gt*}H+k(qV&s;drU+o5^9)A-5035?>W1M8$BRih* z(a3QB0M0e;pR`uWx;V4bdsFp??PgSIDb*TlYmWDycw}SLZbzsUot@W>!-H^( zPg(mwl>yVK##FTJ?yFiunfrVzMSDED&qbZFxhip#yuwN!Nbam0f;^97FzN8 z#)@s0lG=8nJhy^D-h%6g9lAql(1__-mQtoxrxFk_Ja;6Y(I0Lp*QTtPdZgbH+%KH? zv6AovEw#Smdoq$0laL8gk^)Z3`1w{Hb1bWdu;#8RTuWuj=8qPRUQIlyCs}n$D!bsjZmu-Hug> z3?BagDO%I&2_KDQ$Onb^PVDf0b-jlr?0M=y=68Bz{UAMds}nHBVS8lY-XDR(EpYm+ zjK60=Qqq@DmA17lWqOZ>teWG`)fVb{JX==P>6H!Zu)fZ2gsrG+wm5#2Ckhk&g=$aS zDp!?wY_}4U%t-v3ATX6K*>zKnbwhI77(Rta{{XvK<>chIiPO~fRd{%9yx8X_>)ZbT z_4WN+pNu;k?Hbu~lO?Mo(xMLedM1~LP5Y=i{{RZ>;%1JBi%)k4w<}BXt$Z>5owYtS zuHE}F>vd)nhF(gL^IBF=uu`F<;N%_p8tr(B@b8rc?+)<-puMHe^mU&4e7{J3`qh^g zSLM-zKSceV0S~nMNpT7bLWWYI(AS@*trpnZZziKH9poPhi=~`46rq9k*1Jn>A#BWY z7t_NP%`NLFOz95Wp+P8IfdDDusl5H{FF@y@yX?oZwbxG3Zezjq?>sMC%rLw(+ zYP3BZS4u+bRKvQLJeAfObk^ezRyu8rf(}&EILIz#G`{ef>7%SG(xjBDaC(Z$yM~;# zt>dQAxRp!sc}{J*54vlrx7)(c#rJmm6Gb-1q3sme(5sS#ht^0qCu3gT3-wk$ugm?b z#++I2@buTKw{G8}K6kCpIicWLMn4$Xo=L)yJ~2uE0Hp$nY3%z!i{ou1A=b(O+fsYO z_|?-zc@gTek8zCn`KMC9KzIAP)NhMKopY4#j%q^rY7Qe%&K8~0q3S#-rd71ZhGu67 z!MHk|E+E2NyveZMX)Xs-l2(E4fvY`nk=LzgwhjIst{-a6W5>l2@XSuN^q5ITGGS^mZTK2fVazPO8$ye2||u{IMuyy=i_cQSJitf+kG~ixubCr8?;BS zYVI}tW4DhToVHhI&r6Q;Q@KoBqpT$`BrA~m(yw*M>o`jL+ia@j#qTlroln#1`VM`# zeAtM+dg(Fq$MDb6eQWymKNaQ1Wf10<1cpZ~#lN!3ld;#+3iHi+*nOc{?Qe!(oqJRE zGd?(+oPYIk{k~}ZJ%3N+alw&ZgW~2ih~j97t4&bXB}(^3Xc-Lxy(`#wpDG}(QP^ej zmK^4{_4;q+j!{k0{t9KKTR7Tq4z#@A?(NHAS+On{-# z$C!~JynF+gtrmx`$H}^=QHL7*4Pfbx?)BJrYt1~C_*01F0P--4RQFHk6X3&&KS+H7 zdi3jBa^v-fP8{Bn?N^8r-iQ|odL%WwY94>M)|j-z(&Oif{L#2!l>>_2m{#~(&Xeyt zy}IY6Ww)pQ0OYaOHCWU)Tp?$jA5@9!*74{(6Y#8FUoVx{4I;p*^R}tDNkd3dlyC(W zE4C8qRdjJd@AF&`hW@cXNcs-}RvAm=t|)-3efn%g404`U2cbD1w!13xuN~D!vS1NL zEoGYKk!D&{KwNNAoc@=&`)ke5i~Uc_(8HJD{50Ghz|$w%-sc`u?;dLjKSb&1zt%N# z+8VKKNa7ug`jD}uXjYY^^$JPG5A3Z?=?k2JcLYx8TEB>w%tn8)Dp!AE za~`QZe#+S$KZcuD-;h7rM-rv7+M!8L{SyBGg>Bc}qhDo8-r}pcF1!5AgY=(0{{XSE zzu$_Rh-cGj`zo$+t=711&y-8bjFRe}U%jyU1EOm>?$fAaXo|+=$1WGU{oYHDzUrDp zwBa#ZC%D&wf304akOs19)z>rb^jo%t=eaE6iUdZ^acmfp{1 zfx=dkbSF3YT-flXr~)C!j*p*^gml-wmi=iFrJ37`-lzLr#n-|#vz-hhJA{uj;-l3^ z#L*GoaY;&2q6$a^9~^p`$E9}q53rd+@7a~=z^|MDl{&ZPzLGS4gvHIxP{{Y#n-Tay8 zy>7FV;hS!Kglyp))<0c6;6Ct2+go0g&u1LtC9@t?w~XPOrH5mCW}b>-SEy-mG_+?l#n>RVpIPX_3^V zg(b%J&Xd$AZVhwW%bNa3{{Rl!)s-eX6n{jY+-flk47SQSY_=O8RU;G;=E!0@Yko_K zVmo6lI^hUHN2xdz6_!3L;hW>K8@EqO>52z6#HC>;KSc#V1uJg~#@5i*z<~Y1;LHds z_BQ@;9MvH__5T3Q936+D81=1tnNqtJDS74GBpEWIq~gnJDtXO7Y?A2Yw3Lq?fO*sy z`~2w>BD&mVA-Ha}prNIVfOd11t+fnyLjIB5ZB}+co3E`s!ldlCN%xnJaXHeFSlR=2DV$`-EsF$5iQ(qb5ZuWvt1gkU)P9qP zuaK!-{)32iyD5v89o$@%baE?=G8U>ihkdq`qrS=LdL6S_;J;K)=d%t*IIPFlUEQw2)w1nnhj6zAdn4_RPOp0i z?r-aq*NKvoTTDKS7Fe|+RwBydXx5&BwdtQwBsk|MmO9pO(`Z6M6vN3^iL9nmrFX;d zfdh!p_}V zZN{ApL_q#W=6k#t%Sz6rUn0>vdS3n{7R*Yd$sRcYB?Z zQz29ircG4RuKmKiEyPTguQtXe0x_*=`N5wj6NQhyvaU;4#I;`?ZRN=Lv+`ZCyoJBQ zw+A3U)iC9ra|h5kK5;*8YpR^t{wF2)QRv}ZO~QOj!n6H~`w4L!{{Teqywiitw+D4! zw!7()E#bp_b6+QHTt@s8%RTlFyx;Fnk*soJ>io80&oulumbhe#Sz?<>o|SETV$Y{2_NWACcS*A>KE zm)%MTN`VT&>9>dDLrk;LrAI$Hf(O>>KJi*6uU47iT z+f1ZM9L0QUrDx)l)>T?<4@(u2R5iD^QMj#8?X-1Q?gTlCvki2}l!rz)HLhyzrc;6H z$ECV5j6GQNwnkwGYIL)VqUO};W$#|*)#*L_eO~6%r1zn4g{MjTDIJ*Po~Y4)n$61< z9-5nH(h{Ev-GeVhw)4HI?D*v2oPNHalR8j(qDH_{vsPu@Azf{kSZSGUl+?(sd#^H}wEiA7lZs+s z!}$jzVmcAls~wfDBD%!ena*$Ox&HurtxY%Ak!bs!wQ)KEgKIh*@;|uNGY-0Ci#09H zi#dg`?&x(T3mM0CLj+`QDoi(0(^=ekhHr@YHVc-?9LVD2!cnD|uH(2=q=NBY%K4<_ zSweyM*Dg#QzOQeG?OR4jo%^}b0(EI%GPJ)zcTGF8e-)TA`q zg+ofple&|QKpvIDn}y%upXU0nXMWR6(_D)A?Yhpl;&=Af@@9Ct%@)xTB(xwyn){A5 zD$pK7$VV&#&1qVc>Kk6IlHku>>l*THgI`bf{{Uv*N3ihwTdV!i5jD#d)Xx6^hViJ2 zOnqbQ#~b86f3wKd9cujAoWMf=098Pd_8c1aaB^vuH&^C<*7gr4gMOT`_?YoOkMn5` z3f}QR)Q4lNsk5a-5s~UKLuiifbBt%osw1dxK+?rUIF#1F;1mxcfz*l#Ej;QHLR3aZ zKOEErxj8*(97<>;WDt-B2d1jml33ejY(MX&1i3w#Vw|jy2VzW@~@e7ipy#$a12qGyJGH_bxn6d zc4T?=SNK(Bv=u6=8GQBIg{Rp#trJi%)b_P!{&BsP_z_)L{5<@=T!1zJJo;3bW3}`S0cPEJ-fMR@QKypoXj&R7>V5srn$eRhZDG*+omT>&l=bkv>VGw!%kr`hv{?+`+R+C9kx|XVSV;pON}o?h@~rS zcn6`#I6G`{TQOf#w9Q??zCE|5HQ-zrI^$f??P*q(Bo!}pjnaXTN%ux8t2G?hZ10_# zmEE`w&nW(IG09)Wg%-c;SBsXv6us;@Bcd1IC#P9$UiD!Ov-MZbh)}Hx-^kWXP|QUH z5Njq9!*K8^*A`ciRE+h{{RaV(~#RpI=QYW>Um?` z+oD187_Uj?v>lekM-cXf?J|y~L1&!9eg)MXDJS)4G+nE_8Id*vT9@qJ&1zw^f~6^L zC)%DM4;3h+eUu!I<-=|<2Y+4B;1z|dtPQYTY(~g+6)%KPGZ)Xq7U$j|d z#*o6mA&CxqJcJx>l?QMR{wX!BRg!oEj^PmEZPJdO@OCP>sZXdZsYammz9;QB+0zb0 z`=VMv#uObwvFfY^tL-!mwP)ko{{SVKNw~?2s9{pMrL^bieCKw9=nl_pw<{+NwE)Ku zqe_~~t+Yc!+{Do1gT2W6mfxy$VZcVj_tl}=;kA_c~Ci_y&<4LTe^B~*h*8e&P`pQI9~G9 z3xelx_*e7f{Ls%e=Sqip#e3a1QOVk{+9%tgBHZg&+tj3o<#*z+r57Z)6mW%W=+IH< zcR1-zkoDJ!Eih)V9*ot%w4}2Q4doG-aeniFD%Uo*Tb$ZPm-l0&Vs<%2yz} zoi9C)e@Wcq7zENIW1)-0n6~Rz4<;LuHbPi`-co}}-DG@gKd|}Jw%Hss&uTN%c(&_) zJ8hxV1+Aj`%Sl^qs~agJI&cQyb*;6I!m{GU&xyF1OR~(572ArUrYlm9B~7TbmdaW! z>l#}rz#AN5v5)lW_-vo`Z~1P!ap9OT_ z3Yx5VVS7!da-9o9>6rWE7adP2q@Jo;kL*q<)!CLh_g`>_520yxM4^*L$mlj;xG!$qCw7laLc`Z30L1; z*tx!zaAo0twZsu3OlOqZ!kT%aQnV{6T2wlN(1I(_^5E|c4XceVaTGN#oR6yR{{ZcE ztvBP=e$JeH%h&Gc+&{$eZpZ(2i)2SR zPB@KnT~EFet&)VF0<02EXU4%6_@$?x%9{K&^1vwC?q;)pg>^oXeG>(Dkt7PHD>1F!b?V6~$?B zL&(nUG-Y>ah}NO9kpn%_0;KdihiEoT9hsQF^E zbIqsfA#mJ}WnSHOqCN7nUMw$dj?`GR$En0#A$aReYn)V{NOj}(ha#UYOULUeY)p#j z?mUuDf!NnRP7No=XSKxrspR9I^)-?|l>Y!Y{>eD=uO}`!rL`~6I6TU7aYjmbpXv4{ zH?3~18GLDTJ_@gEgOjS7`ad)Msp0#sS5$b(8~uHMzv{p2=H`oU9$2KfaL2W_%jf=W z^U7D?y6k+^#@$D?4i~-fz16-T;Fzm!aeYnRV@5$+Pp276jz><%rsNFoSvhO3mdwol z+^;U7xG<~=Md?Ehq1|f%U-NAw2Nm|>ok#BR_3VJFA8edNHP4o-Y-c`#mLu)@jDo+h zMxEEI9a3yPlicj`y|4L4BtCyS7)S|UqWPuZue4RuUGv2HIvgwI!rVX$=QcW}U4Fw? zOlioN`?Qd_y%!RgnCU7ZhZw|FzlvCw}(Kt!L-k^M~v~;p&HfH47d!x&kH|4AFJ_fvt@$zx+)g9yf z^8FW$?T#O{`1Zw<;l8`X{{a60Rs4T81B7O+_%23S)MAj9&-~hlbbXj3;fnf7%kchH zH9L=0!qZtfQPe7i7AS^PDk;>~!0JUrI)uMD$cI<NkfZmKE1F$Yzfy`@YiZRX#VJI1s*5N=e>s6wfFF3JCbEcX zy_|cuQ_Y2JbaX?@N&d2S{gu&;#c5V{P1(h&=P8Tt7b}y)jjJt2)uD3LorZdb^Vb`z z!_Km`wASpmJ0kd!>=6lsF=dN{LyF2u8VOHAK?83git}@FbnC-_H=8}W*$~B3e8T3= zEPWqeOjk88Hl4aHScVYBdNi_^d(HK2&jOn2-rVOV+|_Yo*w6@yk%vg}K2NX4<&5Hpys1Fm5h7%L!qWM~;V(dLbyl1nr+ZgHpYv zrwnx4O%EP4`j~@vik!)czC)+<6m=)=SR?JM?%SR`Tj-}|-6rQW&zL)d^G%3YyYzmeJ$?5mjn2}dvg=mP&EUF^pwG|7IIwNY= z&3Q>0iC7~&>wb@Ewy`yEZ9!{g z=Yega`BniTc+>y~ddq#sQn_&x?ahN}wnpX6VYfY+^C>~N+7yqTQdQy-e)`VR0QEo$ zzdmE*3%?bv^K+LZChr17r6pISp)zB*n5xKAML?7#DLpo=o`|;WPS?QGIQAi$^Qn3g zUY5g!;Fzf7peZgpuf5zP?T`-Dj#}=zWsco8+pPAo9=LXIGIg3#3jnnssl%ZX7)tj> zPuJLi_>RCd7(Wg)Y%o^$E z_=h*M{L8XPkdmAZwdPE{Z5n88>sYRgEGM3mS#4Gg5z8Z>s}j?ayN0dnPqjo#Z+G&N zGv$%{!6Lm$$GCj`XHHdkg)-40=u6e?y7ac;*ee)N&*@_st$XyA{cQ>`nzxdaG`IXz zP?D?ydYo3f_D-FiQ>f-0TM^;wSj26uu;E)oS@!dcsnX~#zmDn<20~CzRaVMl-%W?tmsXvF^FP zej<_~x}uVxlb`XZ$gCwKCm%eY2xN)|7 z$Kq;)ay(}V3vDDT)6RoAHI~_Ywu7BLel!a&+HcSIz#^@V)OBu0CvYzth+I{)l1a zpobB%(cVGz8;{1lx8?7$*D*IJP%eq-afZaB@o@l}${bvn?yY^4YuBV}#x-Mnd}}8< z1L&g_Y=lr&NJUXx`aF6c13_zL?J7-;<{{i24##sLphynw*H72$(y^FzV$VLk;ngkt zcWgG*TvsuqKx}GuONt3X0PCo$8h+Zv*%pcL;QhJ&QW5XA$GBgE)~{fE6kTr0PM&Li zEie_ngY=d_&p}aQT+f9qFT;elo=%0x(n1eVl;=)-k9h4{D-S=Dea@rNY_!&HRCS65 z7APaER1Tz8Xn7)m)QSg?l1&4=wIJa`1b9$5kwrX_Q4XM051|B{3W|Lxpqm@YqQd4D z=pv(JC&Uhe0>dMcl zP)chXJGjx=%HhU+F;vu+me^l;A!#Yd^BMK6HuCha_l+Au3ra#$)hYyM<3;e*x__F7 z2II%!T3yrO-v0n3i2OW=H`ys{D*hi!Yk5N|OhqRxr3b(%VOqTKD}80>avkDg8CW`p z+gMILv{xj7l$RXHDhfF6C#lFk3d*RH+E*^m#ZfJdMETeawCpC8t3!KtRi`>~0LF2e zlQFL4A=Ry%Lm@W!tT_nV-jdo}4LUU7pDu@dZC(~k8lLZ3nRft@ZF+8}RFmfBu9c5g zms?3w)$WaNBmBe)!djzZ8)RsPRUGO#)*NS`V>gUPhe@9mAj^Ast8;quP z$9{QiOopIRggVZkN)n)zr&g@s^sg&C&26dldX&Z2O~YkzoZN-xxve{NV#PIsOrU!`LodVQHM} zN#)(1Y00hX%1|9R4d-ulBXiYgqfmr2e^^`MM} zl$?qVhuQVzQKvS_idkL62I9Q4?n!B3$nIn6^H376LqXea?pgS^g>8I8Z*SSB#+;vQ zkJH)ap#1A(c`tl@m0@c-mS40xx?n?#DPvQ590Soq7(a2XnH%%NC)uUhKPX9Lt7$0@ zBzdVFf7vySC5{>H9?{}lQzVFL8F5X^Z9hmo7!>6mr8xX4e<_wVE&Y;uF4mS7>U*yp*eRLF+)DB5*~&{OKes8nopjWdKi(`&Kp`CIT%M zxU;R1i&Ae5GQX6isPhuUhY{Unr7Pc3Qc1u#01rCTSPT_Ik79kTOM?Z%OzDMM94I{y zr7JkruPywl%Ow?z@VT7hP=SpdU=^=Ur=%mQ^lI;6N4ivZJ`}7Wo4o0gE;E>RI@`9X zX?gaM)hR&2SW1T3*k>I)D=muNDRfGcYfLm2oNc7OBPqW45!=ekXRa}TD#*soxw|U< z^j6$4+i5Lo&&`|^>=Fhs(AFLX>xDR)*Apy9ht5Myo^xLJJHuMqPiHmcVV1A!}mEdF5F#VQDQkmR<7cKSyGg@6zCdtp&i{N zRjTt0s_i^^XyKkG;fsZ;GsQ7oXS}GRC8f3BK}vdLDFeIXTv=<=Zo0d$e78H3g)fn zMetgYv@1^m&49U#iHi1lNJ?3fkdX6QNjM*%EV1>Wf1SQWK?3{eY|i~SaMq8cnxyfnCB|wg!`f6?m3SQcp&=MrNhg=hF)hc z7QQHQR4WF%+)D`VWxrJZ`YOUP&su^)%1Ee&Sa(aMK0Qa-NLGe<=UW?id(9ocZBY~htT>*eV2_1NIW-!V{{U(5rzQI9 z=6s%q^ICv83hVY(Idb(zo46bZ#gnhAYgo=!?mf3(!_4-^4vgFMw}0+^YWd2z?cQVQ zEP1$p(#4bg)z|AE`Z%-QPsX=A(ztd_2b6u<1X=Hog#qWhC?KX3RZDoS8kLJD_=zs zTOk!iYv`ggTvNj^FVPbkX0(Ra%x!Iu6chm-AdZUiq{C)BlU5ez*}c$5EJL~}*x3pZ zUn>a6>F$!9v-K+;mrZ#w^hvXDG%J3WrJrh+oyJGap#F+~dHgEHTC#E`e0W^An#s(F z;%Fl+G!3?f)aD#IQ|2flI4Fk_D`1@p3-XG&Db`X6!1Ugs5Dgktj<}$CvQn&$z6OYS zOH+#~R_Z-X6loL>BveDG6jbQ)RNBzAqymADkE!#b#Faao)I^pB4rnf69{&Kwqhu`D zP8KRE+BoS^lFg*_p(34mfop4-DaO*`U~GkQmyUrd9ntruwC1m8 zZwCGJ!aP2AYS9lu%g8V0IcZ)U)BCGkojB*SQ`tuxP2k=#VnZF~We;VT!j2N+6mpIH z2vL(ell0`u_lRWZuyD zY1H>8Cw~PcY5k(H_ij7;FOgq0{{V&?i#tWJL1e7S4=nqwHM)=R`)dno9G1mu&Zo1K zUO4Ve#YI5!(VpXJKex`cTXM=GAwxF#ahorm>+5z&BMvC#S@6X)ub|k!+V85faV_G= zz@!J>p4Nl&5m0z0K;f&IRPJ~j-A3zo}DpSqpo&!+9W%_49MZ0D$gx#dpxC` z%0U=I$@3jE_t0Uu!-lR8+jHKe>(i*9=Kwz*QkZQD zQnRIOEj#VhC{QEmWvO5#1vn#9WaI1>DvOEoI zbci=NO4bsyl;?d&A3ERKgOt{|bJle&PiU!lS(>^<{QbSex;;_uEFVm1CbnJCmOCx@ zR#R)TTU|&E>trZ4JOS|gDpFYCx1wFjTXAlvT(~H>!F?H2R}{1YPR9#ug(X1l2&s7P z!!30wkl3id#zzgRcmW->!Y%5J;x~YZgMd31L-Z`v0-v`)RCir@q+G79Br=BD&vm8~<+t2C&14ex^~f;^ z$j);uiCUa__Rgibhc?uFjxq&F6&Ks3%~y8jFtoWP5k6plsclKX)%ryw?N?}ETBJUw zd5o@f=!|^B*#`+AEa_gv<5qln))NZU_J6@KufcKPI)cz#>3AxeJ|FO8)-(9(AKv|~}vN|m;iw(PRw8;N*v=RJYM*;f0HT<=#M zDRO2HbfqVJD+4ukv|RR$#y05PlHMmd7CeZuQS59$U*^Mas5O-oVBl)iky|K|`6ZaJ zUF9o=*5Yo7LK5>b6kHFwv!|BE0m1rR@8Me*yQgE9ORo&@_p)&4UN>Z>@PiX-sX4NAPa-#A9l8)O|ioN+-21n+^9y==pe zuG(wOev0k$zYg$qr;fPEs9!2OZ8Dc8Wb1lS%|JkNS#CSJwhBs)>Kl63ubTeupI42F zp7Q?yN7d-%G=wER#@YZ4`XwXJ&{v7Kv#!odZTzBpL$*nsZ`(Slg(;@N# zw1s0S01SH5H)_nsl*OsEMEG|FvYi@JvQjV-JcosN4}D)Dii@=^!XVzPNw#)Irit>c zki}m6^^#1O68&oFHhHPOw9&NYB-T1-wASSM)*4iVOZB4(R`ETqJ^IBq)c3h9vXFkN z`k`N9fHj>h(>rO&UZ~UMN8`N~OR;1pOUx}zx}PN^;Mcbj@$@Lqa@XGXPSsIm9sQ~* zS2H4@hF;St3-V9~sMyQ}`_okwe+nW)D9Ui$YPIyv zx9De9ng0N--TW)d<;Qt_@9gchj-P$U^-M|9ze8LPt*q)#*0)JT8A7V#+?1~(HCMgD zw(&#qf7*OK9P9r8^3?wTIR5XhcosXXa5oMx=e&ztVt=j*zhSP(e6J_WEZ#*|D!ueo zMSID|g#~1UQ5BLAR98NV2+l%Mqpk0tle&c$N{5j~C=Vv6hTx(jIh8+Amhh0SdtYLsHpWL&39F3jI(dmH)BzdWV^MT@p+RL3 z;~te37fp_aqhj7Nat10gRq+oNdjiZTKq^olI_caaJ{a*eltCnQl}DjIIJ6XYDA4-EF3I!HDVIhbn8zQK$B{Y zqans*DF7`ykXPf6w!7mbYv}siJg&S^Yiq(J``86ToTmxsorXTzBT+- z_>gYgRX*_3aaERW@qkMa5^#VM({7tq7q>}8Q{4D> zv0G_M#Kf`pw($6#Q}J6_ZTzN0Pnt|+kEnXDp!+M?bD&DNyEQr%qP2YifD%5+2$1L8 zEz%JBbtgf=N$5w2py`k%BZ}hV05Z=b zp2~_#pE$|z=5$a$tSCBVyOnzEzT(a_qm=rP592Y@rwH*B`vlTM ze$fePN}pgHZZ}J#fE2~O3e%!78iH4-Y^S;hqi zBDwK_a$}2WrO0#0D5U^=M)c4d7Z$p^i4G%_gN&n5KXE(LL$+|tju3A0*$=W41 zZM34UR8^i@b^SFI4gvV=JaZ-M5MOy$oI(V9F0kl5`1-@I7 z!>hQVMdn&oN&+%*@vC7b((Jw>nI6{DqC9sJ+aYNG07jey9G?{ce)^FkrtxGe#jWU; zz8W#@@EKuEGZd{Q#VuIYxddZVs_TPR-$7~onBnW!4K>5=rB;bff1OHrrBYl7-D(8q zmfDX@eU)auiq6NhGY^T+38mh3nWpg$FEpub;~HL+pA{(XkfYrdjLy3Xj@qoxc6$;6 zZH}&8w%}GSCEuOqY22`+k8zcxoP_=Lx{;)ras)dLMc4lYUN^AIw7z2Sjc<&uwu_>Y9_ zQEm@kE^LdrB)bv3C2G$=F}kx_pm3hoY_lEWg^eO7W}ti%QgHirNwcx zjgRRLmF8r}HJ7Q6ELll8rE1M-bkuHV5|G~6YaVsj2dj^kre`L3Yp(vjE9`c|GjCT|*T|ZWNTxo(o}Wo7z3|b_HxX8v;0pZ98b+2jXz<7 zgrDP<0&Sv2*(j3pa+97z0RR-ZhV!K)SpZ^!qH9@6 zsH~;Q7|m>kDmf==*$ia`O5U@|}UNTQuud6CxN zi5q-;D+yCE(xmf0%WZQSMarN-Jez9bb za*S6-duyhC?;qJXJ?v$#{{Y+n0KJTE*%dS2rq%qj_D>();m;rZBl=GN0O{lId@DQO zSFC+@=Hqet_}Oj#-kJXZk}txwTKdf&hj$;1*X--h()<2V8zPT=HJz=jk@#}p!PmpQ z{{XhpKhwYbqDfH_6t5x(u1x;`G`@$~GthcI$5*N)yk zRYg1Lq98mdh;E?O5Zn|IToe)3Csb{X-mS?}G&p0@et_@-Jm`#iXD zmj@?|IBZAM$@W{-uUc6sd8CXu$W{}Dq=TpKt(LD;{4Db1jJB*&J}Hjz_j4D}`w|?C z>TvUGC|WxAfx#Pk*13m0;%hpeFx0^2+wE<}a|TgTm;V5(3;H?ptv0t;Z$-Z%-4Rbn z-}N+BbGhE8oWL&N?c-E?yC7&@=}%gC7V$u7Az0tb$az+&W}26EAI7j`lF9)!h??4a zxWUh*VJwrIjtWM4kHWE3#?qX7yLi-7YH2$Jb*+_v7WbWNv@1ACS`>#`KvGgxp}$n5 zWS+hiyBC%>@a*i~J*MX&!6C^h)IwZzX;uO0r^6M)%C_wEc-7TcOwL!GbH$S`BU3JG z$5ZKBcINjFocn6vMjN=hdy2^9%+9hihU5{sz{bk!@vmEpo2oVI4lMY(d-^z`*4nVW zicSr6x!W!j`8w?9uu1_=x-|0Dfz2LCSA&D-`Oq zpQ5q&&`5uZT)d;@6f4=dg$;798ahm6JsihE;&I;d6cuTNtF$#Cqz4|tmeLdNY%+O% zf2;RUS6E&Mkc2D2T2H}SP#U4Evhycpva%EL9v^6+=-rA*4o11!-a9OXgrBP7OKSas zwqtZ)a@i54vvHAY)?4K~v^bJ*kWflVHLcGu>3jf~_TalIbh`7%6Az?is6Zq0dUht$csBSx(d=!@Q;16}yZ})krzJ<=D;X767?vw<3PPC~Zc4j2ok6U3TR|Fo z$I^(A**D4diT7Fe02LICQCoQ>15od3Ux`XRJWWpum%`0nue?U5hbaxgaJz3RX-P)h9*qY8Ybv$`Xv+-(EtDMab$H?8$m-KyWi zc6MhOP9kN-6M#xqw49-(XPF_xq

SzBM%)M;Prti1>!_+8?*@+&KlJz;4{zglY|h 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 TJ52ETD`c|vB!AJXzaRe(li!!_ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/minimal/textures/sl_logo.png b/indra/newview/skins/minimal/textures/sl_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..71830e7451b1c80a9832585e022c45af481cc7c2 GIT binary patch literal 4542 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 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/minimal/textures/textures.xml b/indra/newview/skins/minimal/textures/textures.xml new file mode 100644 index 0000000000..432b2c20c8 --- /dev/null +++ b/indra/newview/skins/minimal/textures/textures.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/floater_camera.xml b/indra/newview/skins/minimal/xui/en/floater_camera.xml new file mode 100644 index 0000000000..62276199e5 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_camera.xml @@ -0,0 +1,257 @@ + + + + Rotate Camera Around Focus + + + Zoom Camera Towards Focus + + + Move Camera Up and Down, Left and Right + + + Camera modes + + + Orbit Zoom Pan + + + Preset Views + + + View Object + + + + + + + + + Front View + + + + + + + + Side View + + + + + + + + Rear View + + + + + + + + Object View + + + + + + + + Mouselook View + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/floater_help_browser.xml b/indra/newview/skins/minimal/xui/en/floater_help_browser.xml new file mode 100644 index 0000000000..eddfe41c25 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_help_browser.xml @@ -0,0 +1,52 @@ + + + + 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 new file mode 100644 index 0000000000..5ea33f0a8f --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_media_browser.xml @@ -0,0 +1,205 @@ + + + + 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 new file mode 100644 index 0000000000..74ac885202 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_nearby_chat.xml @@ -0,0 +1,52 @@ + + + + + diff --git a/indra/newview/skins/minimal/xui/en/inspect_avatar.xml b/indra/newview/skins/minimal/xui/en/inspect_avatar.xml new file mode 100644 index 0000000000..efc31e5d43 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/inspect_avatar.xml @@ -0,0 +1,135 @@ + + + + + +[AGE] + + +[SL_PROFILE] + + + + This is my second life description and I really think it is great. + + + + + + + + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml b/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml new file mode 100644 index 0000000000..53def54aca --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/panel_login.xml b/indra/newview/skins/minimal/xui/en/panel_login.xml new file mode 100644 index 0000000000..74f985b9ec --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/panel_login.xml @@ -0,0 +1,188 @@ + + + + http://join.secondlife.com/ + + + http://secondlife.com/app/login/ + + + http://secondlife.eniac15.lindenlab.com/reg-in-client/ + + + http://secondlife.com/account/request.php + + + + + + +Username: + + + + + + + Password: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://www.secondlife.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/panel_progress.xml b/indra/newview/skins/minimal/xui/en/panel_progress.xml new file mode 100644 index 0000000000..03e4ee5aed --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/panel_progress.xml @@ -0,0 +1,21 @@ + + + + From 6214772d9faadda3c3b024d13be2bab3c38a6394 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 22 Feb 2011 19:23:44 -0800 Subject: [PATCH 002/168] SOCIAL-545 WIP Figure out how to configure skylight-specific settings while retaining relevant user settings (login account name, etc.) --- .../newview/app_settings/settings_minimal.xml | 612 ++++++++++++++++++ 1 file changed, 612 insertions(+) create mode 100644 indra/newview/app_settings/settings_minimal.xml diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml new file mode 100644 index 0000000000..4420fd97fb --- /dev/null +++ b/indra/newview/app_settings/settings_minimal.xml @@ -0,0 +1,612 @@ + + + CacheValidateCounter + + Comment + Used to distribute cache validation + Type + U32 + Value + 1 + + 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 + + CurrentGrid + + Comment + Currently Selected Grid + Type + String + Value + util.agni.lindenlab.com + + DestinationGuideURL + + Comment + Destination guide contents + Type + String + Value + http://interest.secondlife.com/viewer/guide + + DisableExternalBrowser + + Comment + Disable opening an external browser. + Type + Boolean + Value + 1 + + DisableTextHyperlinkActions + + Comment + Disable highlighting and linking of URLs in XUI text boxes + Type + Boolean + Value + 1 + + 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 + + EnableVoiceChat + + Comment + Enable talking to other residents with a microphone + 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://interest.secondlife.com/static/viewer/howto/index.html + + LocalCacheVersion + + Comment + Version number of cache + Type + S32 + Value + 7 + + LocalFileSystemBrowsingEnabled + + Comment + Enable/disable access to the local file system via the file picker + Type + Boolean + Value + 0 + + MigrateCacheDirectory + + Comment + Check for old version of disk cache to migrate to current location + Type + Boolean + Value + 0 + + NumSessions + + Comment + Number of successful logins to Second Life + Type + S32 + Value + 2 + + PreferredMaturity + + Comment + Setting for the user's preferred maturity level (consts in indra_constants.h) + Type + U32 + Value + 21 + + ProbeHardwareOnStartup + + Comment + Query current hardware configuration on application startup + Type + Boolean + Value + 0 + + QAMode + + Comment + Enable Testing Features. + Type + Boolean + Value + 1 + + QuitAfterSecondsOfAFK + + Comment + The duration allowed after being AFK before quitting. + Type + F32 + Value + 600 + + QuitOnLoginActivated + + Comment + Quit if login page is activated (used when auto login is on and users must not be able to login manually) + Type + Boolean + Value + 1 + + RenderAnisotropic + + Comment + Render textures using anisotropic filtering + Type + Boolean + Value + 1 + + RenderAvatarCloth + + Comment + Controls if avatars use wavy cloth + Type + Boolean + Value + 0 + + RenderAvatarLODFactor + + Comment + Controls level of detail of avatars (multiplier for current screen area when calculated level of detail) + Type + F32 + Value + 1 + + RenderDeferredSSAO + + Comment + Execute screen space ambient occlusion shader in deferred renderer. + Type + Boolean + Value + 0 + + RenderDelayVBUpdate + + Comment + Delay vertex buffer updates until just before rendering + Type + Boolean + Value + 0 + + RenderFarClip + + Comment + Distance of far clip plane from camera (meters) + Type + F32 + Value + 128 + + RenderParcelSelection + + Comment + Display selected parcel outline + Type + Boolean + Value + 0 + + RenderQualityPerformance + + Comment + Which graphics settings you've chosen + Type + U32 + Value + 2 + + RenderShadowDetail + + Comment + Detail of shadows. + Type + S32 + Value + 0 + + RenderTerrainDetail + + Comment + Detail applied to terrain texturing (0 = none, 1 or 2 = full) + Type + S32 + Value + 1 + + RenderTerrainLODFactor + + Comment + Controls level of detail of terrain (multiplier for current screen area when calculated level of detail) + Type + F32 + Value + 2 + + RenderTrackerBeacon + + Comment + Display tracking arrow and beacon to target avatar, teleport destination + Type + Boolean + Value + 0 + + RenderVolumeLODFactor + + Comment + Controls level of detail of primitives (multiplier for current screen area when calculated level of detail) + Type + F32 + Value + 1.125 + + 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 + + TextureMemory + + Comment + Amount of memory to use for textures in MB (0 = autodetect) + Type + S32 + Value + 256 + + UseExternalBrowser + + Comment + Use default browser when opening web pages instead of in-world browser. + Type + Boolean + Value + 0 + + VFSOldSize + + Comment + [DO NOT MODIFY] Controls resizing of local file cache + Type + U32 + Value + 102 + + VectorizePerfTest + + Comment + Test SSE/vectorization performance and choose fastest version. + Type + Boolean + Value + 0 + + VectorizeSkin + + Comment + Enable vector operations for avatar skinning. + Type + Boolean + Value + 0 + + VertexShaderEnable + + Comment + Enable/disable all GLSL shaders (debug) + Type + Boolean + Value + 1 + + VoiceCallsRejectAll + + Comment + Silently reject all incoming voice calls. + Type + Boolean + Value + 1 + + VoiceDisableMic + + Comment + Completely disable the ability to open the mic. + Type + Boolean + Value + 1 + + WLSkyDetail + + Comment + Controls vertex detail on the WindLight sky. Lower numbers will give better performance and uglier skies. + Type + U32 + Value + 48 + + WindowFullScreen + + Comment + SL viewer window full screen + Type + Boolean + Value + 1 + + WindowHeight + + Comment + SL viewer window height + Type + S32 + Value + 642 + + TextureMemory + + Comment + Amount of memory to use for textures in MB (0 = autodetect) + Persist + 1 + Type + S32 + Value + 512 + + NoHardwareProbe + + Comment + Disable hardware probe. + Persist + 1 + Type + Boolean + Value + 1 + + ScriptsCanShowUI + + Comment + Allow LSL calls (such as LLMapDestination) to spawn viewer UI + Persist + 1 + Type + Boolean + Value + 0 + + ThrottleBandwidthKBPS + + Comment + Maximum allowable downstream bandwidth (kilo bits per second) + Persist + 1 + Type + F32 + Value + 1500.0 + + XferThrottle + + Comment + Maximum allowable downstream bandwidth for asset transfers (bits per second) + Persist + 1 + Type + F32 + Value + 450000.0 + + ChatFontSize + + Comment + Size of chat text in chat console (0 = small, 1 = big, 2 = extra large) + Persist + 1 + Type + S32 + Value + 1 + + CacheSize + + Comment + Controls amount of hard drive space reserved for local file caching in MB + Persist + 1 + Type + U32 + Value + 1024 + + MediaControlFadeTime + + Comment + Amount of time (in seconds) that the media control fades + Persist + 1 + Type + F32 + Value + 0 + + MediaControlTimeout + + Comment + Amount of time (in seconds) for media controls to fade with no mouse activity + Persist + 1 + Type + F32 + Value + 0 + + MediaShowOutsideParcel + + Comment + Whether or not to show media from outside the current parcel + Persist + 1 + Type + Boolean + Value + 0 + + MediaShowWithinParcel + + Comment + Whether or not to show media within the current parcel + Persist + 1 + Type + Boolean + Value + 0 + + AudioStreamingMedia + + Comment + Enable streaming + Persist + 1 + Type + Boolean + Value + 0 + + 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 + + AvatarPickerURL + + Comment + Avatar picker contents + Persist + 1 + Type + String + Value + http://interest.secondlife.com/static/viewer/avatar + + AutoLogin + + Comment + Login automatically using last username/password combination + Persist + 0 + Type + Boolean + Value + 1 + + + From 3968bf45a6a39fb1a2e9dc340984b1bb01af9615 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 22 Feb 2011 19:27:08 -0800 Subject: [PATCH 003/168] removed useless autologin setting --- indra/newview/app_settings/settings_minimal.xml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 4420fd97fb..2424da7624 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -1,5 +1,5 @@ - + CacheValidateCounter Comment @@ -597,16 +597,5 @@ Value http://interest.secondlife.com/static/viewer/avatar - AutoLogin - - Comment - Login automatically using last username/password combination - Persist - 0 - Type - Boolean - Value - 1 - From 5aa43e4f3e30d81fb518783189b3258e67b4620a Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 22 Feb 2011 19:30:50 -0800 Subject: [PATCH 004/168] SOCIAL-545 WIP Figure out how to configure skylight-specific settings while retaining relevant user settings (login account name, etc.) converted settings_file.xml to use param block descriptions for easier modification added session settings file and user session settings file for per-session config overrides --- indra/llxml/llcontrol.cpp | 5 +- indra/llxml/llcontrol.h | 2 +- indra/newview/app_settings/cmd_line.xml | 18 ++ indra/newview/app_settings/settings.xml | 26 +- indra/newview/app_settings/settings_files.xml | 212 +++++------------ indra/newview/llappviewer.cpp | 223 ++++++++++++------ indra/newview/llappviewer.h | 2 +- 7 files changed, 259 insertions(+), 229 deletions(-) diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp index 6c72609122..6e4364a20d 100644 --- a/indra/llxml/llcontrol.cpp +++ b/indra/llxml/llcontrol.cpp @@ -835,7 +835,7 @@ U32 LLControlGroup::saveToFile(const std::string& filename, BOOL nondefault_only return num_saved; } -U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_values) +U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_values, bool save_values) { std::string name; LLSD settings; @@ -908,8 +908,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v } else if(existing_control->isPersisted()) { - - existing_control->setValue(control_map["Value"]); + existing_control->setValue(control_map["Value"], save_values); } // *NOTE: If not persisted and not setting defaults, // the value should not get loaded. diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index 93975579cc..e402061e1f 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -289,7 +289,7 @@ public: // as the given type. U32 loadFromFileLegacy(const std::string& filename, BOOL require_declaration = TRUE, eControlType declare_as = TYPE_STRING); U32 saveToFile(const std::string& filename, BOOL nondefault_only); - U32 loadFromFile(const std::string& filename, bool default_values = false); + U32 loadFromFile(const std::string& filename, bool default_values = false, bool save_values = true); void resetToDefaults(); }; diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml index e4ac455e7c..89e5949fbe 100644 --- a/indra/newview/app_settings/cmd_line.xml +++ b/indra/newview/app_settings/cmd_line.xml @@ -261,6 +261,24 @@ + sessionsettings + + desc + Specify the filename of a configuration file that contains temporary per-session configuration overrides. + count + 1 + + + + usersessionsettings + + desc + Specify the filename of a configuration file that contains temporary per-session configuration user overrides. + count + 1 + + + login desc diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6630d8f400..1bcc988e5c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -11473,7 +11473,7 @@ Type F32 Value - 3.0 + 3 InterpolationPhaseOut @@ -11484,7 +11484,7 @@ Type F32 Value - 1.0 + 1 VerboseLogs @@ -12366,5 +12366,27 @@ Value name + SessionSettingsFile + + Comment + Settings that are a applied per session (not saved). + Persist + 0 + Type + String + Value + + + UserSessionSettingsFile + + Comment + User settings that are a applied per session (not saved). + Persist + 0 + Type + String + Value + + diff --git a/indra/newview/app_settings/settings_files.xml b/indra/newview/app_settings/settings_files.xml index aa5b301959..079a54f957 100644 --- a/indra/newview/app_settings/settings_files.xml +++ b/indra/newview/app_settings/settings_files.xml @@ -1,148 +1,64 @@ - - - Locations - - - Comment - List location from which to load files, and the rules about loading those files. - Persist - 0 - Type - LLSD - Value - - Default - - PathIndex - 2 - Files - - Global - - Name - settings.xml - Requirement - 1 - - PerAccount - - Name - settings_per_account.xml - Requirement - 1 - - CrashSettings - - Name - settings_crash_behavior.xml - Requirement - 1 - - Warnings - - Name - ignorable_dialogs.xml - Requirement - 1 - - - - User - - PathIndex - 1 - Files - - Global - - Name - settings.xml - NameFromSetting - ClientSettingsFile - - CrashSettings - - Name - settings_crash_behavior.xml - - Warnings - - Name - ignorable_dialogs.xml - NameFromSetting - WarningSettingsFile - - - - Account - - PathIndex - 3 - Files - - PerAccount - - Name - settings_per_account.xml - NameFromSetting - PerAccountSettingsFile - - - - DefaultSkin - - PathIndex - 17 - Files - - Skinning - - Name - colors.xml - - - - CurrentSkin - - PathIndex - 10 - Files - - Skinning - - Name - colors.xml - - - - UserSkin - - PathIndex - 14 - Files - - Skinning - - Name - colors.xml - NameFromSetting - SkinningSettingsFile - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index a23f809b71..c285ddc2f6 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -337,6 +337,46 @@ void init_default_trans_args() const char *VFS_DATA_FILE_BASE = "data.db2.x."; const char *VFS_INDEX_FILE_BASE = "index.db2.x."; + +struct SettingsFile : public LLInitParam::Block +{ + Mandatory name; + Optional file_name; + Optional required, + persistent; + Optional file_name_setting; + + SettingsFile() + : name("name"), + file_name("file_name"), + required("required", false), + persistent("persistent", true), + file_name_setting("file_name_setting") + {} +}; + +struct SettingsGroup : public LLInitParam::Block +{ + Mandatory name; + Mandatory path_index; + Multiple files; + + SettingsGroup() + : name("name"), + path_index("path_index"), + files("file") + {} +}; + +struct SettingsFiles : public LLInitParam::Block +{ + Multiple groups; + + SettingsFiles() + : groups("group") + {} +}; + static std::string gWindowTitle; LLAppViewer::LLUpdaterInfo *LLAppViewer::sUpdaterInfo = NULL ; @@ -594,7 +634,8 @@ LLAppViewer::LLAppViewer() : mRandomizeFramerate(LLCachedControl(gSavedSettings,"Randomize Framerate", FALSE)), mPeriodicSlowFrame(LLCachedControl(gSavedSettings,"Periodic Slow Frame", FALSE)), mFastTimerLogThread(NULL), - mUpdater(new LLUpdaterService()) + mUpdater(new LLUpdaterService()), + mSettingsLocationList(NULL) { if(NULL != sInstance) { @@ -610,6 +651,8 @@ LLAppViewer::LLAppViewer() : LLAppViewer::~LLAppViewer() { + delete mSettingsLocationList; + LLLoginInstance::instance().setUpdaterService(0); destroyMainloopTimeout(); @@ -1879,85 +1922,72 @@ bool LLAppViewer::initLogging() bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, bool set_defaults) { - // Find and vet the location key. - if(!mSettingsLocationList.has(location_key)) + if (!mSettingsLocationList) { - llerrs << "Requested unknown location: " << location_key << llendl; - return false; + llerrs << "Invalid settings location list" << llendl; } - LLSD location = mSettingsLocationList.get(location_key); + LLControlGroup* global_settings = LLControlGroup::getInstance(sGlobalSettingsName); + for(LLInitParam::ParamIterator::const_iterator it = mSettingsLocationList->groups.begin(), end_it = mSettingsLocationList->groups.end(); + it != end_it; + ++it) + { + if (it->name() != location_key) continue; - if(!location.has("PathIndex")) - { - llerrs << "Settings location is missing PathIndex value. Settings cannot be loaded." << llendl; - return false; - } - ELLPath path_index = (ELLPath)(location.get("PathIndex").asInteger()); - if(path_index <= LL_PATH_NONE || path_index >= LL_PATH_LAST) - { - llerrs << "Out of range path index in app_settings/settings_files.xml" << llendl; - return false; - } + ELLPath path_index = (ELLPath)it->path_index(); + if(path_index <= LL_PATH_NONE || path_index >= LL_PATH_LAST) + { + llerrs << "Out of range path index in app_settings/settings_files.xml" << llendl; + return false; + } - // Iterate through the locations list of files. - LLSD files = location.get("Files"); - for(LLSD::map_iterator itr = files.beginMap(); itr != files.endMap(); ++itr) - { - std::string settings_group = (*itr).first; - llinfos << "Attempting to load settings for the group " << settings_group + LLInitParam::ParamIterator::const_iterator file_it, end_file_it; + for (file_it = it->files.begin(), end_file_it = it->files.end(); + file_it != end_file_it; + ++file_it) + { + llinfos << "Attempting to load settings for the group " << file_it->name() << " - from location " << location_key << llendl; - if(!LLControlGroup::getInstance(settings_group)) - { - llwarns << "No matching settings group for name " << settings_group << llendl; - continue; - } - - LLSD file = (*itr).second; - - std::string full_settings_path; - if(file.has("NameFromSetting")) - { - std::string custom_name_setting = file.get("NameFromSetting"); - // *NOTE: Regardless of the group currently being lodaed, - // this setting is always read from the Global settings. - if(LLControlGroup::getInstance(sGlobalSettingsName)->controlExists(custom_name_setting)) + LLControlGroup* settings_group = LLControlGroup::getInstance(file_it->name); + if(!settings_group) { - std::string file_name = - LLControlGroup::getInstance(sGlobalSettingsName)->getString(custom_name_setting); - full_settings_path = file_name; + llwarns << "No matching settings group for name " << file_it->name() << llendl; + continue; } - } - if(full_settings_path.empty()) - { - std::string file_name = file.get("Name"); - full_settings_path = gDirUtilp->getExpandedFilename(path_index, file_name); - } + std::string full_settings_path; - int requirement = 0; - if(file.has("Requirement")) - { - requirement = file.get("Requirement").asInteger(); - } - - if(!LLControlGroup::getInstance(settings_group)->loadFromFile(full_settings_path, set_defaults)) - { - if(requirement == 1) + if (file_it->file_name_setting.isProvided() + && global_settings->controlExists(file_it->file_name_setting)) { - llwarns << "Error: Cannot load required settings file from: " - << full_settings_path << llendl; - return false; + full_settings_path = global_settings->getString(file_it->file_name_setting); } else { - llinfos << "Cannot load " << full_settings_path << " - No settings found." << llendl; + full_settings_path = gDirUtilp->getExpandedFilename((ELLPath)path_index, file_it->file_name()); + } + + if(!settings_group->loadFromFile(full_settings_path, set_defaults, file_it->persistent)) + { + if(file_it->required) + { + llwarns << "Error: Cannot load required settings file from: " + << full_settings_path << llendl; + return false; + } + else + { + if (!full_settings_path.empty()) + { + llinfos << "Cannot load " << full_settings_path << " - No settings found." << llendl; + } + } + } + else + { + llinfos << "Loaded settings file " << full_settings_path << llendl; } - } - else - { - llinfos << "Loaded settings file " << full_settings_path << llendl; } } @@ -1967,18 +1997,25 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, std::string LLAppViewer::getSettingsFilename(const std::string& location_key, const std::string& file) { - if(mSettingsLocationList.has(location_key)) + for(LLInitParam::ParamIterator::const_iterator it = mSettingsLocationList->groups.begin(), end_it = mSettingsLocationList->groups.end(); + it != end_it; + ++it) { - LLSD location = mSettingsLocationList.get(location_key); - if(location.has("Files")) + if (it->name() == location_key) { - LLSD files = location.get("Files"); - if(files.has(file) && files[file].has("Name")) + LLInitParam::ParamIterator::const_iterator file_it, end_file_it; + for (file_it = it->files.begin(), end_file_it = it->files.end(); + file_it != end_file_it; + ++file_it) { - return files.get(file).get("Name").asString(); + if (file_it->name() == file) + { + return file_it->file_name; + } } } } + return std::string(); } @@ -1991,14 +2028,29 @@ bool LLAppViewer::initConfiguration() { //Load settings files list std::string settings_file_list = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "settings_files.xml"); - LLControlGroup settings_control("SettingsFiles"); - llinfos << "Loading settings file list " << settings_file_list << llendl; - if (0 == settings_control.loadFromFile(settings_file_list)) + //LLControlGroup settings_control("SettingsFiles"); + //llinfos << "Loading settings file list " << settings_file_list << llendl; + //if (0 == settings_control.loadFromFile(settings_file_list)) + //{ + // llerrs << "Cannot load default configuration file " << settings_file_list << llendl; + //} + + LLXMLNodePtr root; + BOOL success = LLXMLNode::parseFile(settings_file_list, root, NULL); + if (!success) { llerrs << "Cannot load default configuration file " << settings_file_list << llendl; } - mSettingsLocationList = settings_control.getLLSD("Locations"); + mSettingsLocationList = new SettingsFiles(); + + LLXUIParser parser; + parser.readXUI(root, *mSettingsLocationList, settings_file_list); + + if (!mSettingsLocationList->validateBlock()) + { + llerrs << "Invalid settings file list " << settings_file_list << llendl; + } // The settings and command line parsing have a fragile // order-of-operation: @@ -2105,6 +2157,29 @@ bool LLAppViewer::initConfiguration() << user_settings_filename << llendl; } + if (clp.hasOption("sessionsettings")) + { + std::string session_settings_filename = + gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, + clp.getOption("sessionsettings")[0]); + gSavedSettings.setString("SessionSettingsFile", session_settings_filename); + llinfos << "Using session settings filename: " + << session_settings_filename << llendl; + } + loadSettingsFromDirectory("Session"); + + if (clp.hasOption("usersessionsettings")) + { + std::string user_session_settings_filename = + gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, + clp.getOption("usersessionsettings")[0]); + gSavedSettings.setString("UserSessionSettingsFile", user_session_settings_filename); + llinfos << "Using user session settings filename: " + << user_session_settings_filename << llendl; + + } + loadSettingsFromDirectory("UserSession"); + // - load overrides from user_settings loadSettingsFromDirectory("User"); // - apply command line settings diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index a18e6cbb02..0226211735 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -253,7 +253,7 @@ private: bool mQuitRequested; // User wants to quit, may have modified documents open. bool mLogoutRequestSent; // Disconnect message sent to simulator, no longer safe to send messages to the sim. S32 mYieldTime; - LLSD mSettingsLocationList; + struct SettingsFiles* mSettingsLocationList; LLWatchdogTimeout* mMainloopTimeout; From a8891d6ce0f34119e3b11a4b37824be42db22834 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 11:00:21 -0800 Subject: [PATCH 005/168] SOCIAL-545 FIX Figure out how to configure skylight-specific settings added comments and cleaned up code --- indra/newview/llappviewer.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c285ddc2f6..2000ed9201 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1,4 +1,4 @@ -/** + /** * @file llappviewer.cpp * @brief The LLAppViewer class definitions * @@ -1932,6 +1932,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, it != end_it; ++it) { + // skip settings groups that aren't the one we requested if (it->name() != location_key) continue; ELLPath path_index = (ELLPath)it->path_index(); @@ -1961,33 +1962,35 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, if (file_it->file_name_setting.isProvided() && global_settings->controlExists(file_it->file_name_setting)) { + // try to find filename stored in file_name_setting control full_settings_path = global_settings->getString(file_it->file_name_setting); } else { + // by default, use specified file name full_settings_path = gDirUtilp->getExpandedFilename((ELLPath)path_index, file_it->file_name()); } - if(!settings_group->loadFromFile(full_settings_path, set_defaults, file_it->persistent)) - { + if(settings_group->loadFromFile(full_settings_path, set_defaults, file_it->persistent)) + { // success! + llinfos << "Loaded settings file " << full_settings_path << llendl; + } + else + { // failed to load if(file_it->required) { - llwarns << "Error: Cannot load required settings file from: " - << full_settings_path << llendl; + llerrs << "Error: Cannot load required settings file from: " << full_settings_path << llendl; return false; } else { + // only complain if we actually have a filename at this point if (!full_settings_path.empty()) { llinfos << "Cannot load " << full_settings_path << " - No settings found." << llendl; } } } - else - { - llinfos << "Loaded settings file " << full_settings_path << llendl; - } } } From e37efc9a857ae17fdb66443778965a50a2500516 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 15:56:50 -0800 Subject: [PATCH 006/168] SOCIAL-545 FIX Figure out how to configure skylight-specific settings removed extraneous configuration variables --- .../newview/app_settings/settings_minimal.xml | 285 ------------------ 1 file changed, 285 deletions(-) diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 2424da7624..315c811280 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -1,14 +1,5 @@ - CacheValidateCounter - - Comment - Used to distribute cache validation - Type - U32 - Value - 1 - ChannelBottomPanelMargin Comment @@ -36,15 +27,6 @@ Value 0 - CurrentGrid - - Comment - Currently Selected Grid - Type - String - Value - util.agni.lindenlab.com - DestinationGuideURL Comment @@ -108,15 +90,6 @@ Value http://interest.secondlife.com/static/viewer/howto/index.html - LocalCacheVersion - - Comment - Version number of cache - Type - S32 - Value - 7 - LocalFileSystemBrowsingEnabled Comment @@ -126,24 +99,6 @@ Value 0 - MigrateCacheDirectory - - Comment - Check for old version of disk cache to migrate to current location - Type - Boolean - Value - 0 - - NumSessions - - Comment - Number of successful logins to Second Life - Type - S32 - Value - 2 - PreferredMaturity Comment @@ -153,24 +108,6 @@ Value 21 - ProbeHardwareOnStartup - - Comment - Query current hardware configuration on application startup - Type - Boolean - Value - 0 - - QAMode - - Comment - Enable Testing Features. - Type - Boolean - Value - 1 - QuitAfterSecondsOfAFK Comment @@ -180,114 +117,6 @@ Value 600 - QuitOnLoginActivated - - Comment - Quit if login page is activated (used when auto login is on and users must not be able to login manually) - Type - Boolean - Value - 1 - - RenderAnisotropic - - Comment - Render textures using anisotropic filtering - Type - Boolean - Value - 1 - - RenderAvatarCloth - - Comment - Controls if avatars use wavy cloth - Type - Boolean - Value - 0 - - RenderAvatarLODFactor - - Comment - Controls level of detail of avatars (multiplier for current screen area when calculated level of detail) - Type - F32 - Value - 1 - - RenderDeferredSSAO - - Comment - Execute screen space ambient occlusion shader in deferred renderer. - Type - Boolean - Value - 0 - - RenderDelayVBUpdate - - Comment - Delay vertex buffer updates until just before rendering - Type - Boolean - Value - 0 - - RenderFarClip - - Comment - Distance of far clip plane from camera (meters) - Type - F32 - Value - 128 - - RenderParcelSelection - - Comment - Display selected parcel outline - Type - Boolean - Value - 0 - - RenderQualityPerformance - - Comment - Which graphics settings you've chosen - Type - U32 - Value - 2 - - RenderShadowDetail - - Comment - Detail of shadows. - Type - S32 - Value - 0 - - RenderTerrainDetail - - Comment - Detail applied to terrain texturing (0 = none, 1 or 2 = full) - Type - S32 - Value - 1 - - RenderTerrainLODFactor - - Comment - Controls level of detail of terrain (multiplier for current screen area when calculated level of detail) - Type - F32 - Value - 2 - RenderTrackerBeacon Comment @@ -297,15 +126,6 @@ Value 0 - RenderVolumeLODFactor - - Comment - Controls level of detail of primitives (multiplier for current screen area when calculated level of detail) - Type - F32 - Value - 1.125 - ShowScriptErrors Comment @@ -333,15 +153,6 @@ Value minimal - TextureMemory - - Comment - Amount of memory to use for textures in MB (0 = autodetect) - Type - S32 - Value - 256 - UseExternalBrowser Comment @@ -351,42 +162,6 @@ Value 0 - VFSOldSize - - Comment - [DO NOT MODIFY] Controls resizing of local file cache - Type - U32 - Value - 102 - - VectorizePerfTest - - Comment - Test SSE/vectorization performance and choose fastest version. - Type - Boolean - Value - 0 - - VectorizeSkin - - Comment - Enable vector operations for avatar skinning. - Type - Boolean - Value - 0 - - VertexShaderEnable - - Comment - Enable/disable all GLSL shaders (debug) - Type - Boolean - Value - 1 - VoiceCallsRejectAll Comment @@ -405,55 +180,6 @@ Value 1 - WLSkyDetail - - Comment - Controls vertex detail on the WindLight sky. Lower numbers will give better performance and uglier skies. - Type - U32 - Value - 48 - - WindowFullScreen - - Comment - SL viewer window full screen - Type - Boolean - Value - 1 - - WindowHeight - - Comment - SL viewer window height - Type - S32 - Value - 642 - - TextureMemory - - Comment - Amount of memory to use for textures in MB (0 = autodetect) - Persist - 1 - Type - S32 - Value - 512 - - NoHardwareProbe - - Comment - Disable hardware probe. - Persist - 1 - Type - Boolean - Value - 1 - ScriptsCanShowUI Comment @@ -498,17 +224,6 @@ Value 1 - CacheSize - - Comment - Controls amount of hard drive space reserved for local file caching in MB - Persist - 1 - Type - U32 - Value - 1024 - MediaControlFadeTime Comment From e715a78063e49703b739010e1cf560217b811285 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:35:32 -0800 Subject: [PATCH 007/168] fixed filename output on XUI parse errors --- indra/llui/lluictrlfactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 5de96f9d48..55b32fc8b1 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -214,7 +214,7 @@ LLView *LLUICtrlFactory::createFromXML(LLXMLNodePtr node, LLView* parent, const std::string LLUICtrlFactory::getCurFileName() { - return mFileNames.empty() ? "" : gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + mFileNames.back(); + return mFileNames.empty() ? "" : mFileNames.back(); } From aabcabb60bd093e42d6416498c88eda25a8d9b7e Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:35:44 -0800 Subject: [PATCH 008/168] added minimal skin XUI files to project --- indra/newview/CMakeLists.txt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index af6beacdfa..4acffeb66b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1303,17 +1303,13 @@ set(viewer_XUI_FILES ) file(GLOB DEFAULT_XUI_FILE_GLOB_LIST - ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/*.xml) + ${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/*.xml) list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST}) file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST - ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/widgets/*.xml) + ${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/widgets/*.xml) list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST}) -file(GLOB SILVER_XUI_FILE_GLOB_LIST - ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/*.xml) -list(APPEND viewer_XUI_FILES ${SILVER_XUI_FILE_GLOB_LIST}) - # Cannot append empty lists in CMake, wait until we have files here. #file(GLOB SILVER_WIDGET_FILE_GLOB_LIST # ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/widgets/*.xml) From f6f392babea8bbf748587c3a8ffe99e598b1a7df Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:36:55 -0800 Subject: [PATCH 009/168] SOCIAL-545 FIX Figure out how to configure skylight-specific settings sessionsettingsfile and usersessionsettingsfile are allowed to persist, so we can change them from the login screen --- indra/newview/app_settings/settings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1bcc988e5c..0d7437ed1c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12371,7 +12371,7 @@ Comment Settings that are a applied per session (not saved). Persist - 0 + 1 Type String Value @@ -12382,7 +12382,7 @@ Comment User settings that are a applied per session (not saved). Persist - 0 + 1 Type String Value From 0747341f97a9aec61038de8d2bbe28e7909f5aca Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:39:08 -0800 Subject: [PATCH 010/168] SOCIAL-547 WIP Add skin selection dropdown to login screen load session settings after loading user settings so user settings can change the session settings file also don't hardcode file path for session settings files, use path configured in settings_files.xml --- indra/newview/llappviewer.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2000ed9201..62f52e4b05 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1964,6 +1964,11 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key, { // try to find filename stored in file_name_setting control full_settings_path = global_settings->getString(file_it->file_name_setting); + if (!gDirUtilp->fileExists(full_settings_path)) + { + // search in default path + full_settings_path = gDirUtilp->getExpandedFilename((ELLPath)path_index, full_settings_path); + } } else { @@ -2160,11 +2165,12 @@ bool LLAppViewer::initConfiguration() << user_settings_filename << llendl; } + // - load overrides from user_settings + loadSettingsFromDirectory("User"); + if (clp.hasOption("sessionsettings")) { - std::string session_settings_filename = - gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, - clp.getOption("sessionsettings")[0]); + std::string session_settings_filename = clp.getOption("sessionsettings")[0]; gSavedSettings.setString("SessionSettingsFile", session_settings_filename); llinfos << "Using session settings filename: " << session_settings_filename << llendl; @@ -2173,9 +2179,7 @@ bool LLAppViewer::initConfiguration() if (clp.hasOption("usersessionsettings")) { - std::string user_session_settings_filename = - gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, - clp.getOption("usersessionsettings")[0]); + std::string user_session_settings_filename = clp.getOption("usersessionsettings")[0]; gSavedSettings.setString("UserSessionSettingsFile", user_session_settings_filename); llinfos << "Using user session settings filename: " << user_session_settings_filename << llendl; @@ -2183,8 +2187,6 @@ bool LLAppViewer::initConfiguration() } loadSettingsFromDirectory("UserSession"); - // - load overrides from user_settings - loadSettingsFromDirectory("User"); // - apply command line settings clp.notify(); From f8678c27b2dfbdba1610b0284aa978139cb72bff Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:40:10 -0800 Subject: [PATCH 011/168] SOCIAL-547 WIP Add skin selection dropdown to login screen add confirmation dialog to mode change --- indra/newview/llpanellogin.cpp | 25 +++++++++++++++++++++++++ indra/newview/llpanellogin.h | 2 ++ 2 files changed, 27 insertions(+) diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 8d3b1fd7a0..3ca61b0aab 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -214,6 +214,8 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, } updateLocationCombo(false); + gSavedSettings.getControl("SessionSettingsFile")->getSignal()->connect(boost::bind(&onModeChange)); + LLComboBox* server_choice_combo = sInstance->getChild("server_combo"); server_choice_combo->setCommitCallback(onSelectServer, NULL); server_choice_combo->setFocusLostCallback(boost::bind(onServerComboLostFocus, _1)); @@ -1156,3 +1158,26 @@ void LLPanelLogin::updateLoginPanelLinks() sInstance->getChildView("create_new_account_text")->setVisible( system_grid); sInstance->getChildView("forgot_password_text")->setVisible( system_grid); } + +//static +void LLPanelLogin::onModeChange() +{ + LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(&onModeChangeConfirm, _1, _2)); +} + +//static +void LLPanelLogin::onModeChangeConfirm(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + switch (option) + { + case 0: + LLAppViewer::instance()->requestQuit(); + break; + case 1: + // do nothing + break; + default: + break; + } +} \ No newline at end of file diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index 1ef6539ecc..1430bec832 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -98,6 +98,8 @@ private: static void onServerComboLostFocus(LLFocusableElement*); static void updateServerCombo(); static void updateStartSLURL(); + static void onModeChange(); + static void onModeChangeConfirm(const LLSD& notification, const LLSD& response); static void updateLoginPanelLinks(); From 9ef646a8de73ad4fa3d59bea3f3cef66aad073d1 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:40:38 -0800 Subject: [PATCH 012/168] SOCIAL-547 WIP Add skin selection dropdown to login screen enable confirmation dialog in basic skin --- indra/newview/skins/minimal/xui/en/notification_visibility.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/skins/minimal/xui/en/notification_visibility.xml b/indra/newview/skins/minimal/xui/en/notification_visibility.xml index 9740474d37..4a808b19b7 100644 --- a/indra/newview/skins/minimal/xui/en/notification_visibility.xml +++ b/indra/newview/skins/minimal/xui/en/notification_visibility.xml @@ -27,6 +27,7 @@ + From 7a69d736b5e9e725cda9e9892b37d112883fd835 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:41:03 -0800 Subject: [PATCH 013/168] SOCIAL-547 WIP Add skin selection dropdown to login screen add skin chooser to login screen --- .../skins/default/xui/en/panel_login.xml | 40 +++++-- .../skins/minimal/xui/en/panel_login.xml | 110 ++++++++++-------- 2 files changed, 96 insertions(+), 54 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 806182bcb4..9782c23751 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -47,8 +47,8 @@ auto_resize="false" follows="left|bottom" name="login" layout="topleft" -width="695" -min_width="695" +width="705" +min_width="705" user_resize="false" height="80"> + + Mode: + + + + + Start at: @@ -136,7 +162,7 @@ control_name="NextLoginLocation" max_chars="128" top_pad="0" name="start_location_combo" - width="170"> + width="165"> http://join.secondlife.com/ - - http://secondlife.com/app/login/ - - + http://secondlife.eniac15.lindenlab.com/reg-in-client/ +name="login_html" +start_url="" +top="0" +height="600" + width="980" /> @@ -126,63 +122,83 @@ label="Remember password" font="SansSerifSmall" height="15" left_pad="18" - name="start_location_text" + name="mode_selection_text" top="20" width="130"> - Start at: + Mode: + max_chars="128" + top_pad="0" + control_name="SessionSettingsFile" + name="mode_combo" + width="120"> + label="Basic (Default)" + name="Basic" + value="settings_minimal.xml" /> - + label="Advanced" + name="Advanced" + value="" /> - + + Sign up + + Forgot your username or password? + + + Need help logging in? + From 0a05dff824beee98ded1ee1427597dbe30b630ea Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:41:17 -0800 Subject: [PATCH 014/168] SOCIAL-547 WIP Add skin selection dropdown to login screen add confirmation dialog to mode change --- indra/newview/skins/default/xui/en/notifications.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f008042a81..412349a0d1 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6714,6 +6714,17 @@ The site at '<nolink>[HOST_NAME]</nolink>' in realm ' + + Changing modes requires you to quit and restart. + + - Your CPU speed does not meet the minimum requirements. From f3238a700eb387dc87d75c2ee0032ecad9e29b54 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:41:46 -0800 Subject: [PATCH 015/168] remove skylight progress screen and unused skylight textures --- .../textures/login_teleport_background.jpg | Bin 130026 -> 0 bytes .../skins/minimal/textures/sl_logo.png | Bin 4542 -> 0 bytes .../skins/minimal/textures/textures.xml | 2 -- .../skins/minimal/xui/en/main_view.xml | 9 +------- .../skins/minimal/xui/en/panel_progress.xml | 21 ------------------ 5 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 indra/newview/skins/minimal/textures/login_teleport_background.jpg delete mode 100644 indra/newview/skins/minimal/textures/sl_logo.png delete mode 100644 indra/newview/skins/minimal/xui/en/panel_progress.xml diff --git a/indra/newview/skins/minimal/textures/login_teleport_background.jpg b/indra/newview/skins/minimal/textures/login_teleport_background.jpg deleted file mode 100644 index 43bf0a58f438e41af522d5f2a9738e6936cce7fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130026 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

job7dd0o~Ld{%mWgQ>4V)2GGY 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

ge{~ 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

SzBM%)M;Prti1>!_+8?*@+&KlJz;4{zglY|h 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 TJ52ETD`c|vB!AJXzaRe(li!!_ diff --git a/indra/newview/skins/minimal/textures/sl_logo.png b/indra/newview/skins/minimal/textures/sl_logo.png deleted file mode 100644 index 71830e7451b1c80a9832585e022c45af481cc7c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4542 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 diff --git a/indra/newview/skins/minimal/textures/textures.xml b/indra/newview/skins/minimal/textures/textures.xml index 432b2c20c8..8dd56e20d8 100644 --- a/indra/newview/skins/minimal/textures/textures.xml +++ b/indra/newview/skins/minimal/textures/textures.xml @@ -1,7 +1,5 @@  - - diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 88f06d9e63..629496db81 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -121,14 +121,7 @@ left="0" mouse_opaque="false" name="world_view_rect" - width="500"> - - + width="500"/> - - - From 73dda9419055a3ab37e0310032e65c780d0fb8b3 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:42:50 -0800 Subject: [PATCH 016/168] SOCIAL-551 WIP Add buttons to open people and profile windows add URL accessor for web content floaters --- indra/newview/llfloaterwebcontent.cpp | 5 +++++ indra/newview/llfloaterwebcontent.h | 1 + 2 files changed, 6 insertions(+) diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index 058567492b..bcbb01ab1d 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -400,3 +400,8 @@ void LLFloaterWebContent::onPopExternal() LLWeb::loadURLExternal( url ); }; } + +std::string LLFloaterWebContent::getURL() const +{ + return mAddressCombo->getValue().asString(); +} diff --git a/indra/newview/llfloaterwebcontent.h b/indra/newview/llfloaterwebcontent.h index ecc7e970d8..6c934158d0 100644 --- a/indra/newview/llfloaterwebcontent.h +++ b/indra/newview/llfloaterwebcontent.h @@ -65,6 +65,7 @@ public: void onClickStop(); void onEnterAddress(); void onPopExternal(); + std::string getURL() const; private: void open_media(const std::string& media_url, const std::string& target); From cc337162e3dec52e57e8dee6b564b7d186b9de4b Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:43:06 -0800 Subject: [PATCH 017/168] SOCIAL-551 WIP Add buttons to open people and profile windows add people and profile buttons to bottom tray --- .../skins/minimal/xui/en/panel_bottomtray.xml | 50 +++++++++++++++---- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml index 6c33a8f930..e9478c6465 100644 --- a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml @@ -223,10 +223,10 @@ min_height="28" min_width="65" mouse_opaque="false" - name="help_panel" + name="people_panel" top_delta="0" user_resize="false" - width="85"> + width="105"> + width="100"> + function="" + parameter="" /> + + + + + - Date: Wed, 23 Feb 2011 16:43:36 -0800 Subject: [PATCH 018/168] SOCIAL-551 WIP Add buttons to open people and profile windows added LLAvatarActions::profileVisible and hideProfile --- indra/newview/llavataractions.cpp | 33 ++++++++++++++++++++++++++++++- indra/newview/llavataractions.h | 2 ++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index f3f0cde221..014a387276 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -47,6 +47,7 @@ #include "llfloatergroups.h" #include "llfloaterreg.h" #include "llfloaterpay.h" +#include "llfloaterwebcontent.h" #include "llfloaterworldmap.h" #include "llgiveinventory.h" #include "llinventorybridge.h" @@ -315,7 +316,7 @@ void LLAvatarActions::showProfile(const LLUUID& id) std::string agent_name = LLCacheName::buildUsername(full_name); llinfos << "opening web profile for " << agent_name << llendl; std::string url = getProfileURL(agent_name); - LLWeb::loadWebURLInternal(url); + LLWeb::loadWebURLInternal(url, "", id.asString()); } else { @@ -336,6 +337,36 @@ void LLAvatarActions::showProfile(const LLUUID& id) } } +//static +bool LLAvatarActions::profileVisible(const LLUUID& id) +{ + LLFloaterWebContent *browser = dynamic_cast (LLFloaterReg::findInstance("web_content", id.asString())); + if (browser) + { + // PROFILES: open in webkit window + std::string full_name; + if (gCacheName->getFullName(id,full_name)) + { + std::string agent_name = LLCacheName::buildUsername(full_name); + llinfos << "opening web profile for " << agent_name << llendl; + std::string url = getProfileURL(agent_name); + return url == browser->getURL(); + } + } + return false; +} + + +//static +void LLAvatarActions::hideProfile(const LLUUID& id) +{ + LLFloaterWebContent *browser = dynamic_cast (LLFloaterReg::findInstance("web_content", id.asString())); + if (browser) + { + browser->closeFloater(); + } +} + // static void LLAvatarActions::showOnMap(const LLUUID& id) { diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h index 2db2918eed..956fed7461 100644 --- a/indra/newview/llavataractions.h +++ b/indra/newview/llavataractions.h @@ -93,6 +93,8 @@ public: * Show avatar profile. */ static void showProfile(const LLUUID& id); + static void hideProfile(const LLUUID& id); + static bool profileVisible(const LLUUID& id); /** * Show avatar on world map. From 20ad5181babd7662bddf95b94bb25cc522d6186d Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:44:04 -0800 Subject: [PATCH 019/168] SOCIAL-551 WIP Add buttons to open people and profile windows bottom tray button now toggles profile window --- indra/newview/llbottomtray.cpp | 3 +++ indra/newview/llviewermenu.cpp | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 35e4548483..da636068dc 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -38,7 +38,9 @@ #include "lltexteditor.h" // newview includes +#include "llagent.h" #include "llagentcamera.h" +#include "llavataractions.h" #include "llchiclet.h" #include "llfloatercamera.h" #include "llhints.h" @@ -812,6 +814,7 @@ void LLBottomTray::draw() LLRect rect = mLandingTab->calcScreenRect(); mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h); } + getChild("show_profile_btn")->setToggleState(LLAvatarActions::profileVisible(gAgent.getID())); } bool LLBottomTray::onContextMenuItemEnabled(const LLSD& userdata) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7cc04e0338..dd6b034dc8 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5788,6 +5788,44 @@ class LLShowAgentProfile : public view_listener_t } }; +class LLToggleAgentProfile : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LLUUID agent_id; + if (userdata.asString() == "agent") + { + agent_id = gAgent.getID(); + } + else if (userdata.asString() == "hit object") + { + LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); + if (objectp) + { + agent_id = objectp->getID(); + } + } + else + { + agent_id = userdata.asUUID(); + } + + LLVOAvatar* avatar = find_avatar_from_object(agent_id); + if (avatar) + { + if (!LLAvatarActions::profileVisible(avatar->getID())) + { + LLAvatarActions::showProfile(avatar->getID()); + } + else + { + LLAvatarActions::hideProfile(avatar->getID()); + } + } + return true; + } +}; + class LLLandEdit : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -8184,6 +8222,7 @@ void initialize_menus() view_listener_t::addMenu(new LLShowHelp(), "ShowHelp"); view_listener_t::addMenu(new LLPromptShowURL(), "PromptShowURL"); view_listener_t::addMenu(new LLShowAgentProfile(), "ShowAgentProfile"); + view_listener_t::addMenu(new LLToggleAgentProfile(), "ToggleAgentProfile"); view_listener_t::addMenu(new LLToggleControl(), "ToggleControl"); view_listener_t::addMenu(new LLCheckControl(), "CheckControl"); view_listener_t::addMenu(new LLGoToObject(), "GoToObject"); From c1c6914f5d8126398a72c05f0d28975ce48717de Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 23 Feb 2011 16:44:20 -0800 Subject: [PATCH 020/168] SOCIAL-551 WIP Add buttons to open people and profile windows remove dock button from undocked sidetray UI --- .../xui/en/panel_side_tray_tab_caption.xml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml diff --git a/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml b/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml new file mode 100644 index 0000000000..c8b0af154c --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml @@ -0,0 +1,37 @@ + + + + + From 598ee92b0e43748f065b82aa33404550c32dc3c4 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 11:06:42 -0800 Subject: [PATCH 021/168] SOCIAL-551 WIP Add buttons to open people and profile windows bring back sidetray container in minimal skin --- indra/newview/skins/minimal/xui/en/main_view.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 629496db81..1fadd2d550 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -161,6 +161,16 @@ + Date: Thu, 24 Feb 2011 11:48:26 -0800 Subject: [PATCH 022/168] unbork linux build --- indra/newview/llpanellogin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 3ca61b0aab..903cf4780d 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -1180,4 +1180,4 @@ void LLPanelLogin::onModeChangeConfirm(const LLSD& notification, const LLSD& res default: break; } -} \ No newline at end of file +} From 8be54fc52ee5970d21388447fe699454f38baf20 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:33:57 -0800 Subject: [PATCH 023/168] SOCIAL-551 WIP add buttons to open people and profile windows added option OpenSidePanelsInFloaters to always undock side panel content also set default configuration to basic --- indra/newview/app_settings/settings.xml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0d7437ed1c..71ff7177ee 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12375,7 +12375,7 @@ Type String Value - + settings_minimal.xml UserSessionSettingsFile @@ -12388,5 +12388,16 @@ Value + OpenSidePanelsInFloaters + + Comment + If true, will always open side panel contents in a floater. + Persist + 1 + Type + Boolean + Value + 0 + From 7f448b02c0d88131bf607afc5b1c8102ef311be9 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:34:21 -0800 Subject: [PATCH 024/168] SOCIAL-551 WIP add buttons to open people and profile windows basic configuration has OpenSidePanelsInFloaters turned on --- indra/newview/app_settings/settings_minimal.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 315c811280..b399716313 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -312,5 +312,16 @@ Value http://interest.secondlife.com/static/viewer/avatar + OpenSidePanelsInFloaters + + Comment + If true, will always open side panel contents in a floater. + Persist + 1 + Type + Boolean + Value + 1 + From 874da4cde8914de81992505ade8bc7f106a6019a Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:37:06 -0800 Subject: [PATCH 025/168] SOCIAL-551 WIP add buttons to open people and profile windows ShowSideTrayPanel action can now toggle undocked panels OpenSidePanelsInFloaters works now Clossing a sidepanel floater will not return contents to side tray close button enabled in minimal skin for side panel floaters --- indra/newview/llfloatersidetraytab.cpp | 6 + indra/newview/llfloatersidetraytab.h | 2 + indra/newview/llsidetray.cpp | 89 +++++++-- indra/newview/llsidetray.h | 6 +- indra/newview/llviewermenu.cpp | 19 +- .../minimal/xui/en/floater_web_content.xml | 172 ++++++++++++++++++ 6 files changed, 269 insertions(+), 25 deletions(-) create mode 100644 indra/newview/skins/minimal/xui/en/floater_web_content.xml diff --git a/indra/newview/llfloatersidetraytab.cpp b/indra/newview/llfloatersidetraytab.cpp index f13b4db3a0..94407e6da0 100644 --- a/indra/newview/llfloatersidetraytab.cpp +++ b/indra/newview/llfloatersidetraytab.cpp @@ -30,6 +30,7 @@ // newview includes #include "lltransientfloatermgr.h" +#include "llsidetray.h" LLFloaterSideTrayTab::LLFloaterSideTrayTab(const LLSD& key, const Params& params) : LLFloater(key, params) @@ -43,3 +44,8 @@ LLFloaterSideTrayTab::~LLFloaterSideTrayTab() { LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::GLOBAL, this); } + +void LLFloaterSideTrayTab::onClose(bool app_quitting) +{ + LLSideTray::getInstance()->setTabDocked(getName(), true); +} diff --git a/indra/newview/llfloatersidetraytab.h b/indra/newview/llfloatersidetraytab.h index e47f82e8ba..89f2444a0e 100644 --- a/indra/newview/llfloatersidetraytab.h +++ b/indra/newview/llfloatersidetraytab.h @@ -42,6 +42,8 @@ class LLFloaterSideTrayTab : public LLFloater public: LLFloaterSideTrayTab(const LLSD& key, const Params& params = getDefaultParams()); ~LLFloaterSideTrayTab(); + + void onClose(bool app_quitting); }; #endif // LL_LLFLOATERSIDETRAYTAB_H diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index eb537c7d7b..1fc34bd681 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -629,8 +629,16 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel std::string tab_name = tab->getName(); + bool tab_attached = isTabAttached(tab_name); + + if (tab_attached && gSavedSettings.getBOOL("OpenSidePanelsInFloaters")) + { + tab->toggleTabDocked(); + tab_attached = false; + } + // Select tab and expand Side Tray only when a tab is attached. - if (isTabAttached(tab_name)) + if (tab_attached) { selectTabByName(tab_name); if (mCollapsed) @@ -641,14 +649,7 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name); if (!floater_tab) return NULL; - // Restore the floater if it was minimized. - if (floater_tab->isMinimized()) - { - floater_tab->setMinimized(FALSE); - } - - // Send the floater to the front. - floater_tab->setFrontmost(); + floater_tab->openFloater(panel_name); } LLSideTrayPanelContainer* container = dynamic_cast(view->getParent()); @@ -1161,23 +1162,43 @@ void LLSideTray::reshape(S32 width, S32 height, BOOL called_from_parent) */ LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& params) { + LLPanel* new_panel = NULL; + // Look up the tab in the list of detached tabs. child_vector_const_iter_t child_it; for ( child_it = mDetachedTabs.begin(); child_it != mDetachedTabs.end(); ++child_it) { - LLPanel* panel = openChildPanel(*child_it, panel_name, params); - if (panel) return panel; - } + new_panel = openChildPanel(*child_it, panel_name, params); + if (new_panel) break; + } // Look up the tab in the list of attached tabs. for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it) - { - LLPanel* panel = openChildPanel(*child_it, panel_name, params); - if (panel) return panel; + { + new_panel = openChildPanel(*child_it, panel_name, params); + if (new_panel) break; } - return NULL; + + return new_panel; } +void LLSideTray::hidePanel(const std::string& panel_name) +{ + LLPanel* panelp = getPanel(panel_name); + if (panelp) + { + if(isTabAttached(panel_name)) + { + collapseSideBar(); + } + else + { + LLFloaterReg::hideInstance("side_bar_tab", panel_name); + } + } +} + + void LLSideTray::togglePanel(LLPanel* &sub_panel, const std::string& panel_name, const LLSD& params) { if(!sub_panel) @@ -1267,6 +1288,42 @@ bool LLSideTray::isPanelActive(const std::string& panel_name) return (panel->getName() == panel_name); } +void LLSideTray::setTabDocked(const std::string& tab_name, bool dock) +{ + LLSideTrayTab* tab = getTab(tab_name); + if (!tab) + { // not a docked tab, look through detached tabs + for(child_vector_iter_t tab_it = mDetachedTabs.begin(), tab_end_it = mDetachedTabs.end(); + tab_it != tab_end_it; + ++tab_it) + { + if ((*tab_it)->getName() == tab_name) + { + tab = *tab_it; + break; + } + } + + } + + if (tab) + { + bool tab_attached = isTabAttached(tab_name); + LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name); + if (!floater_tab) return; + + if (dock && !tab_attached) + { + tab->dock(floater_tab); + } + else if (!dock && tab_attached) + { + tab->undock(floater_tab); + } + } +} + + void LLSideTray::updateSidetrayVisibility() { // set visibility of parent container based on collapsed state diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index 184d78845f..2516b5689f 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -97,6 +97,8 @@ public: */ LLPanel* showPanel (const std::string& panel_name, const LLSD& params = LLSD()); + void hidePanel (const std::string& panel_name); + /** * Toggling Side Tray tab which contains "sub_panel" child of "panel_name" panel. * If "sub_panel" is not visible Side Tray is opened to display it, @@ -112,6 +114,8 @@ public: LLPanel* getActivePanel (); bool isPanelActive (const std::string& panel_name); + void setTabDocked(const std::string& tab_name, bool dock); + /* * get the panel of given type T (don't show it or do anything else with it) */ @@ -215,7 +219,7 @@ private: if (LLSideTray::instanceCreated()) LLSideTray::getInstance()->setEnabled(FALSE); } - + private: LLPanel* mButtonsPanel; typedef std::map button_map_t; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index dd6b034dc8..02ef1e4e50 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5651,15 +5651,18 @@ class LLShowSidetrayPanel : public view_listener_t bool handleEvent(const LLSD& userdata) { std::string panel_name = userdata.asString(); - // Toggle the panel - if (!LLSideTray::getInstance()->isPanelActive(panel_name)) + + LLPanel* panel = LLSideTray::getInstance()->getPanel(panel_name); + if (panel) { - // LLFloaterInventory::showAgentInventory(); - LLSideTray::getInstance()->showPanel(panel_name, LLSD()); - } - else - { - LLSideTray::getInstance()->collapseSideBar(); + if (panel->isInVisibleChain()) + { + LLSideTray::getInstance()->hidePanel(panel_name); + } + else + { + LLSideTray::getInstance()->showPanel(panel_name); + } } return true; } diff --git a/indra/newview/skins/minimal/xui/en/floater_web_content.xml b/indra/newview/skins/minimal/xui/en/floater_web_content.xml new file mode 100644 index 0000000000..4a13339ee4 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_web_content.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + From 83e92c6190e0832f85c40e79883e8b1607ad8db2 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:37:30 -0800 Subject: [PATCH 026/168] SOCIAL-551 WIP add buttons to open people and profile windows people button now toggles according to people window visibility --- indra/newview/llbottomtray.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index da636068dc..3d61e13f02 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -46,6 +46,7 @@ #include "llhints.h" #include "llimfloater.h" // for LLIMFloater #include "llnearbychatbar.h" +#include "llsidetray.h" #include "llspeakbutton.h" #include "llsplitbutton.h" #include "llsyswellwindow.h" @@ -815,6 +816,17 @@ void LLBottomTray::draw() mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h); } getChild("show_profile_btn")->setToggleState(LLAvatarActions::profileVisible(gAgent.getID())); + + LLPanel* panel = LLSideTray::getInstance()->getPanel("panel_people"); + if (panel && panel->isInVisibleChain()) + { + getChild("show_people_button")->setToggleState(true); + } + else + { + getChild("show_people_button")->setToggleState(false); + } + } bool LLBottomTray::onContextMenuItemEnabled(const LLSD& userdata) From fd8dff8a448e7d2125a9b91351efb7d69e10e0a3 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:38:29 -0800 Subject: [PATCH 027/168] SOCIAL-551 WIP add buttons to open people and profile windows detecting if a profile window is visible now relies on the key the window was opened with and not the current url of that window this way you can navigate away from your profile and still close the window with the profile button removed unused getURL() function --- indra/newview/llavataractions.cpp | 14 +------------- indra/newview/llfloaterwebcontent.cpp | 5 ----- indra/newview/llfloaterwebcontent.h | 1 - 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 014a387276..afa8b62c74 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -341,19 +341,7 @@ void LLAvatarActions::showProfile(const LLUUID& id) bool LLAvatarActions::profileVisible(const LLUUID& id) { LLFloaterWebContent *browser = dynamic_cast (LLFloaterReg::findInstance("web_content", id.asString())); - if (browser) - { - // PROFILES: open in webkit window - std::string full_name; - if (gCacheName->getFullName(id,full_name)) - { - std::string agent_name = LLCacheName::buildUsername(full_name); - llinfos << "opening web profile for " << agent_name << llendl; - std::string url = getProfileURL(agent_name); - return url == browser->getURL(); - } - } - return false; + return browser && browser->isShown(); } diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index bcbb01ab1d..058567492b 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -400,8 +400,3 @@ void LLFloaterWebContent::onPopExternal() LLWeb::loadURLExternal( url ); }; } - -std::string LLFloaterWebContent::getURL() const -{ - return mAddressCombo->getValue().asString(); -} diff --git a/indra/newview/llfloaterwebcontent.h b/indra/newview/llfloaterwebcontent.h index 6c934158d0..ecc7e970d8 100644 --- a/indra/newview/llfloaterwebcontent.h +++ b/indra/newview/llfloaterwebcontent.h @@ -65,7 +65,6 @@ public: void onClickStop(); void onEnterAddress(); void onPopExternal(); - std::string getURL() const; private: void open_media(const std::string& media_url, const std::string& target); From 098145b15570b2f5b0358edc329d4852f226eba0 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:39:19 -0800 Subject: [PATCH 028/168] SOCIAL-551 WIP add buttons to open people and profile windows people button now shows people window --- .../skins/minimal/xui/en/main_view.xml | 39 ++++++++----------- .../skins/minimal/xui/en/panel_bottomtray.xml | 5 ++- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 1fadd2d550..85e1045357 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -40,16 +40,7 @@ tab_stop="false" name="hud" width="1024"> - - + width="1024"> - - - + + + + + + function="ShowSidetrayPanel" + parameter="panel_people" /> Date: Thu, 24 Feb 2011 18:40:10 -0800 Subject: [PATCH 029/168] SOCIAL-551 FIX add buttons to open people and profile windows close button enabled in minimal skin for side panel floaters removed redundant heading from torn off side panel floaters --- .../minimal/xui/en/floater_side_bar_tab.xml | 10 +++++++ .../xui/en/panel_side_tray_tab_caption.xml | 28 +------------------ 2 files changed, 11 insertions(+), 27 deletions(-) create mode 100644 indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml 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 new file mode 100644 index 0000000000..83b1260620 --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_side_bar_tab.xml @@ -0,0 +1,10 @@ + + + diff --git a/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml b/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml index c8b0af154c..9f2f41ba31 100644 --- a/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml +++ b/indra/newview/skins/minimal/xui/en/panel_side_tray_tab_caption.xml @@ -3,35 +3,9 @@ background_visible="true" bottom="0" follows="left|top|right" - height="30" + height="5" width="333" layout="topleft" left="0" name="sidetray_tab_panel"> - - From e0b75fd528390277e265aae810a9bf5a1b595405 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:41:06 -0800 Subject: [PATCH 030/168] SOCIAL-555 WIP back quit confirmation notification flagged various notification as "failure" notifications that should be shown in minimal skin --- indra/newview/skins/default/xui/en/notifications.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 412349a0d1..58b50dfec1 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -163,8 +163,9 @@ No tutorial is currently available. icon="alertmodal.tga" name="LoginFailedNoNetwork" type="alertmodal"> -Could not connect to the [SECOND_LIFE_GRID]. -'[DIAGNOSTIC]' + fail + Could not connect to the [SECOND_LIFE_GRID]. + '[DIAGNOSTIC]' Make sure your Internet connection is working properly. Message Template [PATH] not found. + fail @@ -689,6 +691,7 @@ There was a problem uploading a report screenshot due to the following reason: [ icon="alertmodal.tga" name="MustAgreeToLogIn" type="alertmodal"> + fail You must agree to the Terms of Service to continue logging into [SECOND_LIFE]. @@ -726,6 +729,7 @@ You can not wear that item because it has not yet loaded. Please try again in a icon="alertmodal.tga" name="MustHaveAccountToLogIn" type="alertmodal"> + fail Oops! Something was left blank. You need to enter the Username name of your avatar. @@ -747,6 +751,7 @@ You need an account to enter [SECOND_LIFE]. Would you like to create one now? icon="alertmodal.tga" name="InvalidCredentialFormat" type="alertmodal"> + fail You need to enter either the Username or both the First and Last name of your avatar into the Username field, then login again. From 45fd3e53a1be97927ab81f566a15ef33834ed866 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 18:44:54 -0800 Subject: [PATCH 031/168] SOCIAL-555 WIP back quit confirmation notification re-enabled quit confirmation --- indra/newview/skins/minimal/xui/en/notification_visibility.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/minimal/xui/en/notification_visibility.xml b/indra/newview/skins/minimal/xui/en/notification_visibility.xml index 4a808b19b7..97b9141534 100644 --- a/indra/newview/skins/minimal/xui/en/notification_visibility.xml +++ b/indra/newview/skins/minimal/xui/en/notification_visibility.xml @@ -9,7 +9,6 @@ - @@ -24,6 +23,7 @@ + From c373474cd4de4c34ed1d2b766bdde6d9a0c85351 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 19:21:30 -0800 Subject: [PATCH 032/168] enabled generic error messages from server for minimal skin --- indra/newview/skins/default/xui/en/notifications.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 58b50dfec1..80b6867807 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2434,6 +2434,7 @@ Display settings have been set to recommended levels based on your system config name="ErrorMessage" type="alertmodal"> [ERROR_MESSAGE] + fail From 5e0305ce4ce4448a9d2251dd9691f37c7b7945e1 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 19:23:18 -0800 Subject: [PATCH 033/168] SOCIAL-577 WIP create streamlined navigation bar made navigation bar appear in basic skin, with simplified UI --- .../skins/minimal/xui/en/main_view.xml | 3 +- .../minimal/xui/en/panel_navigation_bar.xml | 119 +++++++++++------- 2 files changed, 73 insertions(+), 49 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 85e1045357..6e37266eff 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -23,7 +23,7 @@ orientation="vertical" top="0"> - - - - - - - - - - - - - + From 318842b15871cbee47a944ed243352258211321d Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 24 Feb 2011 19:35:15 -0800 Subject: [PATCH 034/168] SOCIAL-552 FIX removed badges from address field in navigation bar --- .../minimal/xui/en/panel_navigation_bar.xml | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml b/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml index 3ef5b9b0de..e5548cce5e 100644 --- a/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml @@ -86,15 +86,49 @@ width="31" /> name="location_combo" top_delta="0" width="360"> + + height="0" + visible="false"/> + + + + + + + + - Date: Thu, 24 Feb 2011 19:42:28 -0800 Subject: [PATCH 035/168] SOCIAL-552 FIX removed badges from address field in navigation bar modified widget template instead of instance --- indra/newview/lllocationinputctrl.cpp | 1 - .../minimal/xui/en/panel_navigation_bar.xml | 44 ------ .../minimal/xui/en/widgets/location_input.xml | 131 ++++++++++++++++++ 3 files changed, 131 insertions(+), 45 deletions(-) create mode 100644 indra/newview/skins/minimal/xui/en/widgets/location_input.xml diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 55164f6094..5c65dcec34 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -211,7 +211,6 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) { // Lets replace default LLLineEditor with LLLocationLineEditor // to make needed escaping while copying and cutting url - this->removeChild(mTextEntry); delete mTextEntry; // Can't access old mTextEntry fields as they are protected, so lets build new params diff --git a/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml b/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml index e5548cce5e..65d9e8a2ab 100644 --- a/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/minimal/xui/en/panel_navigation_bar.xml @@ -86,50 +86,6 @@ width="31" /> name="location_combo" top_delta="0" width="360"> - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + From 69a84d1e4cd25d6b440cffc1306604c45100475b Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 25 Feb 2011 09:58:56 -0800 Subject: [PATCH 036/168] remove flicker from top of world view --- indra/newview/skins/minimal/xui/en/main_view.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 6e37266eff..89afb302a8 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -43,6 +43,7 @@ Date: Fri, 25 Feb 2011 11:09:11 -0800 Subject: [PATCH 037/168] SOCIAL-575 FIX Side panel displayed in Minimal skin on first launch --- indra/newview/llstartup.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 0eac7d5e2a..57314f14a8 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1703,9 +1703,6 @@ bool idle_startup() // Set the show start location to true, now that the user has logged // on with this install. gSavedSettings.setBOOL("ShowStartLocation", TRUE); - - LLSideTray::getInstance()->showPanel("panel_home", LLSD()); - } // We're successfully logged in. From 87a0aaa7d8365035951c069a69994dbaeb688a87 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 25 Feb 2011 11:22:35 -0800 Subject: [PATCH 038/168] fixed some layout on basic mode login screen --- indra/newview/skins/minimal/xui/en/panel_login.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/panel_login.xml b/indra/newview/skins/minimal/xui/en/panel_login.xml index 8865f8fbc8..9b07051d81 100644 --- a/indra/newview/skins/minimal/xui/en/panel_login.xml +++ b/indra/newview/skins/minimal/xui/en/panel_login.xml @@ -47,8 +47,8 @@ auto_resize="false" follows="left|bottom" name="login" layout="topleft" -width="695" -min_width="695" +width="570" +min_width="570" user_resize="false" height="80"> From 9d6a79efed0809a2d47cbcadc6c338b3a3f8ce92 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 25 Feb 2011 11:28:54 -0800 Subject: [PATCH 039/168] SOCIAL-557 FIX Enable clickable URLS also killed forced bandwidth throttle settings from skylight --- indra/newview/CMakeLists.txt | 1 + .../newview/app_settings/settings_minimal.xml | 31 ------------------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 4acffeb66b..0308a59658 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1339,6 +1339,7 @@ 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_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index b399716313..62b314d167 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -45,15 +45,6 @@ Value 1 - DisableTextHyperlinkActions - - Comment - Disable highlighting and linking of URLs in XUI text boxes - Type - Boolean - Value - 1 - EnableGrab Comment @@ -191,28 +182,6 @@ Value 0 - ThrottleBandwidthKBPS - - Comment - Maximum allowable downstream bandwidth (kilo bits per second) - Persist - 1 - Type - F32 - Value - 1500.0 - - XferThrottle - - Comment - Maximum allowable downstream bandwidth for asset transfers (bits per second) - Persist - 1 - Type - F32 - Value - 450000.0 - ChatFontSize Comment From 5663ef405d3340a542bb4ecb6375f3d54966490a Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 25 Feb 2011 13:09:59 -0800 Subject: [PATCH 040/168] added close button for avatar picker and destination guide --- .../minimal/textures/bottomtray/close_off.png | Bin 0 -> 3184 bytes .../minimal/textures/bottomtray/close_over.png | Bin 0 -> 3173 bytes .../minimal/textures/bottomtray/close_press.png | Bin 0 -> 3259 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_off.png create mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_over.png create mode 100644 indra/newview/skins/minimal/textures/bottomtray/close_press.png diff --git a/indra/newview/skins/minimal/textures/bottomtray/close_off.png b/indra/newview/skins/minimal/textures/bottomtray/close_off.png new file mode 100644 index 0000000000000000000000000000000000000000..241a24bde904c3a84f9f341858a382abef23330f GIT binary patch literal 3184 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 LNkvXXu0mjf9@q1& literal 0 HcmV?d00001 diff --git a/indra/newview/skins/minimal/textures/bottomtray/close_press.png b/indra/newview/skins/minimal/textures/bottomtray/close_press.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed9c99a26f13d93756eba2ba4dba9c1b3cba9d8 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 From 31d0bf5ba5dd5e1df6c42dd19ce63ef3978a2f4c Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Fri, 25 Feb 2011 13:48:20 -0800 Subject: [PATCH 041/168] updates destination guide and avatar picker urls added close button to destination guide and avatar picker --- indra/llui/llradiogroup.cpp | 2 +- indra/newview/CMakeLists.txt | 2 ++ .../newview/app_settings/settings_minimal.xml | 6 ++++-- indra/newview/llviewermenu.cpp | 8 +++++--- indra/newview/llviewermenu.h | 2 ++ indra/newview/llviewerwindow.cpp | 1 + .../skins/minimal/textures/textures.xml | 3 +++ .../skins/minimal/xui/en/main_view.xml | 20 +++++++++++++++---- 8 files changed, 34 insertions(+), 10 deletions(-) diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp index 6e9586369f..3a12debf7e 100644 --- a/indra/llui/llradiogroup.cpp +++ b/indra/llui/llradiogroup.cpp @@ -346,7 +346,7 @@ void LLRadioGroup::setValue( const LLSD& value ) } else { - llwarns << "LLRadioGroup::setValue: value not found: " << value.asString() << llendl; + setSelectedIndex(-1, TRUE); } } } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 0308a59658..4ed59f039e 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1298,6 +1298,8 @@ endif (WINDOWS) set(viewer_XUI_FILES skins/default/colors.xml skins/default/textures/textures.xml + skins/minimal/colors.xml + skins/minimal/textures/textures.xml diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 62b314d167..04712ec30b 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -34,7 +34,7 @@ Type String Value - http://interest.secondlife.com/viewer/guide + http://pdp48.lindenlab.com:8001/viewer/guide/ DisableExternalBrowser @@ -279,7 +279,9 @@ Type String Value - http://interest.secondlife.com/static/viewer/avatar + + http://pdp48.lindenlab.com:8001/static/viewer/avatar/index.html + OpenSidePanelsInFloaters diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 02ef1e4e50..82df525a4f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -843,9 +843,9 @@ class LLAdvancedCheckFeature : public view_listener_t } }; -void LLDestinationAndAvatarShow(const LLSD& value) +void toggle_destination_and_avatar_picker(const LLSD& show) { - S32 panel_idx = value.isDefined() ? value.asInteger() : -1; + S32 panel_idx = show.isDefined() ? show.asInteger() : -1; LLView* container = gViewerWindow->getRootView()->getChildView("avatar_picker_and_destination_guide_container"); LLMediaCtrl* destinations = container->findChild("destination_guide_contents"); LLMediaCtrl* avatar_picker = container->findChild("avatar_picker_contents"); @@ -870,6 +870,8 @@ void LLDestinationAndAvatarShow(const LLSD& value) avatar_picker->setVisible(false); break; } + + gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("avatar_and_destination_btns")->setValue(show); }; @@ -8246,5 +8248,5 @@ void initialize_menus() view_listener_t::addMenu(new LLToggleUIHints(), "ToggleUIHints"); - commit.add("DestinationAndAvatar.show", boost::bind(&LLDestinationAndAvatarShow, _2)); + commit.add("DestinationAndAvatar.show", boost::bind(&toggle_destination_and_avatar_picker, _2)); } diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index 87cb4efbc4..b4e239b0cd 100644 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -126,6 +126,8 @@ 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/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 274dbe2cc8..1ce1135b1e 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1777,6 +1777,7 @@ void LLViewerWindow::initWorldUI() 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) diff --git a/indra/newview/skins/minimal/textures/textures.xml b/indra/newview/skins/minimal/textures/textures.xml index 8dd56e20d8..3e2f5cd397 100644 --- a/indra/newview/skins/minimal/textures/textures.xml +++ b/indra/newview/skins/minimal/textures/textures.xml @@ -2,4 +2,7 @@ + + + diff --git a/indra/newview/skins/minimal/xui/en/main_view.xml b/indra/newview/skins/minimal/xui/en/main_view.xml index 89afb302a8..2a3107398d 100644 --- a/indra/newview/skins/minimal/xui/en/main_view.xml +++ b/indra/newview/skins/minimal/xui/en/main_view.xml @@ -124,20 +124,20 @@ name="bottom_tray_container" visible="false"/> + - - - - - - - - - - - - - - - - - - - - - - - - - - http://www.secondlife.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/indra/newview/skins/minimal/xui/en/panel_status_bar.xml b/indra/newview/skins/minimal/xui/en/panel_status_bar.xml new file mode 100644 index 0000000000..6ccd0e938d --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/panel_status_bar.xml @@ -0,0 +1,62 @@ + + + + Packet Loss + + + Bandwidth + + + [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt] + + + [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt] + + + L$ [AMT] + + + + + + + + + + + + + + - - - - - - - - - - - - - - - From 78d3fb317941dc04a3398e4c079083ada967567d Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 28 Feb 2011 17:47:19 -0800 Subject: [PATCH 060/168] SOCIAL-607 FIX People Panel is open and there is nobody nearby a message is displayed which directs users toward Search and World Map --- indra/newview/skins/minimal/xui/en/panel_people.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/panel_people.xml b/indra/newview/skins/minimal/xui/en/panel_people.xml index bbc82f032d..9c19e445fe 100644 --- a/indra/newview/skins/minimal/xui/en/panel_people.xml +++ b/indra/newview/skins/minimal/xui/en/panel_people.xml @@ -13,16 +13,16 @@ width="333"> + value="No recent people. Looking for people to hang out with? Try the Destinations button below." /> + value="Didn't find what you're looking for? Try the Destinations button below." /> + value="No one nearby. Looking for people to hang out with? Try the Destinations button below." /> + value="Didn't find what you're looking for? Try the Destinations button below." /> From b68f02fa5433eb5d3dff6edc8941e9fb527678e7 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 28 Feb 2011 17:50:49 -0800 Subject: [PATCH 061/168] SOCIAL-607 FIX People Panel is open and there is nobody nearby a message is displayed which directs users toward Search and World Map --- indra/newview/skins/minimal/xui/en/panel_people.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/panel_people.xml b/indra/newview/skins/minimal/xui/en/panel_people.xml index 9c19e445fe..4a72653d76 100644 --- a/indra/newview/skins/minimal/xui/en/panel_people.xml +++ b/indra/newview/skins/minimal/xui/en/panel_people.xml @@ -16,13 +16,13 @@ value="No recent people. Looking for people to hang out with? Try the Destinations button below." /> + value="No recent people with that name." /> + value="No one nearby with that name." /> @@ -31,12 +31,12 @@ value="No friends" /> - Find friends using [secondlife:///app/search/people Search] or right-click on a Resident to add them as a friend. -Looking for people to hang out with? Try the [secondlife:///app/worldmap World Map]. + Right-click on a Resident to add them as a friend. +Looking for people to hang out with? Try the Destinations button below. - Didn't find what you're looking for? Try [secondlife:///app/search/people/[SEARCH_TERM] Search]. + Didn't find what you're looking for? Try the Destinations button below.. Date: Mon, 28 Feb 2011 22:06:21 -0800 Subject: [PATCH 062/168] SOCIAL-608 WIP Classified link is available in Basic mode --- indra/newview/app_settings/settings.xml | 33 +++++++++++++++ .../newview/app_settings/settings_minimal.xml | 33 +++++++++++++++ indra/newview/llgroupactions.cpp | 6 +++ indra/newview/llpanelpicks.cpp | 12 ++++++ indra/newview/llsidetray.cpp | 2 +- .../skins/default/xui/en/notifications.xml | 41 ++++++++++++++++++- 6 files changed, 125 insertions(+), 2 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index ee1d5b140f..011a57c656 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12421,5 +12421,38 @@ Value 0 + EnableClassifieds + + Comment + Enable creation of new classified ads + Persist + 1 + Type + Boolean + Value + 1 + + EnableGroupInfo + + Comment + Enable viewing and editing of group info. + Persist + 1 + Type + Boolean + Value + 1 + + EnablePicks + + Comment + Enable editing of picks + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 64e1563e3c..61ae22cb60 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -248,5 +248,38 @@ 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 + + EnablePicks + + Comment + Enable editing of picks + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index 5393678a6b..7b7780cba8 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -53,6 +53,12 @@ public: bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) { + if (!LLUI::sSettingGroups["config"]->getBOOL("EnableGroupInfo")) + { + LLNotificationsUtil::add("NoGroupInfo"); + return false; + } + if (tokens.size() < 1) { return false; diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index c4f3866cad..72db138ef0 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -83,6 +83,12 @@ public: bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) { + if (!LLUI::sSettingGroups["config"]->getBOOL("EnablePicks")) + { + LLNotificationsUtil::add("NoPicks"); + return false; + } + // handle app/classified/create urls first if (params.size() == 1 && params[0].asString() == "create") { @@ -189,6 +195,12 @@ public: bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) { + if (!LLUI::sSettingGroups["config"]->getBOOL("EnableClassifieds")) + { + LLNotificationsUtil::add("NoClassifieds"); + return false; + } + // handle app/classified/create urls first if (params.size() == 1 && params[0].asString() == "create") { diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index 1fc34bd681..bfdb47dc52 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -631,7 +631,7 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel bool tab_attached = isTabAttached(tab_name); - if (tab_attached && gSavedSettings.getBOOL("OpenSidePanelsInFloaters")) + if (tab_attached && LLUI::sSettingGroups["config"]->getBOOL("OpenSidePanelsInFloaters")) { tab->toggleTabDocked(); tab_attached = false; diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 12f4a11372..b010f4f99f 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6952,7 +6952,46 @@ The site at '<nolink>[HOST_NAME]</nolink>' in realm ' yestext="Quit" notext="Don't Quit"/> - + + + fail + Creation and editing of Classifieds is only available in Standard mode. Would you like to logout and change modes? + + + + + fail + Group info and editing is only available in Standard mode. Would you like to logout and change modes? + + + + + fail + Creation and editing of Picks is only available in Standard mode. Would you like to logout and change modes? + + + - Your CPU speed does not meet the minimum requirements. From e062a2778b034d2f5df67cc8ec6f98203c6dbf73 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 28 Feb 2011 23:43:05 -0800 Subject: [PATCH 063/168] SOCIAL-608 FIX Create Classified link is available in Basic mode SOCIAL-609 FIX Create Pick link is available in Basic mode in the web profile SOCIAL-610 FIX View group info in Viewer sidebar are available in Basic mode --- indra/newview/llgroupactions.cpp | 4 ++-- indra/newview/llpanelpicks.cpp | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index 7b7780cba8..6953723f0c 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -55,8 +55,8 @@ public: { if (!LLUI::sSettingGroups["config"]->getBOOL("EnableGroupInfo")) { - LLNotificationsUtil::add("NoGroupInfo"); - return false; + LLNotificationsUtil::add("NoGroupInfo", LLSD(), LLSD(), std::string("ConfirmQuit")); + return true; } if (tokens.size() < 1) diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 72db138ef0..d27f29ca14 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -70,6 +70,7 @@ static const std::string CLASSIFIED_NAME("classified_name"); static LLRegisterPanelClassWrapper t_panel_picks("panel_picks"); + class LLPickHandler : public LLCommandHandler, public LLAvatarPropertiesObserver { @@ -85,8 +86,8 @@ public: { if (!LLUI::sSettingGroups["config"]->getBOOL("EnablePicks")) { - LLNotificationsUtil::add("NoPicks"); - return false; + LLNotificationsUtil::add("NoPicks", LLSD(), LLSD(), std::string("ConfirmQuit")); + return true; } // handle app/classified/create urls first @@ -197,8 +198,8 @@ public: { if (!LLUI::sSettingGroups["config"]->getBOOL("EnableClassifieds")) { - LLNotificationsUtil::add("NoClassifieds"); - return false; + LLNotificationsUtil::add("NoClassifieds", LLSD(), LLSD(), std::string("ConfirmQuit")); + return true; } // handle app/classified/create urls first From a10cdd9d57db3a1f44a22d987e2349d2bb0f4808 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 1 Mar 2011 11:20:40 -0800 Subject: [PATCH 064/168] updated destination guide and avatar picker urls --- indra/newview/app_settings/settings.xml | 6 ++--- .../newview/app_settings/settings_minimal.xml | 22 ------------------- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 011a57c656..b71b9d06ff 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -617,7 +617,7 @@ Type String Value - http://interest.secondlife.com/viewer/avatar + http://lecs-static-secondlife-com.s3.amazonaws.com/viewer/avatars.html AvatarBakedTextureUploadTimeout @@ -2566,7 +2566,7 @@ Type String Value - http://www.secondlife.com + http://lecs-static-secondlife-com.s3.amazonaws.com/viewer/guide.html DisableCameraConstraints @@ -12364,7 +12364,7 @@ Type String Value - settings_minimal.xml + UserSessionSettingsFile diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 61ae22cb60..12727b0b96 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -27,15 +27,6 @@ Value 0 - DestinationGuideURL - - Comment - Destination guide contents - Type - String - Value - http://pdp48.lindenlab.com:8001/viewer/guide/ - EnableGrab Comment @@ -188,19 +179,6 @@ Value 0 - AvatarPickerURL - - Comment - Avatar picker contents - Persist - 1 - Type - String - Value - - http://pdp48.lindenlab.com:8001/static/viewer/avatar/index.html - - OpenSidePanelsInFloaters Comment From f23a2ae92fddea845171f7b8597271d988105198 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 1 Mar 2011 11:21:52 -0800 Subject: [PATCH 065/168] SOCIAL-611 FIX Freeze and Eject do not work in minimal skin from avatar context me --- .../skins/default/xui/en/notifications.xml | 397 ++++++++++++------ .../xui/en/notification_visibility.xml | 4 +- 2 files changed, 265 insertions(+), 136 deletions(-) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index b010f4f99f..9553679c0e 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -104,6 +104,7 @@ Your version of [APP_NAME] does not know how to display the notification it just received. Please verify that you have the latest Viewer installed. Error details: The notification called '[_NAME]' was not found in notifications.xml. + fail @@ -116,6 +117,7 @@ Error details: The notification called '[_NAME]' was not found in noti Floater error: Could not find the following controls: [CONTROLS] + fail @@ -126,6 +128,7 @@ Floater error: Could not find the following controls: name="TutorialNotFound" type="alertmodal"> No tutorial is currently available. + fail @@ -154,6 +157,7 @@ No tutorial is currently available. name="BadInstallation" type="alertmodal"> An error occurred while updating [APP_NAME]. Please [http://get.secondlife.com download the latest version] of the Viewer. + fail @@ -200,6 +204,7 @@ Save changes to current clothing/body part? name="CompileQueueSaveText" type="alertmodal"> There was a problem uploading the text for a script due to the following reason: [REASON]. Please try again later. + fail There was a problem uploading the compiled script due to the following reason: [REASON]. Please try again later. + fail There was a problem writing animation data. Please try again later. + fail There was a problem uploading the auction snapshot due to the following reason: [REASON] + fail Unable to view the contents of more than one item at a time. Please select only one object and try again. + fail Save all changes to clothing/body parts? - confirm + Granting modify rights to another Resident allows them to change, delete or take ANY objects you may have in-world. Be VERY careful when handing out this permission. Do you want to grant modify rights for [NAME]? +confirm Granting modify rights to another Resident allows them to change ANY objects you may have in-world. Be VERY careful when handing out this permission. Do you want to grant modify rights for the selected Residents? +confirm Do you want to revoke modify rights for [NAME]? +confirm Do you want to revoke modify rights for the selected Residents? +confirm Unable to create group. [MESSAGE] - fail + @@ -326,7 +341,8 @@ Unable to create group. type="alertmodal"> [NEEDS_APPLY_MESSAGE] [WANT_APPLY_MESSAGE] - confirm + You must specify a subject to send a group notice. - fail + @@ -351,6 +368,7 @@ You are about to add group members to the role of [ROLE_NAME]. Members cannot be removed from that role. The members must resign from the role themselves. Are you sure you want to continue? + confirm You are about to drop your attachment. Are you sure you want to continue? + confirm Joining this group costs L$[COST]. Do you wish to proceed? + confirm funds You are joining group [NAME]. Do you wish to proceed? + confirm Joining this group costs L$[COST]. You do not have enough L$ to join this group. + fail funds @@ -459,6 +481,7 @@ Please invite members within 48 hours. fail For L$[COST] you can enter this land ('[PARCEL_NAME]') for [TIME] hours. Buy a pass? funds + confirm Sale price must be set to more than L$0 if selling to anyone. Please select an individual to sell to if selling for L$0. + fail The selected [LAND_SIZE] m² land is being set for sale. Your selling price will be L$[SALE_PRICE] and will be authorized for sale to [NAME]. + confirm confirm confirm confirm confirm confirm confirm Are you sure you want to return all listed objects back to their owner's inventory? + confirm Are you sure you want to disable all objects in this region? + confirm confirm fail confirm You must be standing inside the land parcel to set its Landing Point. + fail Please enter a valid email address for the recipient(s). + fail Please enter your email address. + fail Email snapshot with the default subject or message? + confirm confirm confirm Delete classified '[NAME]'? There is no reimbursement for fees paid. + confirm You have selected to delete the media associated with this face. Are you sure you want to continue? + confirm Save changes to classified [NAME]? + confirm Insufficient funds to create classified. + fail @@ -836,6 +882,7 @@ Insufficient funds to create classified. name="DeleteAvatarPick" type="alertmodal"> Delete pick <nolink>[PICK]</nolink>? + confirm Delete the selected outfit? + confirm Go to the [SECOND_LIFE] events web page? + confirm http://secondlife.com/events/ @@ -873,6 +922,7 @@ Go to the [SECOND_LIFE] events web page? name="SelectProposalToView" type="alertmodal"> Please select a proposal to view. + fail Please select a history item to view. + fail @@ -3495,6 +3633,7 @@ Sorry, you have to wait longer before you can change your display name. See http://wiki.secondlife.com/wiki/Setting_your_display_name Please try again later. + fail fail The display name you wish to set contains invalid characters. + fail Your display name must contain letters other than punctuation. + fail @@ -3533,6 +3675,7 @@ Please try again later. name="OfferTeleport" type="alertmodal"> Offer a teleport to your location with the following message? + confirm

Join me in [REGION] @@ -3554,6 +3697,7 @@ Join me in [REGION] name="OfferTeleportFromGod" type="alertmodal"> God summon Resident to your location? + confirm Join me in [REGION] @@ -3575,6 +3719,7 @@ Join me in [REGION] name="TeleportFromLandmark" type="alertmodal"> Are you sure you want to teleport to <nolink>[LOCATION]</nolink>? + confirm -Teleport to [PICK]? + Teleport to [PICK]? + confirm Teleport to [CLASSIFIED]? + confirm Teleport to [HISTORY_ENTRY]? + confirm Type a short announcement which will be sent to everyone currently in your estate. + confirm - - - - - - - - - - - - - - - From 3c43ec4a9620fcd433efd8eebf5565b4acc47b6a Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 2 Mar 2011 21:04:30 -0800 Subject: [PATCH 084/168] SOCIAL-622 FIX Double clicking on mini map in people panel places a red circle that cannot be removed and tooltip references opening world map --- indra/newview/llnetmap.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 25f67afd5d..e29078c545 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -904,23 +904,29 @@ BOOL LLNetMap::handleClick(S32 x, S32 y, MASK mask) BOOL LLNetMap::handleDoubleClick(S32 x, S32 y, MASK mask) { LLVector3d pos_global = viewPosToGlobal(x, y); - - // If we're not tracking a beacon already, double-click will set one - if (!LLTracker::isTracking(NULL)) + + bool double_click_teleport = gSavedSettings.getBOOL("DoubleClickTeleport"); + bool double_click_show_world_map = gSavedSettings.getBOOL("DoubleClickShowWorldMap"); + + if (double_click_teleport || double_click_show_world_map) { - LLFloaterWorldMap* world_map = LLFloaterWorldMap::getInstance(); - if (world_map) + // If we're not tracking a beacon already, double-click will set one + if (!LLTracker::isTracking(NULL)) { - world_map->trackLocation(pos_global); + LLFloaterWorldMap* world_map = LLFloaterWorldMap::getInstance(); + if (world_map) + { + world_map->trackLocation(pos_global); + } } } - - if (gSavedSettings.getBOOL("DoubleClickTeleport")) + + if (double_click_teleport) { // If DoubleClickTeleport is on, double clicking the minimap will teleport there gAgent.teleportViaLocationLookAt(pos_global); } - else if (gSavedSettings.getBOOL("DoubleClickShowWorldMap")) + else if (double_click_show_world_map) { LLFloaterReg::showInstance("world_map"); } From 92403b4ea1c02d378a1157e8912f1e3976ba3772 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 2 Mar 2011 21:05:03 -0800 Subject: [PATCH 085/168] SOCIAL-593 FIX Profile Window cannot be resized in minimal skin floater view snapping rectangle is now driven by floater_snap_region view --- indra/llui/llfloater.cpp | 10 +++++++--- indra/llui/llfloater.h | 4 ++-- indra/llui/llview.cpp | 4 ++-- indra/llui/llview.h | 4 ++-- indra/newview/llbottomtray.cpp | 4 ---- indra/newview/llsidetray.cpp | 11 +---------- indra/newview/llviewerwindow.cpp | 1 + indra/newview/skins/default/xui/en/main_view.xml | 7 +++++++ indra/newview/skins/minimal/xui/en/main_view.xml | 7 +++++++ 9 files changed, 29 insertions(+), 23 deletions(-) diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index c425782715..35e0d9d890 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2590,9 +2590,13 @@ void LLFloaterView::draw() LLRect LLFloaterView::getSnapRect() const { - LLRect snap_rect = getRect(); - snap_rect.mBottom += mSnapOffsetBottom; - snap_rect.mRight -= mSnapOffsetRight; + LLRect snap_rect = getLocalRect(); + + LLView* snap_view = mSnapView.get(); + if (snap_view) + { + snap_view->localRectToOtherView(snap_view->getLocalRect(), &snap_rect, this); + } return snap_rect; } diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index bb96272d02..0e83b80c89 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -495,10 +495,10 @@ public: // value is not defined. S32 getZOrder(LLFloater* child); - void setSnapOffsetBottom(S32 offset) { mSnapOffsetBottom = offset; } - void setSnapOffsetRight(S32 offset) { mSnapOffsetRight = offset; } + void setFloaterSnapView(LLHandle snap_view) {mSnapView = snap_view; } private: + LLHandle mSnapView; BOOL mFocusCycleMode; S32 mSnapOffsetBottom; S32 mSnapOffsetRight; diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 267640a226..acf7953906 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -1958,7 +1958,7 @@ void LLView::centerWithin(const LLRect& bounds) translate( left - getRect().mLeft, bottom - getRect().mBottom ); } -BOOL LLView::localPointToOtherView( S32 x, S32 y, S32 *other_x, S32 *other_y, LLView* other_view) const +BOOL LLView::localPointToOtherView( S32 x, S32 y, S32 *other_x, S32 *other_y, const LLView* other_view) const { const LLView* cur_view = this; const LLView* root_view = NULL; @@ -2001,7 +2001,7 @@ BOOL LLView::localPointToOtherView( S32 x, S32 y, S32 *other_x, S32 *other_y, LL return FALSE; } -BOOL LLView::localRectToOtherView( const LLRect& local, LLRect* other, LLView* other_view ) const +BOOL LLView::localRectToOtherView( const LLRect& local, LLRect* other, const LLView* other_view ) const { LLRect cur_rect = local; const LLView* cur_view = this; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index d2bbd663b8..61dc4b8030 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -406,8 +406,8 @@ public: BOOL blockMouseEvent(S32 x, S32 y) const; // See LLMouseHandler virtuals for screenPointToLocal and localPointToScreen - BOOL localPointToOtherView( S32 x, S32 y, S32 *other_x, S32 *other_y, LLView* other_view) const; - BOOL localRectToOtherView( const LLRect& local, LLRect* other, LLView* other_view ) const; + BOOL localPointToOtherView( S32 x, S32 y, S32 *other_x, S32 *other_y, const LLView* other_view) const; + BOOL localRectToOtherView( const LLRect& local, LLRect* other, const LLView* other_view ) const; void screenRectToLocal( const LLRect& screen, LLRect* local ) const; void localRectToScreen( const LLRect& local, LLRect* screen ) const; diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 3d61e13f02..5d5ba03615 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -419,10 +419,6 @@ void LLBottomTray::setVisible(BOOL visible) { LLPanel::setVisible(visible); } - if(visible) - gFloaterView->setSnapOffsetBottom(getRect().getHeight()); - else - gFloaterView->setSnapOffsetBottom(0); } S32 LLBottomTray::notifyParent(const LLSD& info) diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index bfdb47dc52..8aaa7f0e13 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -980,16 +980,7 @@ void LLSideTray::reflectCollapseChange() { updateSidetrayVisibility(); - if(mCollapsed) - { - gFloaterView->setSnapOffsetRight(0); - setFocus(FALSE); - } - else - { - gFloaterView->setSnapOffsetRight(getRect().getWidth()); - setFocus(TRUE); - } + setFocus(!mCollapsed); gFloaterView->refresh(); } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index d9c51d03f7..093ce9a67c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1616,6 +1616,7 @@ void LLViewerWindow::initBase() // Constrain floaters to inside the menu and status bar regions. gFloaterView = main_view->getChild("Floater View"); + gFloaterView->setFloaterSnapView(main_view->getChild("floater_snap_region")->getHandle()); gSnapshotFloaterView = main_view->getChild("Snapshot Floater View"); diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index d9991fcae9..e5ae0b950a 100644 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -80,6 +80,13 @@ user_resize="false" name="hud container" width="500"> + + Date: Wed, 2 Mar 2011 21:29:36 -0800 Subject: [PATCH 086/168] SOCIAL-623 FIX World map accessible from classified and picks in web profile in minimal skin --- indra/newview/app_settings/settings.xml | 17 +++++++++++--- .../newview/app_settings/settings_minimal.xml | 22 +++++++++++++++++++ indra/newview/llfloaterworldmap.cpp | 6 +++++ .../skins/default/xui/en/notifications.xml | 14 ++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 4fbef050ff..a2459890a1 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12435,7 +12435,7 @@ EnableClassifieds Comment - Enable creation of new classified ads + Enable creation of new classified ads from web link Persist 1 Type @@ -12446,7 +12446,7 @@ EnableGroupInfo Comment - Enable viewing and editing of group info. + Enable viewing and editing of group info from web link Persist 1 Type @@ -12457,7 +12457,18 @@ EnablePicks Comment - Enable editing of picks + Enable editing of picks from web link + Persist + 1 + Type + Boolean + Value + 1 + + EnableWorldMap + + Comment + Enable opening world map from web link Persist 1 Type diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index cd0fe9e892..d505d59ec9 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -259,6 +259,17 @@ Value 0 + EnableWorldMap + + Comment + Enable opening world map from web link + Persist + 1 + Type + Boolean + Value + 0 + DoubleClickShowWorldMap Comment @@ -270,5 +281,16 @@ Value 0 + EnableGroupChatPopups + + Comment + Enable Incoming Group Chat Popups + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 017cd2fc49..e6d91a658d 100755 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -110,6 +110,12 @@ public: bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) { + if (!LLUI::sSettingGroups["config"]->getBOOL("EnableWorldMap")) + { + LLNotificationsUtil::add("NoWorldMap", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit")); + return true; + } + if (params.size() == 0) { // support the secondlife:///app/worldmap SLapp diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index b0aacb67bf..50193a198b 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7126,6 +7126,20 @@ The site at '<nolink>[HOST_NAME]</nolink>' in realm ' notext="Don't Quit"/> + + fail + confirm + Viewing of the world map is only available in Standard mode. Would you like to logout and change modes? + + + - Your CPU speed does not meet the minimum requirements. From 0d9fa286b87c41c4be75c3011f35cb86145d8def Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 2 Mar 2011 23:57:33 -0800 Subject: [PATCH 087/168] SOCIAL-595 FIX Global volume control and the volume control on MOAP no longer have any affect --- indra/newview/viewer_manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 338c62b9fb..2b43a5767f 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -330,7 +330,7 @@ class WindowsManifest(ViewerManifest): self.end_prefix() # winmm.dll shim - if self.prefix(src='../media_plugins/winmmshim/%s' % self.args['configuration'], dst="llplugin"): + if self.prefix(src='../media_plugins/winmmshim/%s' % self.args['configuration'], dst=""): self.path("winmm.dll") self.end_prefix() From bf8b2891bffeea5f5ef92690fa3452b52bf4c7ad Mon Sep 17 00:00:00 2001 From: callum Date: Thu, 3 Mar 2011 13:14:21 -0800 Subject: [PATCH 088/168] SOCIAL-510 FIX SL Profile Pages Seem to be Ignoring Assets (New version of LLQtWebKit and now load CA.pem) See also SOCIAL-569 [VWR-24426] SSL Handshake Failed Error when accessing web-based content on development viewers using recent Webkit 4.7 --- indra/newview/llviewermedia.cpp | 15 ++++----------- install.xml | 8 ++++---- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 900081b8c6..b0da5056f7 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1833,17 +1833,10 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) media_source->ignore_ssl_cert_errors(true); } - // NOTE: Removed as per STORM-927 - SSL handshake failed - setting local self-signed certs like this - // seems to screw things up big time. For now, devs will need to add these certs locally and Qt will pick them up. -// // start by assuming the default CA file will be used -// std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "lindenlab.pem" ); -// // default turned off so pick up the user specified path -// if( ! gSavedSettings.getBOOL("BrowserUseDefaultCAFile")) -// { -// ca_path = gSavedSettings.getString("BrowserCAFilePath"); -// } -// // set the path to the CA.pem file -// media_source->addCertificateFilePath( ca_path ); + // the correct way to deal with certs it to load ours from CA.pem and append them to the ones + // Qt/WebKit loads from your system location. + std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); + media_source->addCertificateFilePath( ca_path ); media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); diff --git a/install.xml b/install.xml index 13abaac1c1..dff85a27ef 100644 --- a/install.xml +++ b/install.xml @@ -981,9 +981,9 @@ anguage Infrstructure (CLI) international standard darwin md5sum - 66c46841825ab4969ec875b5c8f9b24c + 13f9be04ba029d19f822abdcb755c700 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20101221.tar.bz2 + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110302.tar.bz2 linux @@ -995,9 +995,9 @@ anguage Infrstructure (CLI) international standard windows md5sum - b678c4d18ea8e4fab42b20f8d0b2629a + 7cc9626ff4ac035f8605c996d18ea6a9 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20101221.tar.bz2 + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.7.1-20110302.tar.bz2 From d19eb012c67ff271b9ecc4c5d6292f59ac84bd52 Mon Sep 17 00:00:00 2001 From: callum Date: Thu, 3 Mar 2011 13:29:36 -0800 Subject: [PATCH 089/168] Fix for Drawin filename of LLQtWebKit (curse internal renaming schemes that are dumb) --- install.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.xml b/install.xml index dff85a27ef..c91bec8535 100644 --- a/install.xml +++ b/install.xml @@ -983,7 +983,7 @@ anguage Infrstructure (CLI) international standard md5sum 13f9be04ba029d19f822abdcb755c700 url - http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-qt4.7.1-20110302.tar.bz2 + http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-darwin-4.7.1-20110302.tar.bz2 linux From 5e0b45ad6cac39476f78ffa8d486f06eee53797b Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 3 Mar 2011 19:52:21 -0800 Subject: [PATCH 090/168] SOCIAL-629 FIX Search Floater accessible from typing a search term in location bar --- indra/newview/app_settings/settings.xml | 11 +++++++++++ .../newview/app_settings/settings_minimal.xml | 11 +++++++++++ indra/newview/llnavigationbar.cpp | 19 ++++++++++--------- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a2459890a1..3dedf0ddd7 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12476,5 +12476,16 @@ Value 1 + SearchFromAddressBar + + Comment + Can enter search queries into navigation address bar + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index d505d59ec9..73c865bc9f 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -292,5 +292,16 @@ Value 0 + SearchFromAddressBar + + Comment + Can enter search queries into navigation address bar + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index e4f83ce6b9..3b160ddc8e 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -636,18 +636,19 @@ void LLNavigationBar::onRegionNameResponse( U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) { // Invalid location? - if (!region_handle) + if (region_handle) + { + // Teleport to the location. + LLVector3d region_pos = from_region_handle(region_handle); + LLVector3d global_pos = region_pos + (LLVector3d) local_coords; + + llinfos << "Teleporting to: " << LLSLURL(region_name, global_pos).getSLURLString() << llendl; + gAgent.teleportViaLocation(global_pos); + } + else if (gSavedSettings.getBOOL("SearchFromAddressBar")) { invokeSearch(typed_location); - return; } - - // Teleport to the location. - LLVector3d region_pos = from_region_handle(region_handle); - LLVector3d global_pos = region_pos + (LLVector3d) local_coords; - - llinfos << "Teleporting to: " << LLSLURL(region_name, global_pos).getSLURLString() << llendl; - gAgent.teleportViaLocation(global_pos); } void LLNavigationBar::showTeleportHistoryMenu(LLUICtrl* btn_ctrl) From 2740879205f1db5f29f228a96c80e1961e4b9226 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 3 Mar 2011 21:02:09 -0800 Subject: [PATCH 091/168] SOCIAL-641 FIX C++ Runtime error in SLvoice.exe when launching Standard Skin on Windows --- indra/media_plugins/winmmshim/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/indra/media_plugins/winmmshim/CMakeLists.txt b/indra/media_plugins/winmmshim/CMakeLists.txt index 387214088f..3e3a988310 100644 --- a/indra/media_plugins/winmmshim/CMakeLists.txt +++ b/indra/media_plugins/winmmshim/CMakeLists.txt @@ -3,6 +3,12 @@ project(winmm_shim) ### winmm_shim +# *HACK - override msvcrt implementation (intialized on 00-Common) to be +# statically linked for winmm.dll this relies on vc taking the last flag on +# the command line +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") set(winmm_shim_SOURCE_FILES forwarding_api.cpp From 10a572da887ee599d6c4207cda3a106c7fc3aa65 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 3 Mar 2011 21:11:59 -0800 Subject: [PATCH 092/168] removed items from inspector menus that don't apply in minimal skin --- .../skins/minimal/xui/en/inspect_object.xml | 12 +- .../xui/en/menu_inspect_avatar_gear.xml | 118 +++++++++++++++++- .../xui/en/menu_inspect_object_gear.xml | 116 ++++++++++++++++- 3 files changed, 231 insertions(+), 15 deletions(-) diff --git a/indra/newview/skins/minimal/xui/en/inspect_object.xml b/indra/newview/skins/minimal/xui/en/inspect_object.xml index 8d14c974b4..a5b03a2f58 100644 --- a/indra/newview/skins/minimal/xui/en/inspect_object.xml +++ b/indra/newview/skins/minimal/xui/en/inspect_object.xml @@ -148,17 +148,7 @@ L$30,000 width="80" /> - From 0aaa829b477ed5953bd6783f38112c35154bacc9 Mon Sep 17 00:00:00 2001 From: callum Date: Fri, 4 Mar 2011 15:34:27 -0800 Subject: [PATCH 094/168] SOCIAL-510 FIX (#2) SL Profile Pages Seem to be Ignoring Assets (New version of LLQtWebKit and now load CA.pem) See also SOCIAL-569 [VWR-24426] SSL Handshake Failed Error when accessing web-based content on development viewers using recent Webkit 4.7 --- indra/newview/llviewermedia.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index b0da5056f7..78ed35c29a 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -59,6 +59,7 @@ #include "lluuid.h" #include "llkeyboard.h" #include "llmutelist.h" +#include "llappviewer.h" //#include "llfirstuse.h" #include "llwindow.h" @@ -1833,10 +1834,26 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) media_source->ignore_ssl_cert_errors(true); } - // the correct way to deal with certs it to load ours from CA.pem and append them to the ones - // Qt/WebKit loads from your system location. + + // HACK: This is absurd but it'll do for now until we can + // find out what's wrong with Qt SSL certs +#if (defined(LL_WINDOWS) ) + // Always do this for Windows platforms std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); media_source->addCertificateFilePath( ca_path ); +#elif (defined(LL_DARWIN) ) + // get Mac OS X version numbers + S32 os_major_version = LLAppViewer::instance()->getOSInfo().mMajorVer; + S32 os_minor_version = LLAppViewer::instance()->getOSInfo().mMinorVer; + llinfos << "OS version is " << os_major_version << " --- " << os_minor_version << llendl; + + // Only do this for Leopard (10.5.x) - not Snow Leopard (10.6.x) + if ( os_major_version == 5 ) + { + std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); + media_source->addCertificateFilePath( ca_path ); + } +#endif media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); From cd01bdfffdac92ae7b6098668e187d22b7d823f0 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Fri, 4 Mar 2011 15:57:54 -0800 Subject: [PATCH 095/168] SOCIAL-643 As a user, I would like to be able to browse and purchase from the marketplace from within the viewer by logging in only once, and with no appreciable delay --- indra/newview/llviewermedia.cpp | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index b0da5056f7..82c5b8240e 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -59,6 +59,7 @@ #include "lluuid.h" #include "llkeyboard.h" #include "llmutelist.h" +#include "llpanelprofile.h" //#include "llfirstuse.h" #include "llwindow.h" @@ -292,6 +293,43 @@ public: }; +class LLViewerMediaWebProfileResponder : public LLHTTPClient::Responder +{ +LOG_CLASS(LLViewerMediaWebProfileResponder); +public: + LLViewerMediaWebProfileResponder(std::string host) + { + mHost = host; + } + + ~LLViewerMediaWebProfileResponder() + { + } + + /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) + { + LL_WARNS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; + LL_WARNS("MediaAuth") << content << LL_ENDL; + + std::string cookie = content["set-cookie"].asString(); + + LLViewerMedia::getCookieStore()->setCookiesFromHost(cookie, mHost); + } + + void completedRaw( + U32 status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) + { + // This is just here to disable the default behavior (attempting to parse the response as llsd). + // We don't care about the content of the response, only the set-cookie header. + } + + std::string mHost; +}; + + LLPluginCookieStore *LLViewerMedia::sCookieStore = NULL; LLURL LLViewerMedia::sOpenIDURL; std::string LLViewerMedia::sOpenIDCookie; @@ -1351,6 +1389,19 @@ void LLViewerMedia::setOpenIDCookie() // *HACK: Doing this here is nasty, find a better way. LLWebSharing::instance().setOpenIDCookie(sOpenIDCookie); + + // Do a web profile get so we can store the cookie + LLSD headers = LLSD::emptyMap(); + headers["Accept"] = "*/*"; + headers["Cookie"] = sOpenIDCookie; + headers["User-Agent"] = getCurrentUserAgent(); + + std::string profile_url = getProfileURL(""); + LLURL raw_profile_url( profile_url.c_str() ); + + LLHTTPClient::get(profile_url, + new LLViewerMediaWebProfileResponder(raw_profile_url.getAuthority()), + headers); } } From 22c75fb3850234588da6cf043b98a450cede3c91 Mon Sep 17 00:00:00 2001 From: callum Date: Fri, 4 Mar 2011 17:05:29 -0800 Subject: [PATCH 096/168] SOCIAL-510 FIX (#3) SL Profile Pages Seem to be Ignoring Assets (New CA.pem with Equifax cert in it) See also SOCIAL-569 [VWR-24426] SSL Handshake Failed Error when accessing web-based content on development viewers using recent Webkit 4.7 --- indra/newview/app_settings/CA.pem | 19 +++++++++++++++++++ indra/newview/llviewermedia.cpp | 26 ++++++-------------------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/indra/newview/app_settings/CA.pem b/indra/newview/app_settings/CA.pem index 11825bf906..7cebbf48b2 100644 --- a/indra/newview/app_settings/CA.pem +++ b/indra/newview/app_settings/CA.pem @@ -3895,3 +3895,22 @@ xA39CIJ65Zozs28Eg1aV9/Y+Of7TnWhW+U3J3/wD/GghaAGiKK6vMn9gJBIdBX/9 e6ef37VGyiOEFFjnUIbuk0RWty0orN76q/lI/xjCi15XSA/VSq2j4vmnwfZcPTDu glmQ1A== -----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----END CERTIFICATE----- diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 78ed35c29a..f775337fac 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1834,26 +1834,12 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) media_source->ignore_ssl_cert_errors(true); } - - // HACK: This is absurd but it'll do for now until we can - // find out what's wrong with Qt SSL certs -#if (defined(LL_WINDOWS) ) - // Always do this for Windows platforms - std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); - media_source->addCertificateFilePath( ca_path ); -#elif (defined(LL_DARWIN) ) - // get Mac OS X version numbers - S32 os_major_version = LLAppViewer::instance()->getOSInfo().mMajorVer; - S32 os_minor_version = LLAppViewer::instance()->getOSInfo().mMinorVer; - llinfos << "OS version is " << os_major_version << " --- " << os_minor_version << llendl; - - // Only do this for Leopard (10.5.x) - not Snow Leopard (10.6.x) - if ( os_major_version == 5 ) - { - std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); - media_source->addCertificateFilePath( ca_path ); - } -#endif + // the correct way to deal with certs it to load ours from CA.pem and append them to the ones + // Qt/WebKit loads from your system location. + // Note: This needs the new CA.pem file with the Equifax Secure Certificate Authority + // cert at the bottom: (MIIDIDCCAomgAwIBAgIENd70zzANBg) + std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); + media_source->addCertificateFilePath( ca_path ); media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); From 6613aebf8802555a47e278d68eef5336763d7d87 Mon Sep 17 00:00:00 2001 From: leyla Date: Mon, 7 Mar 2011 09:47:13 -0800 Subject: [PATCH 097/168] SOC-604 Make View contents in minimal skin match Standard skin (Viewer 2) --- .../skins/minimal/xui/en/floater_camera.xml | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/indra/newview/skins/minimal/xui/en/floater_camera.xml b/indra/newview/skins/minimal/xui/en/floater_camera.xml index 62276199e5..76d1b97cab 100644 --- a/indra/newview/skins/minimal/xui/en/floater_camera.xml +++ b/indra/newview/skins/minimal/xui/en/floater_camera.xml @@ -253,5 +253,44 @@ top_pad="0" name="buttons" width="226"> + + + From c18252451306817ac4a07c823ef615c46edc7e85 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 7 Mar 2011 13:55:33 -0800 Subject: [PATCH 098/168] updated list of visible notifications to spec --- .../skins/default/xui/en/notifications.xml | 42 ++++++++++++++++--- .../xui/en/notification_visibility.xml | 36 ++++++++-------- 2 files changed, 55 insertions(+), 23 deletions(-) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 50193a198b..c453a8d2c7 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -329,7 +329,8 @@ Do you want to revoke modify rights for the selected Residents? type="alertmodal"> Unable to create group. [MESSAGE] -fail + group + fail @@ -341,7 +342,8 @@ Unable to create group. type="alertmodal"> [NEEDS_APPLY_MESSAGE] [WANT_APPLY_MESSAGE] -confirm + confirm + group You must specify a subject to send a group notice. -fail + group + fail @@ -368,6 +371,7 @@ You are about to add group members to the role of [ROLE_NAME]. Members cannot be removed from that role. The members must resign from the role themselves. Are you sure you want to continue? + group confirm confirm funds + group You are joining group [NAME]. Do you wish to proceed? + group confirm Joining this group costs L$[COST]. You do not have enough L$ to join this group. + group fail funds @@ -466,6 +473,7 @@ You do not have enough L$ to join this group. Creating this group will cost L$100. Groups need more than one member, or they are deleted forever. Please invite members within 48 hours. + group funds confirm + group confirm + group You ejected [AVATAR_NAME] from group [GROUP_NAME] + group Unable to deed land: No Group selected. + group fail @@ -2233,6 +2245,7 @@ Darn. You have been logged out of [SECOND_LIFE] type="alertmodal"> Unable to buy land for the group: You do not have permission to buy land for your active group. + group fail @@ -2600,6 +2613,7 @@ By deeding this parcel, the group will be required to have and maintain sufficie The purchase price of the land is not refunded to the owner. If a deeded parcel is sold, the sale price will be divided evenly among group members. Deed this [AREA] m² of land to the group '[GROUP_NAME]'? + group confirm group confirm You can only have [MAX_GROUPS] Allowed Groups. + group Deeding this object will cause the group to: * Receive L$ paid into the object + group confirm You are currently a member of the group [GROUP]. Leave Group? + group confirm You have reached your maximum number of groups. Please leave another group before joining this one, or decline the offer. [NAME] has invited you to join a group as a member. + group fail You have reached your maximum number of groups. Please leave some group before joining or creating a new one. + group fail Add to group allowed list for this estate only or for [ALL_ESTATES]? + group confirm Remove from group allowed list for this estate only or [ALL_ESTATES]? + group confirm Does this group contain Moderate content? + group confirm Topic: [SUBJECT], Message: [MESSAGE] + group group + group [MESSAGE] + + From 14232031746bda595f3b802cf923d7739be635bb Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Tue, 8 Mar 2011 11:08:39 -0800 Subject: [PATCH 102/168] SOCIAL-637 Receiving IM while destination guide or avatar picker is open results in IM window being small --- indra/llui/lldockcontrol.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index f6f5a0beb3..e18309ac33 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -297,7 +297,7 @@ void LLDockControl::moveDockable() break; } - S32 max_available_height = rootRect.getHeight() - mDockTongueY - mDockTongue->getHeight(); + S32 max_available_height = rootRect.getHeight() - (rootRect.mBottom - mDockTongueY) - mDockTongue->getHeight(); // A floater should be shrunk so it doesn't cover a part of its docking tongue and // there is a space between a dockable floater and a control to which it is docked. From 47b77c7f7a777ae533863c3c7b4f68d518117c32 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 8 Mar 2011 11:17:34 -0800 Subject: [PATCH 103/168] updated list of visible notifications to spec --- indra/newview/skins/minimal/xui/en/notification_visibility.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/minimal/xui/en/notification_visibility.xml b/indra/newview/skins/minimal/xui/en/notification_visibility.xml index e05430636c..631cf5d42c 100644 --- a/indra/newview/skins/minimal/xui/en/notification_visibility.xml +++ b/indra/newview/skins/minimal/xui/en/notification_visibility.xml @@ -11,7 +11,7 @@ - + From 3732ac46e691f27d181c07b7c511c3c433f9c665 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 8 Mar 2011 12:18:57 -0800 Subject: [PATCH 104/168] SOCIAL-647 FIX Gear menu for your own avatar is empty in mini-inspector in minimal s --- .../default/xui/en/menu_inspect_self_gear.xml | 242 ++++++++++++++++-- .../minimal/xui/en/menu_inspect_self_gear.xml | 219 +++++++++++++++- 2 files changed, 432 insertions(+), 29 deletions(-) diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml index 50ad3f834e..81b88cfd54 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml @@ -1,66 +1,252 @@ - + + layout="topleft" + name="Self Pie"> + layout="topleft" + name="Sit Down Here"> - + layout="topleft" + name="Stand Up"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + label="Change Outfit" + layout="topleft" + name="Chenge Outfit"> - + + function="EditOutfit" /> + + + + + + label="My Friends" + layout="topleft" + name="Friends..."> + function="SideTray.PanelPeopleTab" + parameter="friends_panel" /> + layout="topleft" + name="Groups..."> + label="My Profile" + layout="topleft" + name="Profile..."> + + + - + diff --git a/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml index 28c4762eaa..be51e3e664 100644 --- a/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml @@ -1,2 +1,219 @@  - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f9d70c41c9b7e7c0bb1cca184e6b5e99fc75a656 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 8 Mar 2011 12:42:15 -0800 Subject: [PATCH 105/168] SOCIAL-652 FIX Decline notification shown to users in minimal skin when they click on free one click objects --- indra/newview/app_settings/settings.xml | 13 ++++++++++++- indra/newview/app_settings/settings_minimal.xml | 11 +++++++++++ indra/newview/llviewermessage.cpp | 9 ++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 3dedf0ddd7..a8e9ca3cc9 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12487,5 +12487,16 @@ Value 1 - + LogInventoryDecline + + Comment + Log in system chat whenever an inventory offer is declined + Persist + 1 + Type + Boolean + Value + 1 + + diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 6e0053a3a3..e676f41250 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -325,5 +325,16 @@ Value http://lecs-static-secondlife-com.s3.amazonaws.com/viewer/agni/avatars.html + LogInventoryDecline + + Comment + Log in system chat whenever an inventory offer is declined + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 103989ee80..c2449907ac 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1715,15 +1715,18 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const msg->addBinaryDataFast(_PREHASH_BinaryBucket, EMPTY_BINARY_BUCKET, EMPTY_BINARY_BUCKET_SIZE); // send the message msg->sendReliable(mHost); + + if (gSavedSettings.getBOOL("LogInventoryDecline")) { LLStringUtil::format_map_t log_message_args; log_message_args["DESC"] = mDesc; log_message_args["NAME"] = mFromName; log_message = LLTrans::getString("InvOfferDecline", log_message_args); + + LLSD args; + args["MESSAGE"] = log_message; + LLNotificationsUtil::add("SystemMessage", args); } - LLSD args; - args["MESSAGE"] = log_message; - LLNotificationsUtil::add("SystemMessage", args); if (busy && (!mFromGroup && !mFromObject)) { From c87e895304f25ea7e77d45ac2ce31164b86ee529 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 8 Mar 2011 15:12:42 -0800 Subject: [PATCH 106/168] SOCIAL-647 FIX Gear menu for your own avatar is empty in mini-inspector in minimal s --- indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml | 2 +- indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml index 81b88cfd54..5e7b16ed4a 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml @@ -249,4 +249,4 @@ - + diff --git a/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml index be51e3e664..ed3b75342f 100644 --- a/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/minimal/xui/en/menu_inspect_self_gear.xml @@ -216,4 +216,4 @@ - + From 0e5fd6a1483e12a46dc94f318f3e43ec328def54 Mon Sep 17 00:00:00 2001 From: Eli Linden Date: Tue, 8 Mar 2011 15:19:44 -0800 Subject: [PATCH 107/168] INTL-25 WIP Spanish translation --- .../skins/minimal/xui/es/floater_camera.xml | 65 ++++++++++++++ .../minimal/xui/es/floater_help_browser.xml | 9 ++ .../minimal/xui/es/floater_nearby_chat.xml | 4 + .../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 ++ .../minimal/xui/es/menu_attachment_other.xml | 17 ++++ .../minimal/xui/es/menu_attachment_self.xml | 16 ++++ .../skins/minimal/xui/es/menu_avatar_icon.xml | 7 ++ .../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 ++++ .../minimal/xui/es/menu_cof_attachment.xml | 4 + .../minimal/xui/es/menu_cof_body_part.xml | 5 ++ .../minimal/xui/es/menu_cof_clothing.xml | 6 ++ .../skins/minimal/xui/es/menu_cof_gear.xml | 5 ++ .../skins/minimal/xui/es/menu_edit.xml | 12 +++ .../skins/minimal/xui/es/menu_favorites.xml | 10 +++ .../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 ++ .../minimal/xui/es/menu_im_well_button.xml | 4 + .../minimal/xui/es/menu_imchiclet_adhoc.xml | 4 + .../minimal/xui/es/menu_imchiclet_group.xml | 6 ++ .../minimal/xui/es/menu_imchiclet_p2p.xml | 7 ++ .../xui/es/menu_inspect_avatar_gear.xml | 17 ++++ .../xui/es/menu_inspect_object_gear.xml | 18 ++++ .../minimal/xui/es/menu_inspect_self_gear.xml | 10 +++ .../minimal/xui/es/menu_inv_offer_chiclet.xml | 4 + .../skins/minimal/xui/es/menu_inventory.xml | 86 +++++++++++++++++++ .../minimal/xui/es/menu_inventory_add.xml | 33 +++++++ .../xui/es/menu_inventory_gear_default.xml | 16 ++++ .../skins/minimal/xui/es/menu_land.xml | 9 ++ .../skins/minimal/xui/es/menu_landmark.xml | 7 ++ .../skins/minimal/xui/es/menu_login.xml | 24 ++++++ .../skins/minimal/xui/es/menu_mini_map.xml | 11 +++ .../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 + .../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 ++ .../minimal/xui/es/menu_participant_list.xml | 21 +++++ .../xui/es/menu_people_friends_view_sort.xml | 8 ++ .../minimal/xui/es/menu_people_groups.xml | 8 ++ .../xui/es/menu_people_groups_view_sort.xml | 5 ++ .../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 ++ .../skins/minimal/xui/es/menu_picks.xml | 8 ++ .../skins/minimal/xui/es/menu_picks_plus.xml | 5 ++ .../skins/minimal/xui/es/menu_place.xml | 7 ++ .../minimal/xui/es/menu_place_add_button.xml | 5 ++ .../xui/es/menu_places_gear_folder.xml | 15 ++++ .../xui/es/menu_places_gear_landmark.xml | 18 ++++ .../minimal/xui/es/menu_profile_overflow.xml | 12 +++ .../skins/minimal/xui/es/menu_save_outfit.xml | 5 ++ .../minimal/xui/es/menu_script_chiclet.xml | 4 + .../skins/minimal/xui/es/menu_slurl.xml | 6 ++ .../xui/es/menu_teleport_history_gear.xml | 6 ++ .../xui/es/menu_teleport_history_item.xml | 6 ++ .../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 ++ .../skins/minimal/xui/es/menu_url_http.xml | 7 ++ .../minimal/xui/es/menu_url_inventory.xml | 6 ++ .../skins/minimal/xui/es/menu_url_map.xml | 6 ++ .../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 ++ .../minimal/xui/es/menu_url_teleport.xml | 6 ++ .../skins/minimal/xui/es/menu_viewer.xml | 14 +++ .../xui/es/menu_wearable_list_item.xml | 14 +++ .../minimal/xui/es/menu_wearing_gear.xml | 5 ++ .../skins/minimal/xui/es/menu_wearing_tab.xml | 6 ++ .../skins/minimal/xui/es/panel_bottomtray.xml | 39 +++++++++ .../minimal/xui/es/panel_im_control_panel.xml | 29 +++++++ .../skins/minimal/xui/es/panel_login.xml | 40 +++++++++ .../minimal/xui/es/panel_navigation_bar.xml | 18 ++++ .../skins/minimal/xui/es/panel_people.xml | 71 +++++++++++++++ .../xui/es/panel_side_tray_tab_caption.xml | 7 ++ .../skins/minimal/xui/es/panel_status_bar.xml | 33 +++++++ 87 files changed, 1202 insertions(+) create mode 100644 indra/newview/skins/minimal/xui/es/floater_camera.xml create mode 100644 indra/newview/skins/minimal/xui/es/floater_help_browser.xml create mode 100644 indra/newview/skins/minimal/xui/es/floater_nearby_chat.xml create mode 100644 indra/newview/skins/minimal/xui/es/inspect_avatar.xml create mode 100644 indra/newview/skins/minimal/xui/es/inspect_object.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_add_wearable_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_attachment_other.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_attachment_self.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_icon.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_other.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_avatar_self.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_bottomtray.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_attachment.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_body_part.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_clothing.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_cof_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_edit.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_favorites.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_gesture_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_group_plus.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_hide_navbar.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_im_well_button.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_adhoc.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_group.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_imchiclet_p2p.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_object_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inspect_self_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inv_offer_chiclet.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory_add.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_inventory_gear_default.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_land.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_landmark.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_login.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_mini_map.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_navbar.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_nearby_chat.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_notification_well_button.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_object.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_object_icon.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_outfit_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_outfit_tab.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_participant_list.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_friends_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_groups.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_groups_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby_multiselect.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_nearby_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_people_recent_view_sort.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_picks.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_picks_plus.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_place.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_place_add_button.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_places_gear_folder.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_places_gear_landmark.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_profile_overflow.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_save_outfit.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_script_chiclet.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_slurl.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_teleport_history_tab.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_text_editor.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_topinfobar.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_agent.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_group.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_http.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_inventory.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_map.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_objectim.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_parcel.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_slapp.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_slurl.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_url_teleport.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_viewer.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_wearable_list_item.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_wearing_gear.xml create mode 100644 indra/newview/skins/minimal/xui/es/menu_wearing_tab.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_bottomtray.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_im_control_panel.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_login.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_navigation_bar.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_people.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_side_tray_tab_caption.xml create mode 100644 indra/newview/skins/minimal/xui/es/panel_status_bar.xml diff --git a/indra/newview/skins/minimal/xui/es/floater_camera.xml b/indra/newview/skins/minimal/xui/es/floater_camera.xml new file mode 100644 index 0000000000..ccf3d4bf91 --- /dev/null +++ b/indra/newview/skins/minimal/xui/es/floater_camera.xml @@ -0,0 +1,65 @@ + + + + Girar la cámara alrededor de lo enfocado + + + Hacer zoom con la cámara en lo enfocado + + + Mover la cámara arriba y abajo, izquierda y derecha + + + Modos de cámara + + + Orbital - Zoom - Panóramica + + + Vistas predefinidas + + + Centrar el objeto + + + + + + De frente + + + + + Vista lateral + + + + + Desde detrás + + + + + + + Vista de objeto + + + + + Vista subjetiva + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/minimal/xui/en/floater_web_content.xml b/indra/newview/skins/minimal/xui/en/floater_web_content.xml new file mode 100644 index 0000000000..50cb5b14ce --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/floater_web_content.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + From 4986896079c90c2fff1f72ccf78a4bb6ee9bbcb8 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Mon, 14 Mar 2011 17:21:45 -0700 Subject: [PATCH 160/168] SOCIAL-605 Bottom bar buttons scale differently at lower resolutions --- indra/newview/llviewermenu.cpp | 13 +- .../skins/minimal/xui/en/panel_bottomtray.xml | 483 +++++++++--------- 2 files changed, 254 insertions(+), 242 deletions(-) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 030808db92..add24e5216 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -849,6 +849,8 @@ void toggle_destination_and_avatar_picker(const LLSD& show) LLView* container = gViewerWindow->getRootView()->getChildView("avatar_picker_and_destination_guide_container"); LLMediaCtrl* destinations = container->findChild("destination_guide_contents"); LLMediaCtrl* avatar_picker = container->findChild("avatar_picker_contents"); + LLButton* avatar_btn = gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("avatar_btn"); + LLButton* destination_btn = gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("destination_btn"); switch(panel_idx) { @@ -857,20 +859,24 @@ void toggle_destination_and_avatar_picker(const LLSD& show) destinations->setVisible(true); avatar_picker->setVisible(false); LLFirstUse::notUsingDestinationGuide(false); + avatar_btn->setToggleState(false); + destination_btn->setToggleState(true); break; case 1: container->setVisible(true); destinations->setVisible(false); avatar_picker->setVisible(true); + avatar_btn->setToggleState(true); + destination_btn->setToggleState(false); break; default: container->setVisible(false); destinations->setVisible(false); avatar_picker->setVisible(false); + avatar_btn->setToggleState(false); + destination_btn->setToggleState(false); break; } - - gViewerWindow->getRootView()->getChildView("bottom_tray")->getChild("avatar_and_destination_btns")->setValue(show); }; @@ -8163,5 +8169,6 @@ void initialize_menus() view_listener_t::addMenu(new LLToggleUIHints(), "ToggleUIHints"); - commit.add("DestinationAndAvatar.show", boost::bind(&toggle_destination_and_avatar_picker, _2)); + 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/skins/minimal/xui/en/panel_bottomtray.xml b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml index ccecdd9ece..0145de8be9 100644 --- a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml @@ -9,19 +9,19 @@ layout="topleft" left="0" name="bottom_tray" - focus_root="true" + focus_root="true" top="28" width="1310"> - - - - - - - - - + - - - - - - + + - - - - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + + From 6336022ada7811e9f36844d5f7ff660cb712fdfe Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 14 Mar 2011 17:49:11 -0700 Subject: [PATCH 161/168] SOCIAL-661 FIX Receiving Inventory notification in Basic Mode SOCIAL-654 FIX Items purchased on Marketplace.secondlife.com while logged into Minimal skin are declined and not present in inventory --- indra/newview/app_settings/settings.xml | 11 +++++ .../newview/app_settings/settings_minimal.xml | 11 +++++ indra/newview/llviewermessage.cpp | 19 ++++---- .../xui/en/notification_visibility.xml | 2 - .../skins/minimal/xui/en/notifications.xml | 44 +++++++++++++++++++ 5 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 indra/newview/skins/minimal/xui/en/notifications.xml diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 058ececc6b..6a89f5681d 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12575,5 +12575,16 @@ Value 0 + ShowOfferedInventory + + Comment + Show inventory window with last inventory offer selected when receiving inventory from other users. + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index 7c578664e3..03656f2a53 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -391,5 +391,16 @@ Value 1 + ShowOfferedInventory + + Comment + Show inventory window with last inventory offer selected when receiving inventory from other users. + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 2758250175..3584074ec1 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1463,15 +1463,18 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& // This is an offer from an agent. In this case, the back // end has already copied the items into your inventory, // so we can fetch it out of our inventory. - LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(mObjectID, from_string); - open_agent_offer->startFetch(); - if(catp || (itemp && itemp->isFinished())) + if (gSavedSettings.getBOOL("ShowOfferedInventory")) { - open_agent_offer->done(); - } - else - { - opener = open_agent_offer; + LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(mObjectID, from_string); + open_agent_offer->startFetch(); + if(catp || (itemp && itemp->isFinished())) + { + open_agent_offer->done(); + } + else + { + opener = open_agent_offer; + } } } break; diff --git a/indra/newview/skins/minimal/xui/en/notification_visibility.xml b/indra/newview/skins/minimal/xui/en/notification_visibility.xml index 9d4836d328..616b544847 100644 --- a/indra/newview/skins/minimal/xui/en/notification_visibility.xml +++ b/indra/newview/skins/minimal/xui/en/notification_visibility.xml @@ -1,7 +1,5 @@ - - diff --git a/indra/newview/skins/minimal/xui/en/notifications.xml b/indra/newview/skins/minimal/xui/en/notifications.xml new file mode 100644 index 0000000000..84da9472cc --- /dev/null +++ b/indra/newview/skins/minimal/xui/en/notifications.xml @@ -0,0 +1,44 @@ + + + + [NAME_SLURL] is offering you [ITEM_SLURL]. Using this item requires you to switch to Advanced mode where you will find the item in your Inventory. To switch to Advanced mode, quit and restart this application and change the mode setting on the login screen. + +