summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/CA.pem356
-rw-r--r--indra/newview/app_settings/settings_per_account.xml14
-rw-r--r--indra/newview/llappviewer.cpp2
-rw-r--r--indra/newview/lldebugview.cpp8
-rw-r--r--indra/newview/llfasttimerview.cpp154
-rw-r--r--indra/newview/llfasttimerview.h7
-rw-r--r--indra/newview/llfolderviewitem.cpp4
-rw-r--r--indra/newview/llinventoryfilter.cpp24
-rw-r--r--indra/newview/llinventorypanel.cpp26
-rw-r--r--indra/newview/llinventorypanel.h5
-rw-r--r--indra/newview/llpanelmarketplaceinbox.cpp3
-rw-r--r--indra/newview/llpanelmarketplaceinboxinventory.cpp15
-rw-r--r--indra/newview/llpanelmarketplaceoutbox.cpp5
-rw-r--r--indra/newview/llsidepanelinventory.cpp4
-rw-r--r--indra/newview/llsidetray.cpp255
-rw-r--r--indra/newview/llviewerfloaterreg.cpp2
-rw-r--r--indra/newview/llviewermenu.cpp4
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobject.cpp6
-rw-r--r--indra/newview/skins/default/xui/en/floater_fast_timers.xml28
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/en/widgets/inventory_panel.xml11
-rw-r--r--indra/newview/skins/default/xui/fr/floater_model_preview.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml2
23 files changed, 362 insertions, 584 deletions
diff --git a/indra/newview/app_settings/CA.pem b/indra/newview/app_settings/CA.pem
index a16b4225e5..8c1b9a1f37 100644
--- a/indra/newview/app_settings/CA.pem
+++ b/indra/newview/app_settings/CA.pem
@@ -2792,188 +2792,6 @@ KWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv
2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwPDPafepE39peC4N1xaf92P2BNPM/3
mfnGV/TJVTl4uix5yaaIK/QI
-----END CERTIFICATE-----
-cp . `md5 -q .`.pem
-cp ./.pem `md5 -q ./.pem`.pem
-cp ./cert000.pem `md5 -q ./cert000.pem`.pem
-cp ./cert001.pem `md5 -q ./cert001.pem`.pem
-cp ./cert002.pem `md5 -q ./cert002.pem`.pem
-cp ./cert003.pem `md5 -q ./cert003.pem`.pem
-cp ./cert004.pem `md5 -q ./cert004.pem`.pem
-cp ./cert005.pem `md5 -q ./cert005.pem`.pem
-cp ./cert006.pem `md5 -q ./cert006.pem`.pem
-cp ./cert007.pem `md5 -q ./cert007.pem`.pem
-cp ./cert008.pem `md5 -q ./cert008.pem`.pem
-cp ./cert009.pem `md5 -q ./cert009.pem`.pem
-cp ./cert010.pem `md5 -q ./cert010.pem`.pem
-cp ./cert011.pem `md5 -q ./cert011.pem`.pem
-cp ./cert012.pem `md5 -q ./cert012.pem`.pem
-cp ./cert013.pem `md5 -q ./cert013.pem`.pem
-cp ./cert014.pem `md5 -q ./cert014.pem`.pem
-cp ./cert015.pem `md5 -q ./cert015.pem`.pem
-cp ./cert016.pem `md5 -q ./cert016.pem`.pem
-cp ./cert017.pem `md5 -q ./cert017.pem`.pem
-cp ./cert018.pem `md5 -q ./cert018.pem`.pem
-cp ./cert019.pem `md5 -q ./cert019.pem`.pem
-cp ./cert020.pem `md5 -q ./cert020.pem`.pem
-cp ./cert021.pem `md5 -q ./cert021.pem`.pem
-cp ./cert022.pem `md5 -q ./cert022.pem`.pem
-cp ./cert023.pem `md5 -q ./cert023.pem`.pem
-cp ./cert024.pem `md5 -q ./cert024.pem`.pem
-cp ./cert025.pem `md5 -q ./cert025.pem`.pem
-cp ./cert026.pem `md5 -q ./cert026.pem`.pem
-cp ./cert027.pem `md5 -q ./cert027.pem`.pem
-cp ./cert028.pem `md5 -q ./cert028.pem`.pem
-cp ./cert029.pem `md5 -q ./cert029.pem`.pem
-cp ./cert030.pem `md5 -q ./cert030.pem`.pem
-cp ./cert031.pem `md5 -q ./cert031.pem`.pem
-cp ./cert032.pem `md5 -q ./cert032.pem`.pem
-cp ./cert033.pem `md5 -q ./cert033.pem`.pem
-cp ./cert034.pem `md5 -q ./cert034.pem`.pem
-cp ./cert035.pem `md5 -q ./cert035.pem`.pem
-cp ./cert036.pem `md5 -q ./cert036.pem`.pem
-cp ./cert037.pem `md5 -q ./cert037.pem`.pem
-cp ./cert038.pem `md5 -q ./cert038.pem`.pem
-cp ./cert039.pem `md5 -q ./cert039.pem`.pem
-cp ./cert040.pem `md5 -q ./cert040.pem`.pem
-cp ./cert041.pem `md5 -q ./cert041.pem`.pem
-cp ./cert042.pem `md5 -q ./cert042.pem`.pem
-cp ./cert043.pem `md5 -q ./cert043.pem`.pem
-cp ./cert044.pem `md5 -q ./cert044.pem`.pem
-cp ./cert045.pem `md5 -q ./cert045.pem`.pem
-cp ./cert046.pem `md5 -q ./cert046.pem`.pem
-cp ./cert047.pem `md5 -q ./cert047.pem`.pem
-cp ./cert048.pem `md5 -q ./cert048.pem`.pem
-cp ./cert049.pem `md5 -q ./cert049.pem`.pem
-cp ./cert050.pem `md5 -q ./cert050.pem`.pem
-cp ./cert051.pem `md5 -q ./cert051.pem`.pem
-cp ./cert052.pem `md5 -q ./cert052.pem`.pem
-cp ./cert053.pem `md5 -q ./cert053.pem`.pem
-cp ./cert054.pem `md5 -q ./cert054.pem`.pem
-cp ./cert055.pem `md5 -q ./cert055.pem`.pem
-cp ./cert056.pem `md5 -q ./cert056.pem`.pem
-cp ./cert057.pem `md5 -q ./cert057.pem`.pem
-cp ./cert058.pem `md5 -q ./cert058.pem`.pem
-cp ./cert059.pem `md5 -q ./cert059.pem`.pem
-cp ./cert060.pem `md5 -q ./cert060.pem`.pem
-cp ./cert061.pem `md5 -q ./cert061.pem`.pem
-cp ./cert062.pem `md5 -q ./cert062.pem`.pem
-cp ./cert063.pem `md5 -q ./cert063.pem`.pem
-cp ./cert064.pem `md5 -q ./cert064.pem`.pem
-cp ./cert065.pem `md5 -q ./cert065.pem`.pem
-cp ./cert066.pem `md5 -q ./cert066.pem`.pem
-cp ./cert067.pem `md5 -q ./cert067.pem`.pem
-cp ./cert068.pem `md5 -q ./cert068.pem`.pem
-cp ./cert069.pem `md5 -q ./cert069.pem`.pem
-cp ./cert070.pem `md5 -q ./cert070.pem`.pem
-cp ./cert071.pem `md5 -q ./cert071.pem`.pem
-cp ./cert072.pem `md5 -q ./cert072.pem`.pem
-cp ./cert073.pem `md5 -q ./cert073.pem`.pem
-cp ./cert074.pem `md5 -q ./cert074.pem`.pem
-cp ./cert075.pem `md5 -q ./cert075.pem`.pem
-cp ./cert076.pem `md5 -q ./cert076.pem`.pem
-cp ./cert077.pem `md5 -q ./cert077.pem`.pem
-cp ./cert078.pem `md5 -q ./cert078.pem`.pem
-cp ./cert079.pem `md5 -q ./cert079.pem`.pem
-cp ./cert080.pem `md5 -q ./cert080.pem`.pem
-cp ./cert081.pem `md5 -q ./cert081.pem`.pem
-cp ./cert082.pem `md5 -q ./cert082.pem`.pem
-cp ./cert083.pem `md5 -q ./cert083.pem`.pem
-cp ./cert084.pem `md5 -q ./cert084.pem`.pem
-cp ./cert085.pem `md5 -q ./cert085.pem`.pem
-cp ./cert086.pem `md5 -q ./cert086.pem`.pem
-cp ./cert087.pem `md5 -q ./cert087.pem`.pem
-cp ./cert088.pem `md5 -q ./cert088.pem`.pem
-cp ./cert089.pem `md5 -q ./cert089.pem`.pem
-cp ./cert090.pem `md5 -q ./cert090.pem`.pem
-cp ./cert091.pem `md5 -q ./cert091.pem`.pem
-cp ./cert092.pem `md5 -q ./cert092.pem`.pem
-cp ./cert093.pem `md5 -q ./cert093.pem`.pem
-cp ./cert094.pem `md5 -q ./cert094.pem`.pem
-cp ./cert095.pem `md5 -q ./cert095.pem`.pem
-cp ./cert096.pem `md5 -q ./cert096.pem`.pem
-cp ./cert097.pem `md5 -q ./cert097.pem`.pem
-cp ./cert098.pem `md5 -q ./cert098.pem`.pem
-cp ./cert099.pem `md5 -q ./cert099.pem`.pem
-cp ./cert100.pem `md5 -q ./cert100.pem`.pem
-cp ./cert101.pem `md5 -q ./cert101.pem`.pem
-cp ./cert102.pem `md5 -q ./cert102.pem`.pem
-cp ./cert103.pem `md5 -q ./cert103.pem`.pem
-cp ./cert104.pem `md5 -q ./cert104.pem`.pem
-cp ./cert105.pem `md5 -q ./cert105.pem`.pem
-cp ./cert106.pem `md5 -q ./cert106.pem`.pem
-cp ./cert107.pem `md5 -q ./cert107.pem`.pem
-cp ./cert108.pem `md5 -q ./cert108.pem`.pem
-cp ./cert109.pem `md5 -q ./cert109.pem`.pem
-cp ./cert110.pem `md5 -q ./cert110.pem`.pem
-cp ./cert111.pem `md5 -q ./cert111.pem`.pem
-cp ./cert112.pem `md5 -q ./cert112.pem`.pem
-cp ./cert113.pem `md5 -q ./cert113.pem`.pem
-cp ./cert114.pem `md5 -q ./cert114.pem`.pem
-cp ./cert115.pem `md5 -q ./cert115.pem`.pem
-cp ./cert116.pem `md5 -q ./cert116.pem`.pem
-cp ./cert117.pem `md5 -q ./cert117.pem`.pem
-cp ./cert118.pem `md5 -q ./cert118.pem`.pem
-cp ./cert119.pem `md5 -q ./cert119.pem`.pem
-cp ./cert120.pem `md5 -q ./cert120.pem`.pem
-cp ./cert121.pem `md5 -q ./cert121.pem`.pem
-cp ./cert122.pem `md5 -q ./cert122.pem`.pem
-cp ./cert123.pem `md5 -q ./cert123.pem`.pem
-cp ./cert124.pem `md5 -q ./cert124.pem`.pem
-cp ./cert125.pem `md5 -q ./cert125.pem`.pem
-cp ./cert126.pem `md5 -q ./cert126.pem`.pem
-cp ./cert127.pem `md5 -q ./cert127.pem`.pem
-cp ./cert128.pem `md5 -q ./cert128.pem`.pem
-cp ./cert129.pem `md5 -q ./cert129.pem`.pem
-cp ./cert130.pem `md5 -q ./cert130.pem`.pem
-cp ./cert131.pem `md5 -q ./cert131.pem`.pem
-cp ./cert132.pem `md5 -q ./cert132.pem`.pem
-cp ./cert133.pem `md5 -q ./cert133.pem`.pem
-cp ./cert134.pem `md5 -q ./cert134.pem`.pem
-cp ./cert135.pem `md5 -q ./cert135.pem`.pem
-cp ./cert136.pem `md5 -q ./cert136.pem`.pem
-cp ./cert137.pem `md5 -q ./cert137.pem`.pem
-cp ./cert138.pem `md5 -q ./cert138.pem`.pem
-cp ./cert139.pem `md5 -q ./cert139.pem`.pem
-cp ./cert140.pem `md5 -q ./cert140.pem`.pem
-cp ./cert141.pem `md5 -q ./cert141.pem`.pem
-cp ./cert142.pem `md5 -q ./cert142.pem`.pem
-cp ./cert143.pem `md5 -q ./cert143.pem`.pem
-cp ./cert144.pem `md5 -q ./cert144.pem`.pem
-cp ./cert145.pem `md5 -q ./cert145.pem`.pem
-cp ./cert146.pem `md5 -q ./cert146.pem`.pem
-cp ./cert147.pem `md5 -q ./cert147.pem`.pem
-cp ./cert148.pem `md5 -q ./cert148.pem`.pem
-cp ./cert149.pem `md5 -q ./cert149.pem`.pem
-cp ./cert150.pem `md5 -q ./cert150.pem`.pem
-cp ./cert151.pem `md5 -q ./cert151.pem`.pem
-cp ./cert152.pem `md5 -q ./cert152.pem`.pem
-cp ./cert153.pem `md5 -q ./cert153.pem`.pem
-cp ./cert154.pem `md5 -q ./cert154.pem`.pem
-cp ./cert155.pem `md5 -q ./cert155.pem`.pem
-cp ./cert156.pem `md5 -q ./cert156.pem`.pem
-cp ./cert157.pem `md5 -q ./cert157.pem`.pem
-cp ./cert158.pem `md5 -q ./cert158.pem`.pem
-cp ./cert159.pem `md5 -q ./cert159.pem`.pem
-cp ./cert160.pem `md5 -q ./cert160.pem`.pem
-cp ./cert161.pem `md5 -q ./cert161.pem`.pem
-cp ./cert162.pem `md5 -q ./cert162.pem`.pem
-cp ./cert163.pem `md5 -q ./cert163.pem`.pem
-cp ./cert164.pem `md5 -q ./cert164.pem`.pem
-cp ./cert165.pem `md5 -q ./cert165.pem`.pem
-cp ./cert166.pem `md5 -q ./cert166.pem`.pem
-cp ./cert167.pem `md5 -q ./cert167.pem`.pem
-cp ./cert168.pem `md5 -q ./cert168.pem`.pem
-cp ./cert169.pem `md5 -q ./cert169.pem`.pem
-cp ./cert170.pem `md5 -q ./cert170.pem`.pem
-cp ./cert171.pem `md5 -q ./cert171.pem`.pem
-cp ./cert172.pem `md5 -q ./cert172.pem`.pem
-cp ./cert173.pem `md5 -q ./cert173.pem`.pem
-cp ./cert174.pem `md5 -q ./cert174.pem`.pem
-cp ./cert175.pem `md5 -q ./cert175.pem`.pem
-cp ./cert176.pem `md5 -q ./cert176.pem`.pem
-cp ./cert177.pem `md5 -q ./cert177.pem`.pem
-cp ./cert178.pem `md5 -q ./cert178.pem`.pem
-cp ./foo.sh `md5 -q ./foo.sh`.pem
-----BEGIN CERTIFICATE-----
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
@@ -3012,136 +2830,6 @@ Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
4SVhM7JZG+Ju1zdXtg2pEto=
-----END CERTIFICATE-----
-cp . `md5 -q .`.pem
-cp ./cert000 `md5 -q ./cert000`.pem
-cp ./cert001 `md5 -q ./cert001`.pem
-cp ./cert002 `md5 -q ./cert002`.pem
-cp ./cert003 `md5 -q ./cert003`.pem
-cp ./cert004 `md5 -q ./cert004`.pem
-cp ./cert005 `md5 -q ./cert005`.pem
-cp ./cert006 `md5 -q ./cert006`.pem
-cp ./cert007 `md5 -q ./cert007`.pem
-cp ./cert008 `md5 -q ./cert008`.pem
-cp ./cert009 `md5 -q ./cert009`.pem
-cp ./cert010 `md5 -q ./cert010`.pem
-cp ./cert011 `md5 -q ./cert011`.pem
-cp ./cert012 `md5 -q ./cert012`.pem
-cp ./cert013 `md5 -q ./cert013`.pem
-cp ./cert014 `md5 -q ./cert014`.pem
-cp ./cert015 `md5 -q ./cert015`.pem
-cp ./cert016 `md5 -q ./cert016`.pem
-cp ./cert017 `md5 -q ./cert017`.pem
-cp ./cert018 `md5 -q ./cert018`.pem
-cp ./cert019 `md5 -q ./cert019`.pem
-cp ./cert020 `md5 -q ./cert020`.pem
-cp ./cert021 `md5 -q ./cert021`.pem
-cp ./cert022 `md5 -q ./cert022`.pem
-cp ./cert023 `md5 -q ./cert023`.pem
-cp ./cert024 `md5 -q ./cert024`.pem
-cp ./cert025 `md5 -q ./cert025`.pem
-cp ./cert026 `md5 -q ./cert026`.pem
-cp ./cert027 `md5 -q ./cert027`.pem
-cp ./cert028 `md5 -q ./cert028`.pem
-cp ./cert029 `md5 -q ./cert029`.pem
-cp ./cert030 `md5 -q ./cert030`.pem
-cp ./cert031 `md5 -q ./cert031`.pem
-cp ./cert032 `md5 -q ./cert032`.pem
-cp ./cert033 `md5 -q ./cert033`.pem
-cp ./cert034 `md5 -q ./cert034`.pem
-cp ./cert035 `md5 -q ./cert035`.pem
-cp ./cert036 `md5 -q ./cert036`.pem
-cp ./cert037 `md5 -q ./cert037`.pem
-cp ./cert038 `md5 -q ./cert038`.pem
-cp ./cert039 `md5 -q ./cert039`.pem
-cp ./cert040 `md5 -q ./cert040`.pem
-cp ./cert041 `md5 -q ./cert041`.pem
-cp ./cert042 `md5 -q ./cert042`.pem
-cp ./cert043 `md5 -q ./cert043`.pem
-cp ./cert044 `md5 -q ./cert044`.pem
-cp ./cert045 `md5 -q ./cert045`.pem
-cp ./cert046 `md5 -q ./cert046`.pem
-cp ./cert047 `md5 -q ./cert047`.pem
-cp ./cert048 `md5 -q ./cert048`.pem
-cp ./cert049 `md5 -q ./cert049`.pem
-cp ./cert050 `md5 -q ./cert050`.pem
-cp ./cert051 `md5 -q ./cert051`.pem
-cp ./cert052 `md5 -q ./cert052`.pem
-cp ./cert053 `md5 -q ./cert053`.pem
-cp ./cert054 `md5 -q ./cert054`.pem
-cp ./cert055 `md5 -q ./cert055`.pem
-cp ./cert056 `md5 -q ./cert056`.pem
-cp ./cert057 `md5 -q ./cert057`.pem
-cp ./cert058 `md5 -q ./cert058`.pem
-cp ./cert059 `md5 -q ./cert059`.pem
-cp ./cert060 `md5 -q ./cert060`.pem
-cp ./cert061 `md5 -q ./cert061`.pem
-cp ./cert062 `md5 -q ./cert062`.pem
-cp ./cert063 `md5 -q ./cert063`.pem
-cp ./cert064 `md5 -q ./cert064`.pem
-cp ./cert065 `md5 -q ./cert065`.pem
-cp ./cert066 `md5 -q ./cert066`.pem
-cp ./cert067 `md5 -q ./cert067`.pem
-cp ./cert068 `md5 -q ./cert068`.pem
-cp ./cert069 `md5 -q ./cert069`.pem
-cp ./cert070 `md5 -q ./cert070`.pem
-cp ./cert071 `md5 -q ./cert071`.pem
-cp ./cert072 `md5 -q ./cert072`.pem
-cp ./cert073 `md5 -q ./cert073`.pem
-cp ./cert074 `md5 -q ./cert074`.pem
-cp ./cert075 `md5 -q ./cert075`.pem
-cp ./cert076 `md5 -q ./cert076`.pem
-cp ./cert077 `md5 -q ./cert077`.pem
-cp ./cert078 `md5 -q ./cert078`.pem
-cp ./cert079 `md5 -q ./cert079`.pem
-cp ./cert080 `md5 -q ./cert080`.pem
-cp ./cert081 `md5 -q ./cert081`.pem
-cp ./cert082 `md5 -q ./cert082`.pem
-cp ./cert083 `md5 -q ./cert083`.pem
-cp ./cert084 `md5 -q ./cert084`.pem
-cp ./cert085 `md5 -q ./cert085`.pem
-cp ./cert086 `md5 -q ./cert086`.pem
-cp ./cert087 `md5 -q ./cert087`.pem
-cp ./cert088 `md5 -q ./cert088`.pem
-cp ./cert089 `md5 -q ./cert089`.pem
-cp ./cert090 `md5 -q ./cert090`.pem
-cp ./cert091 `md5 -q ./cert091`.pem
-cp ./cert092 `md5 -q ./cert092`.pem
-cp ./cert093 `md5 -q ./cert093`.pem
-cp ./cert094 `md5 -q ./cert094`.pem
-cp ./cert095 `md5 -q ./cert095`.pem
-cp ./cert096 `md5 -q ./cert096`.pem
-cp ./cert097 `md5 -q ./cert097`.pem
-cp ./cert098 `md5 -q ./cert098`.pem
-cp ./cert099 `md5 -q ./cert099`.pem
-cp ./cert100 `md5 -q ./cert100`.pem
-cp ./cert101 `md5 -q ./cert101`.pem
-cp ./cert102 `md5 -q ./cert102`.pem
-cp ./cert103 `md5 -q ./cert103`.pem
-cp ./cert104 `md5 -q ./cert104`.pem
-cp ./cert105 `md5 -q ./cert105`.pem
-cp ./cert106 `md5 -q ./cert106`.pem
-cp ./cert107 `md5 -q ./cert107`.pem
-cp ./cert108 `md5 -q ./cert108`.pem
-cp ./cert109 `md5 -q ./cert109`.pem
-cp ./cert110 `md5 -q ./cert110`.pem
-cp ./cert111 `md5 -q ./cert111`.pem
-cp ./cert112 `md5 -q ./cert112`.pem
-cp ./cert113 `md5 -q ./cert113`.pem
-cp ./cert114 `md5 -q ./cert114`.pem
-cp ./cert115 `md5 -q ./cert115`.pem
-cp ./cert116 `md5 -q ./cert116`.pem
-cp ./cert117 `md5 -q ./cert117`.pem
-cp ./cert118 `md5 -q ./cert118`.pem
-cp ./cert119 `md5 -q ./cert119`.pem
-cp ./cert120 `md5 -q ./cert120`.pem
-cp ./cert121 `md5 -q ./cert121`.pem
-cp ./cert122 `md5 -q ./cert122`.pem
-cp ./cert123 `md5 -q ./cert123`.pem
-cp ./cert124 `md5 -q ./cert124`.pem
-cp ./cert125 `md5 -q ./cert125`.pem
-cp ./cert126 `md5 -q ./cert126`.pem
-cp ./cert127 `md5 -q ./cert127`.pem
-cp ./foo.sh `md5 -q ./foo.sh`.pem
-----BEGIN CERTIFICATE-----
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
@@ -4587,28 +4275,6 @@ zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
wy39FCqQmbkHzJ8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
-TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
-MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
-ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
-ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
-9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
-hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
-tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
-BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
-SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
-OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
-cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
-7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
-eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
-u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
-7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
@@ -5883,3 +5549,25 @@ na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
TbvGRNs2yyqcjg==
-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
+TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
+dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
+MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
+ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
+ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
+9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
+hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
+tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
+BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
+SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
+OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
+cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
+7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
+/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
+eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
+u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
+7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
+iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index c7140283f1..d8295ddb87 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -34,15 +34,15 @@
<string />
</map>
<key>LastInventoryInboxActivity</key>
- <map>
- <key>Comment</key>
+ <map>
+ <key>Comment</key>
<string>The last time the received items inbox was poked by the user.</string>
- <key>Persist</key>
+ <key>Persist</key>
<integer>1</integer>
- <key>Type</key>
- <string>String</string>
- <key>Value</key>
- <string />
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>0</integer>
</map>
<key>LastLogoff</key>
<map>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 2e1108d42c..12795a1ec6 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2326,7 +2326,7 @@ bool LLAppViewer::initConfiguration()
if (gSavedSettings.getBOOL("FirstRunThisInstall"))
{
- gSavedSettings.setString("SessionSettingsFile", "settings_minimal.xml");
+ gSavedSettings.setString("SessionSettingsFile", "settings.xml");
gSavedSettings.setBOOL("FirstRunThisInstall", FALSE);
}
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index 216cc66ef8..cc6ba05e7e 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -41,6 +41,7 @@
#include "llmemoryview.h"
#include "llsceneview.h"
#include "llviewertexture.h"
+#include "llfloaterreg.h"
//
// Globals
@@ -79,12 +80,7 @@ void LLDebugView::init()
r.setLeftTopAndSize(25, rect.getHeight() - 50, (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f),
(S32) (gViewerWindow->getWindowRectScaled().getHeight() * 0.75f));
- mFastTimerView = new LLFastTimerView(r);
- mFastTimerView->setFollowsTop();
- mFastTimerView->setFollowsLeft();
- mFastTimerView->setVisible(FALSE); // start invisible
- addChild(mFastTimerView);
- mFastTimerView->setRect(rect);
+ mFastTimerView = dynamic_cast<LLFastTimerView*>(LLFloaterReg::getInstance("fast_timers"));
gSceneView = new LLSceneView(r);
gSceneView->setFollowsTop();
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 366154302c..a161428c2b 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -80,12 +80,10 @@ static timer_tree_iterator_t end_timer_tree()
return timer_tree_iterator_t();
}
-LLFastTimerView::LLFastTimerView(const LLRect& rect)
-: LLFloater(LLSD()),
+LLFastTimerView::LLFastTimerView(const LLSD& key)
+: LLFloater(key),
mHoverTimer(NULL)
{
- setRect(rect);
- setVisible(FALSE);
mDisplayMode = 0;
mAvgCountTotal = 0;
mMaxCountTotal = 0;
@@ -98,10 +96,30 @@ LLFastTimerView::LLFastTimerView(const LLRect& rect)
FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount();
mPrintStats = -1;
mAverageCyclesPerTimer = 0;
- setCanMinimize(false);
- setCanClose(true);
}
+void LLFastTimerView::onPause()
+{
+ LLFastTimer::sPauseHistory = !LLFastTimer::sPauseHistory;
+ // reset scroll to bottom when unpausing
+ if (!LLFastTimer::sPauseHistory)
+ {
+ mScrollIndex = 0;
+ getChild<LLButton>("pause_btn")->setLabel(getString("pause"));
+ }
+ else
+ {
+ getChild<LLButton>("pause_btn")->setLabel(getString("run"));
+ }
+}
+
+BOOL LLFastTimerView::postBuild()
+{
+ LLButton& pause_btn = getChildRef<LLButton>("pause_btn");
+
+ pause_btn.setCommitCallback(boost::bind(&LLFastTimerView::onPause, this));
+ return TRUE;
+}
BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
@@ -116,14 +134,16 @@ BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
mHoverTimer->getParent()->setCollapsed(true);
}
+ return TRUE;
}
else if (mBarRect.pointInRect(x, y))
{
S32 bar_idx = MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight());
bar_idx = llclamp(bar_idx, 0, MAX_VISIBLE_HISTORY);
mPrintStats = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - bar_idx;
+ return TRUE;
}
- return FALSE;
+ return LLFloater::handleRightMouseDown(x, y, mask);
}
LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y)
@@ -151,18 +171,6 @@ BOOL LLFastTimerView::handleDoubleClick(S32 x, S32 y, MASK mask)
BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
{
-
- {
- S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft;
- S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom;
- if(mButtons[BUTTON_CLOSE]->getVisible()
- && mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y) )
- {
- return LLFloater::handleMouseDown(x, y, mask);;
- }
- }
-
-
if (x < mBarRect.mLeft)
{
LLFastTimer::NamedTimer* idp = getLegendID(y);
@@ -196,36 +204,42 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
{
mDisplayCenter = (ChildAlignment)((mDisplayCenter + 1) % ALIGN_COUNT);
}
- else
+ else if (mGraphRect.pointInRect(x, y))
{
- // pause/unpause
- LLFastTimer::sPauseHistory = !LLFastTimer::sPauseHistory;
- // reset scroll to bottom when unpausing
- if (!LLFastTimer::sPauseHistory)
- {
- mScrollIndex = 0;
- }
+ gFocusMgr.setMouseCapture(this);
+ return TRUE;
}
- // SJB: Don't pass mouse clicks through the display
- return TRUE;
+ //else
+ //{
+ // // pause/unpause
+ // LLFastTimer::sPauseHistory = !LLFastTimer::sPauseHistory;
+ // // reset scroll to bottom when unpausing
+ // if (!LLFastTimer::sPauseHistory)
+ // {
+ // mScrollIndex = 0;
+ // }
+ //}
+ return LLFloater::handleMouseDown(x, y, mask);
}
BOOL LLFastTimerView::handleMouseUp(S32 x, S32 y, MASK mask)
{
+ if (hasMouseCapture())
{
- S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft;
- S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom;
- if(mButtons[BUTTON_CLOSE]->getVisible()
- && mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y) )
- {
- return LLFloater::handleMouseUp(x, y, mask);;
- }
+ gFocusMgr.setMouseCapture(NULL);
}
- return FALSE;
+ return LLFloater::handleMouseUp(x, y, mask);;
}
BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
{
+ if (hasMouseCapture())
+ {
+ F32 lerp = llclamp(1.f - (F32) (x - mGraphRect.mLeft) / (F32) mGraphRect.getWidth(), 0.f, 1.f);
+ mScrollIndex = llround( lerp * (F32)(LLFastTimer::NamedTimer::HISTORY_NUM - MAX_VISIBLE_HISTORY));
+ mScrollIndex = llclamp( mScrollIndex, 0, LLFastTimer::getLastFrameIndex());
+ return TRUE;
+ }
mHoverTimer = NULL;
mHoverID = NULL;
@@ -282,7 +296,7 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
}
}
- return FALSE;
+ return LLFloater::handleHover(x, y, mask);
}
@@ -318,15 +332,15 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
}
}
}
-
- return FALSE;
+
+ return LLFloater::handleToolTip(x, y, mask);
}
BOOL LLFastTimerView::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
LLFastTimer::sPauseHistory = TRUE;
- mScrollIndex = llclamp(mScrollIndex - clicks,
- 0,
+ mScrollIndex = llclamp( mScrollIndex + clicks,
+ 0,
llmin(LLFastTimer::getLastFrameIndex(), (S32)LLFastTimer::NamedTimer::HISTORY_NUM - MAX_VISIBLE_HISTORY));
return TRUE;
}
@@ -345,8 +359,8 @@ void LLFastTimerView::draw()
F64 iclock_freq = 1000.0 / clock_freq;
S32 margin = 10;
- S32 height = (S32) (gViewerWindow->getWindowRectScaled().getHeight()*0.75f);
- S32 width = (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f);
+ S32 height = getRect().getHeight();
+ S32 width = getRect().getWidth();
LLRect new_rect;
new_rect.setLeftTopAndSize(getRect().mLeft, getRect().mTop, width, height);
@@ -630,7 +644,6 @@ void LLFastTimerView::draw()
LLFontGL::LEFT, LLFontGL::TOP);
}
- LLRect graph_rect;
// Draw borders
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -663,9 +676,9 @@ void LLFastTimerView::draw()
by = LINE_GRAPH_HEIGHT-barh-dy-7;
//line graph
- graph_rect = LLRect(xleft-5, by, getRect().getWidth()-5, 5);
+ mGraphRect = LLRect(xleft-5, by, getRect().getWidth()-5, 5);
- gl_rect_2d(graph_rect, FALSE);
+ gl_rect_2d(mGraphRect, FALSE);
}
mBarStart.clear();
@@ -813,7 +826,7 @@ void LLFastTimerView::draw()
//draw line graph history
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- LLLocalClipRect clip(graph_rect);
+ LLLocalClipRect clip(mGraphRect);
//normalize based on last frame's maximum
static U64 last_max = 0;
@@ -830,8 +843,8 @@ void LLFastTimerView::draw()
else
tdesc = llformat("%4.2f ms", ms);
- x = graph_rect.mRight - LLFontGL::getFontMonospace()->getWidth(tdesc)-5;
- y = graph_rect.mTop - ((S32)LLFontGL::getFontMonospace()->getLineHeight());
+ x = mGraphRect.mRight - LLFontGL::getFontMonospace()->getWidth(tdesc)-5;
+ y = mGraphRect.mTop - ((S32)LLFontGL::getFontMonospace()->getLineHeight());
LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, LLColor4::white,
LLFontGL::LEFT, LLFontGL::TOP);
@@ -841,24 +854,24 @@ void LLFastTimerView::draw()
S32 first_frame = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex;
S32 last_frame = first_frame - MAX_VISIBLE_HISTORY;
- F32 frame_delta = ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1);
+ F32 frame_delta = ((F32) (mGraphRect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1);
- F32 right = (F32) graph_rect.mLeft + frame_delta*first_frame;
- F32 left = (F32) graph_rect.mLeft + frame_delta*last_frame;
+ F32 right = (F32) mGraphRect.mLeft + frame_delta*first_frame;
+ F32 left = (F32) mGraphRect.mLeft + frame_delta*last_frame;
gGL.color4f(0.5f,0.5f,0.5f,0.3f);
- gl_rect_2d((S32) left, graph_rect.mTop, (S32) right, graph_rect.mBottom);
+ gl_rect_2d((S32) left, mGraphRect.mTop, (S32) right, mGraphRect.mBottom);
if (mHoverBarIndex >= 0)
{
S32 bar_frame = first_frame - mHoverBarIndex;
- F32 bar = (F32) graph_rect.mLeft + frame_delta*bar_frame;
+ F32 bar = (F32) mGraphRect.mLeft + frame_delta*bar_frame;
gGL.color4f(0.5f,0.5f,0.5f,1);
gGL.begin(LLRender::LINES);
- gGL.vertex2i((S32)bar, graph_rect.mBottom);
- gGL.vertex2i((S32)bar, graph_rect.mTop);
+ gGL.vertex2i((S32)bar, mGraphRect.mBottom);
+ gGL.vertex2i((S32)bar, mGraphRect.mTop);
gGL.end();
}
}
@@ -883,7 +896,7 @@ void LLFastTimerView::draw()
if (mHoverID != NULL &&
idp != mHoverID)
- { //fade out non-hihglighted timers
+ { //fade out non-highlighted timers
if (idp->getParent() != mHoverID)
{
alpha = alpha_interp;
@@ -891,8 +904,10 @@ void LLFastTimerView::draw()
}
gGL.color4f(col[0], col[1], col[2], alpha);
- gGL.begin(LLRender::LINE_STRIP);
- for (U32 j = 0; j < LLFastTimer::NamedTimer::HISTORY_NUM; j++)
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ for (U32 j = llmax(0, LLFastTimer::NamedTimer::HISTORY_NUM - LLFastTimer::getLastFrameIndex());
+ j < LLFastTimer::NamedTimer::HISTORY_NUM;
+ j++)
{
U64 ticks = idp->getHistoricalCount(j);
@@ -912,9 +927,10 @@ void LLFastTimerView::draw()
//normalize to highlighted timer
cur_max = llmax(cur_max, ticks);
}
- F32 x = graph_rect.mLeft + ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1)*j;
- F32 y = graph_rect.mBottom + (F32) graph_rect.getHeight()/max_ticks*ticks;
+ F32 x = mGraphRect.mLeft + ((F32) (mGraphRect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1)*j;
+ F32 y = mGraphRect.mBottom + (F32) mGraphRect.getHeight()/max_ticks*ticks;
gGL.vertex2f(x,y);
+ gGL.vertex2f(x,mGraphRect.mBottom);
}
gGL.end();
@@ -932,18 +948,20 @@ void LLFastTimerView::draw()
}
//interpolate towards new maximum
- F32 dt = gFrameIntervalSeconds*3.f;
- last_max = (U64) ((F32) last_max + ((F32) cur_max- (F32) last_max) * dt);
+ last_max = (U64) lerp((F32)last_max, (F32) cur_max, LLCriticalDamp::getInterpolant(0.1f));
+ if (last_max - cur_max <= 1 || cur_max - last_max <= 1)
+ {
+ last_max = cur_max;
+ }
F32 alpha_target = last_max > cur_max ?
llmin((F32) last_max/ (F32) cur_max - 1.f,1.f) :
llmin((F32) cur_max/ (F32) last_max - 1.f,1.f);
-
- alpha_interp = alpha_interp + (alpha_target-alpha_interp) * dt;
+ alpha_interp = lerp(alpha_interp, alpha_target, LLCriticalDamp::getInterpolant(0.1f));
if (mHoverID != NULL)
{
- x = (graph_rect.mRight + graph_rect.mLeft)/2;
- y = graph_rect.mBottom + 8;
+ x = (mGraphRect.mRight + mGraphRect.mLeft)/2;
+ y = mGraphRect.mBottom + 8;
LLFontGL::getFontMonospace()->renderUTF8(
mHoverID->getName(),
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index ea8251191b..a349e7ad4c 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -33,8 +33,9 @@
class LLFastTimerView : public LLFloater
{
public:
- LLFastTimerView(const LLRect& rect);
-
+ LLFastTimerView(const LLSD&);
+ BOOL postBuild();
+
static BOOL sAnalyzePerformance;
static void outputAllMetrics();
@@ -44,6 +45,7 @@ private:
static void doAnalysisDefault(std::string baseline, std::string target, std::string output) ;
static LLSD analyzePerformanceLogDefault(std::istream& is) ;
static void exportCharts(const std::string& base, const std::string& target);
+ void onPause();
public:
@@ -89,6 +91,7 @@ private:
LLFrameTimer mHighlightTimer;
S32 mPrintStats;
S32 mAverageCyclesPerTimer;
+ LLRect mGraphRect;
};
#endif
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 2888f779f4..622dcfe8dd 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -282,9 +282,9 @@ void LLFolderViewItem::refreshFromListener()
setToolTip(mLabel);
setIcon(mListener->getIcon());
time_t creation_date = mListener->getCreationDate();
- if (mCreationDate != creation_date)
+ if ((creation_date > 0) && (mCreationDate != creation_date))
{
- setCreationDate(mListener->getCreationDate());
+ setCreationDate(creation_date);
dirtyFilter();
}
if (mRoot->useLabelSuffix())
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index d6278a5fda..516b47e616 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -256,16 +256,20 @@ std::string::size_type LLInventoryFilter::getStringMatchOffset() const
// has user modified default filter params?
BOOL LLInventoryFilter::isNotDefault() const
{
- return mFilterOps.mFilterObjectTypes != mDefaultFilterOps.mFilterObjectTypes
- || mFilterOps.mFilterCategoryTypes != mDefaultFilterOps.mFilterCategoryTypes
- || mFilterOps.mFilterWearableTypes != mDefaultFilterOps.mFilterWearableTypes
- || mFilterOps.mFilterTypes != FILTERTYPE_OBJECT
- || mFilterOps.mFilterLinks != FILTERLINK_INCLUDE_LINKS
- || mFilterSubString.size()
- || mFilterOps.mPermissions != mDefaultFilterOps.mPermissions
- || mFilterOps.mMinDate != mDefaultFilterOps.mMinDate
- || mFilterOps.mMaxDate != mDefaultFilterOps.mMaxDate
- || mFilterOps.mHoursAgo != mDefaultFilterOps.mHoursAgo;
+ BOOL not_default = FALSE;
+
+ not_default |= (mFilterOps.mFilterObjectTypes != mDefaultFilterOps.mFilterObjectTypes);
+ not_default |= (mFilterOps.mFilterCategoryTypes != mDefaultFilterOps.mFilterCategoryTypes);
+ not_default |= (mFilterOps.mFilterWearableTypes != mDefaultFilterOps.mFilterWearableTypes);
+ not_default |= (mFilterOps.mFilterTypes != mDefaultFilterOps.mFilterTypes);
+ not_default |= (mFilterOps.mFilterLinks != mDefaultFilterOps.mFilterLinks);
+ not_default |= (mFilterSubString.size());
+ not_default |= (mFilterOps.mPermissions != mDefaultFilterOps.mPermissions);
+ not_default |= (mFilterOps.mMinDate != mDefaultFilterOps.mMinDate);
+ not_default |= (mFilterOps.mMaxDate != mDefaultFilterOps.mMaxDate);
+ not_default |= (mFilterOps.mHoursAgo != mDefaultFilterOps.mHoursAgo);
+
+ return not_default;
}
BOOL LLInventoryFilter::isActive() const
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 173e5c6ae6..615d3aefde 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -129,6 +129,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
mScroller(NULL),
mSortOrderSetting(p.sort_order_setting),
mInventory(p.inventory),
+ mAcceptsDragAndDrop(p.accepts_drag_and_drop),
mAllowMultiSelect(p.allow_multi_select),
mShowItemLinkOverlays(p.show_item_link_overlays),
mShowLoadStatus(p.show_load_status),
@@ -824,19 +825,24 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EAcceptance* accept,
std::string& tooltip_msg)
{
- BOOL handled = LLPanel::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
+ BOOL handled = FALSE;
- // If folder view is empty the (x, y) point won't be in its rect
- // so the handler must be called explicitly.
- // but only if was not handled before. See EXT-6746.
- if (!handled && !mFolderRoot->hasVisibleChildren())
+ if (mAcceptsDragAndDrop)
{
- handled = mFolderRoot->handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
- }
+ handled = LLPanel::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
- if (handled)
- {
- mFolderRoot->setDragAndDropThisFrame();
+ // If folder view is empty the (x, y) point won't be in its rect
+ // so the handler must be called explicitly.
+ // but only if was not handled before. See EXT-6746.
+ if (!handled && !mFolderRoot->hasVisibleChildren())
+ {
+ handled = mFolderRoot->handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
+ }
+
+ if (handled)
+ {
+ mFolderRoot->setDragAndDropThisFrame();
+ }
}
return handled;
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index cfb84bf4b7..8635ebc5c8 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -86,6 +86,7 @@ public:
Optional<bool> use_label_suffix;
Optional<bool> show_load_status;
Optional<LLScrollContainer::Params> scroll;
+ Optional<bool> accepts_drag_and_drop;
Params()
: sort_order_setting("sort_order_setting"),
@@ -96,7 +97,8 @@ public:
start_folder("start_folder"),
use_label_suffix("use_label_suffix", true),
show_load_status("show_load_status"),
- scroll("scroll")
+ scroll("scroll"),
+ accepts_drag_and_drop("accepts_drag_and_drop")
{}
};
@@ -181,6 +183,7 @@ protected:
LLInventoryModel* mInventory;
LLInventoryObserver* mInventoryObserver;
LLInvPanelComplObserver* mCompletionObserver;
+ BOOL mAcceptsDragAndDrop;
BOOL mAllowMultiSelect;
BOOL mShowItemLinkOverlays; // Shows link graphic over inventory item icons
BOOL mShowLoadStatus;
diff --git a/indra/newview/llpanelmarketplaceinbox.cpp b/indra/newview/llpanelmarketplaceinbox.cpp
index 2cb91f771f..0579ecbb90 100644
--- a/indra/newview/llpanelmarketplaceinbox.cpp
+++ b/indra/newview/llpanelmarketplaceinbox.cpp
@@ -97,6 +97,7 @@ LLInventoryPanel * LLPanelMarketplaceInbox::setupInventoryPanel()
// Set the sort order newest to oldest
mInventoryPanel->setSortOrder(LLInventoryFilter::SO_DATE);
+ mInventoryPanel->getFilter()->markDefault();
// Set selection callback for proper update of inventory status buttons
mInventoryPanel->setSelectCallback(boost::bind(&LLPanelMarketplaceInbox::onSelectionChange, this));
@@ -116,7 +117,7 @@ void LLPanelMarketplaceInbox::onFocusReceived()
sidepanel_inventory->clearSelections(true, false, true);
- gSavedPerAccountSettings.setString("LastInventoryInboxActivity", LLDate::now().asString());
+ gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());
}
BOOL LLPanelMarketplaceInbox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string& tooltip_msg)
diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp
index d51aa73c93..faba6dc0cf 100644
--- a/indra/newview/llpanelmarketplaceinboxinventory.cpp
+++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp
@@ -192,20 +192,19 @@ void LLInboxFolderViewFolder::draw()
void LLInboxFolderViewFolder::computeFreshness()
{
- const std::string& last_expansion = gSavedPerAccountSettings.getString("LastInventoryInboxActivity");
+ const U32 last_expansion_utc = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity");
- if (!last_expansion.empty())
+ if (last_expansion_utc > 0)
{
- // Inventory DB timezone is hardcoded to PDT or GMT-7, which is 7 hours behind GMT
- const F64 SEVEN_HOURS_IN_SECONDS = 7 * 60 * 60;
- const F64 saved_freshness_inventory_db_timezone = LLDate(last_expansion).secondsSinceEpoch() - SEVEN_HOURS_IN_SECONDS;
+ const U32 time_offset_for_pdt = 7 * 60 * 60;
+ const U32 last_expansion = last_expansion_utc - time_offset_for_pdt;
- mFresh = (mCreationDate > saved_freshness_inventory_db_timezone);
+ mFresh = (mCreationDate > last_expansion);
#if DEBUGGING_FRESHNESS
if (mFresh)
{
- llinfos << "Item is fresh! -- creation " << mCreationDate << ", saved_freshness_date " << saved_freshness_inventory_db_timezone << llendl;
+ llinfos << "Item is fresh! -- creation " << mCreationDate << ", saved_freshness_date " << last_expansion << llendl;
}
#endif
}
@@ -219,7 +218,7 @@ void LLInboxFolderViewFolder::deFreshify()
{
mFresh = false;
- gSavedPerAccountSettings.setString("LastInventoryInboxActivity", LLDate::now().asString());
+ gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());
}
void LLInboxFolderViewFolder::selectItem()
diff --git a/indra/newview/llpanelmarketplaceoutbox.cpp b/indra/newview/llpanelmarketplaceoutbox.cpp
index 839369bffe..73fb92ff72 100644
--- a/indra/newview/llpanelmarketplaceoutbox.cpp
+++ b/indra/newview/llpanelmarketplaceoutbox.cpp
@@ -117,8 +117,11 @@ LLInventoryPanel * LLPanelMarketplaceOutbox::setupInventoryPanel()
LLRect inventory_placeholder_rect = outbox_inventory_placeholder->getRect();
mInventoryPanel->setShape(inventory_placeholder_rect);
- // Set the sort order newest to oldest, and a selection change callback
+ // Set the sort order newest to oldest
mInventoryPanel->setSortOrder(LLInventoryFilter::SO_DATE);
+ mInventoryPanel->getFilter()->markDefault();
+
+ // Set selection callback for proper update of inventory status buttons
mInventoryPanel->setSelectCallback(boost::bind(&LLPanelMarketplaceOutbox::onSelectionChange, this));
// Set up the note to display when the outbox is empty
diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp
index 9814e5b81a..bd62b5c101 100644
--- a/indra/newview/llsidepanelinventory.cpp
+++ b/indra/newview/llsidepanelinventory.cpp
@@ -539,7 +539,7 @@ void LLSidepanelInventory::onToggleInboxBtn()
if (inbox_expanded && inboxPanel->isInVisibleChain())
{
- gSavedPerAccountSettings.setString("LastInventoryInboxActivity", LLDate::now().asString());
+ gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());
}
}
@@ -568,7 +568,7 @@ void LLSidepanelInventory::onOpen(const LLSD& key)
#else
if (mInboxEnabled && getChild<LLButton>(INBOX_BUTTON_NAME)->getToggleState())
{
- gSavedPerAccountSettings.setString("LastInventoryInboxActivity", LLDate::now().asString());
+ gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());
}
#endif
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 0d28b3c042..50ecad92dd 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -62,6 +62,8 @@
using namespace std;
using namespace LLNotificationsUI;
+class LLSideTrayButton;
+
static LLRootViewRegistry::Register<LLSideTray> t1("side_tray");
static LLDefaultChildRegistry::Register<LLSideTrayTab> t2("sidetray_tab");
@@ -168,8 +170,131 @@ private:
bool mHasBadge;
LLBadge::Params mBadgeParams;
+ LLSideTrayButton* mSideTrayButton;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+// LLSideTrayButton
+// Side Tray tab button with "tear off" handling.
+//////////////////////////////////////////////////////////////////////////////
+
+class LLSideTrayButton : public LLButton
+{
+public:
+ /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask)
+ {
+ // Route future Mouse messages here preemptively. (Release on mouse up.)
+ // No handler needed for focus lost since this class has no state that depends on it.
+ gFocusMgr.setMouseCapture(this);
+
+ localPointToScreen(x, y, &mDragLastScreenX, &mDragLastScreenY);
+
+ // Note: don't pass on to children
+ return TRUE;
+ }
+
+ /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask)
+ {
+ // We only handle the click if the click both started and ended within us
+ if( !hasMouseCapture() ) return FALSE;
+
+ S32 screen_x;
+ S32 screen_y;
+ localPointToScreen(x, y, &screen_x, &screen_y);
+
+ S32 delta_x = screen_x - mDragLastScreenX;
+ S32 delta_y = screen_y - mDragLastScreenY;
+
+ LLSideTray* side_tray = LLSideTray::getInstance();
+
+ // Check if the tab we are dragging is docked.
+ if (!side_tray->isTabAttached(mTabName)) return FALSE;
+
+ // Same value is hardcoded in LLDragHandle::handleHover().
+ const S32 undock_threshold = 12;
+
+ // Detach a tab if it has been pulled further than undock_threshold.
+ if (delta_x <= -undock_threshold || delta_x >= undock_threshold ||
+ delta_y <= -undock_threshold || delta_y >= undock_threshold)
+ {
+ LLSideTrayTab* tab = side_tray->getTab(mTabName);
+ if (!tab) return FALSE;
+
+ tab->setDocked(false);
+
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab->getName());
+ if (!floater_tab) return FALSE;
+
+ LLRect original_rect = floater_tab->getRect();
+ S32 header_snap_y = floater_tab->getHeaderHeight() / 2;
+ S32 snap_x = screen_x - original_rect.mLeft - original_rect.getWidth() / 2;
+ S32 snap_y = screen_y - original_rect.mTop + header_snap_y;
+
+ // Move the floater to appear "under" the mouse pointer.
+ floater_tab->setRect(original_rect.translate(snap_x, snap_y));
+
+ // Snap the mouse pointer to the center of the floater header
+ // and call 'mouse down' event handler to begin dragging.
+ floater_tab->handleMouseDown(original_rect.getWidth() / 2,
+ original_rect.getHeight() - header_snap_y,
+ mask);
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ void setBadgeDriver(LLSideTrayTabBadgeDriver* driver)
+ {
+ mBadgeDriver = driver;
+ }
+
+ void setVisible(BOOL visible)
+ {
+ setBadgeVisibility(visible);
+
+ LLButton::setVisible(visible);
+ }
+
+protected:
+ LLSideTrayButton(const LLButton::Params& p)
+ : LLButton(p)
+ , mDragLastScreenX(0)
+ , mDragLastScreenY(0)
+ , mBadgeDriver(NULL)
+ {
+ // Find out the tab name to use in handleHover().
+ size_t pos = getName().find("_button");
+ llassert(pos != std::string::npos);
+ mTabName = getName().substr(0, pos);
+ }
+
+ friend class LLUICtrlFactory;
+
+ void draw()
+ {
+ if (mBadgeDriver)
+ {
+ setBadgeLabel(mBadgeDriver->getBadgeString());
+ }
+
+ LLButton::draw();
+ }
+
+private:
+ S32 mDragLastScreenX;
+ S32 mDragLastScreenY;
+
+ std::string mTabName;
+ LLSideTrayTabBadgeDriver* mBadgeDriver;
};
+
+////////////////////////////////////////////////////
+// LLSideTrayTab implementation
+////////////////////////////////////////////////////
+
LLSideTrayTab::LLSideTrayTab(const Params& p)
: LLPanel(),
mTabTitle(p.tab_title),
@@ -177,7 +302,8 @@ LLSideTrayTab::LLSideTrayTab(const Params& p)
mImageSelected(p.image_selected),
mDescription(p.description),
mMainPanel(NULL),
- mBadgeParams(p.badge)
+ mBadgeParams(p.badge),
+ mSideTrayButton(NULL)
{
mHasBadge = p.badge.isProvided();
}
@@ -271,6 +397,11 @@ void LLSideTrayTab::toggleTabDocked(bool toggle_floater /* = true */)
bool docking = !isDocked();
+ if (mSideTrayButton)
+ {
+ mSideTrayButton->setVisible(docking);
+ }
+
// Hide the "Tear Off" button when a tab gets undocked
// and show "Dock" button instead.
getChild<LLButton>("undock")->setVisible(docking);
@@ -462,116 +593,6 @@ template <>
LLPanel* tab_cast<LLPanel*>(LLSideTrayTab* tab) { return tab; }
//////////////////////////////////////////////////////////////////////////////
-// LLSideTrayButton
-// Side Tray tab button with "tear off" handling.
-//////////////////////////////////////////////////////////////////////////////
-
-class LLSideTrayButton : public LLButton
-{
-public:
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask)
- {
- // Route future Mouse messages here preemptively. (Release on mouse up.)
- // No handler needed for focus lost since this class has no state that depends on it.
- gFocusMgr.setMouseCapture(this);
-
- localPointToScreen(x, y, &mDragLastScreenX, &mDragLastScreenY);
-
- // Note: don't pass on to children
- return TRUE;
- }
-
- /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask)
- {
- // We only handle the click if the click both started and ended within us
- if( !hasMouseCapture() ) return FALSE;
-
- S32 screen_x;
- S32 screen_y;
- localPointToScreen(x, y, &screen_x, &screen_y);
-
- S32 delta_x = screen_x - mDragLastScreenX;
- S32 delta_y = screen_y - mDragLastScreenY;
-
- LLSideTray* side_tray = LLSideTray::getInstance();
-
- // Check if the tab we are dragging is docked.
- if (!side_tray->isTabAttached(mTabName)) return FALSE;
-
- // Same value is hardcoded in LLDragHandle::handleHover().
- const S32 undock_threshold = 12;
-
- // Detach a tab if it has been pulled further than undock_threshold.
- if (delta_x <= -undock_threshold || delta_x >= undock_threshold ||
- delta_y <= -undock_threshold || delta_y >= undock_threshold)
- {
- LLSideTrayTab* tab = side_tray->getTab(mTabName);
- if (!tab) return FALSE;
-
- tab->setDocked(false);
-
- LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab->getName());
- if (!floater_tab) return FALSE;
-
- LLRect original_rect = floater_tab->getRect();
- S32 header_snap_y = floater_tab->getHeaderHeight() / 2;
- S32 snap_x = screen_x - original_rect.mLeft - original_rect.getWidth() / 2;
- S32 snap_y = screen_y - original_rect.mTop + header_snap_y;
-
- // Move the floater to appear "under" the mouse pointer.
- floater_tab->setRect(original_rect.translate(snap_x, snap_y));
-
- // Snap the mouse pointer to the center of the floater header
- // and call 'mouse down' event handler to begin dragging.
- floater_tab->handleMouseDown(original_rect.getWidth() / 2,
- original_rect.getHeight() - header_snap_y,
- mask);
-
- return TRUE;
- }
-
- return FALSE;
- }
-
- void setBadgeDriver(LLSideTrayTabBadgeDriver* driver)
- {
- mBadgeDriver = driver;
- }
-
-protected:
- LLSideTrayButton(const LLButton::Params& p)
- : LLButton(p)
- , mDragLastScreenX(0)
- , mDragLastScreenY(0)
- , mBadgeDriver(NULL)
- {
- // Find out the tab name to use in handleHover().
- size_t pos = getName().find("_button");
- llassert(pos != std::string::npos);
- mTabName = getName().substr(0, pos);
- }
-
- friend class LLUICtrlFactory;
-
- void draw()
- {
- if (mBadgeDriver)
- {
- setBadgeLabel(mBadgeDriver->getBadgeString());
- }
-
- LLButton::draw();
- }
-
-private:
- S32 mDragLastScreenX;
- S32 mDragLastScreenY;
-
- std::string mTabName;
- LLSideTrayTabBadgeDriver* mBadgeDriver;
-};
-
-//////////////////////////////////////////////////////////////////////////////
// LLSideTray
//////////////////////////////////////////////////////////////////////////////
@@ -785,7 +806,7 @@ bool LLSideTray::selectTabByName(const std::string& name, bool keep_prev_visible
{
// Keep previously active tab visible if requested.
if (keep_prev_visible) tab_to_keep_visible = mActiveTab;
- toggleTabButton(mActiveTab);
+ toggleTabButton(mActiveTab);
}
//select new tab
@@ -793,9 +814,9 @@ bool LLSideTray::selectTabByName(const std::string& name, bool keep_prev_visible
if (mActiveTab)
{
- toggleTabButton(mActiveTab);
- LLSD key;//empty
- mActiveTab->onOpen(key);
+ toggleTabButton(mActiveTab);
+ LLSD key;//empty
+ mActiveTab->onOpen(key);
}
//arrange();
@@ -975,7 +996,9 @@ LLButton* LLSideTrayTab::createButton(bool allowTearOff, LLUICtrl::commit_callba
LLButton* button;
if (allowTearOff)
{
- button = LLUICtrlFactory::create<LLSideTrayButton>(bparams);
+ mSideTrayButton = LLUICtrlFactory::create<LLSideTrayButton>(bparams);
+
+ button = mSideTrayButton;
}
else
{
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 60f01fa746..8e2240981b 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -33,6 +33,7 @@
#include "llcompilequeue.h"
#include "llcallfloater.h"
+#include "llfasttimerview.h"
#include "llfloaterabout.h"
#include "llfloateranimpreview.h"
#include "llfloaterauction.h"
@@ -160,6 +161,7 @@ void LLViewerFloaterReg::registerFloaters()
// *NOTE: Please keep these alphabetized for easier merges
LLFloaterAboutUtil::registerFloater();
+ LLFloaterReg::add("fast_timers", "floater_fast_timers.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFastTimerView>);
LLFloaterReg::add("about_land", "floater_about_land.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLand>);
LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>);
LLFloaterReg::add("avatar_picker", "floater_avatar_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarPicker>);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 26599f557e..754731b290 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -523,7 +523,7 @@ class LLAdvancedToggleConsole : public view_listener_t
}
else if ("fast timers" == console_type)
{
- toggle_visibility( (void*)gDebugView->mFastTimerView );
+ LLFloaterReg::toggleInstance("fast_timers");
}
else if ("scene view" == console_type)
{
@@ -563,7 +563,7 @@ class LLAdvancedCheckConsole : public view_listener_t
}
else if ("fast timers" == console_type)
{
- new_value = get_visibility( (void*)gDebugView->mFastTimerView );
+ new_value = LLFloaterReg::instanceVisible("fast_timers");
}
else if ("scene view" == console_type)
{
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index d20b6641d3..d81e67bfe2 100644..100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -139,6 +139,7 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
if (!gAgentAvatarp)
{
gAgentAvatarp = new LLVOAvatarSelf(id, pcode, regionp);
+ gAgentAvatarp->initInstance();
}
else
{
@@ -148,9 +149,10 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
}
else
{
- res = new LLVOAvatar(id, pcode, regionp);
+ LLVOAvatar *avatar = new LLVOAvatar(id, pcode, regionp);
+ avatar->initInstance();
+ res = avatar;
}
- static_cast<LLVOAvatar*>(res)->initInstance();
break;
}
case LL_PCODE_LEGACY_GRASS:
diff --git a/indra/newview/skins/default/xui/en/floater_fast_timers.xml b/indra/newview/skins/default/xui/en/floater_fast_timers.xml
new file mode 100644
index 0000000000..49aa8f3840
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_fast_timers.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ can_minimize="false"
+ can_tear_off="false"
+ can_resize="true"
+ can_drag_on_left="false"
+ can_close="true"
+ height="500"
+ layout="topleft"
+ name="fast_timers"
+ save_rect="true"
+ save_visibility="false"
+ single_instance="true"
+ min_width="400"
+ width="700">
+ <string name="pause" >Pause</string>
+ <string name="run">Run</string>
+ <button follows="top|right"
+ name="pause_btn"
+ left="-200"
+ top="5"
+ width="180"
+ height="40"
+ pad_bottom="-5"
+ label="Pause"
+ font="SansSerifHuge"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 888230a00e..e6c5110999 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -82,10 +82,11 @@
left="0"
name="All Items"
sort_order_setting="InventorySortOrder"
- show_item_link_overlays="true"
+ show_item_link_overlays="true"
top="16"
width="288" />
<recent_inventory_panel
+ accepts_drag_and_drop="false"
bg_opaque_color="DkGray2"
bg_alpha_color="DkGray2"
background_visible="true"
@@ -99,7 +100,7 @@
layout="topleft"
left_delta="0"
name="Recent Items"
- show_item_link_overlays="true"
+ show_item_link_overlays="true"
width="290" />
</tab_container>
<layout_stack
diff --git a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
index 00f4c43915..eaf148c5e4 100644
--- a/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inventory_panel.xml
@@ -4,11 +4,12 @@
background_visible="true"
background_opaque="true"
show_load_status="true"
+ accepts_drag_and_drop="true"
>
<scroll
- name="Inventory Scroller"
- follows="all"
- reserve_scroll_corner="true"
- tab_stop="true"
- />
+ name="Inventory Scroller"
+ follows="all"
+ reserve_scroll_corner="true"
+ tab_stop="true"
+ />
</panel>
diff --git a/indra/newview/skins/default/xui/fr/floater_model_preview.xml b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
index 2639339be5..2b8e441ef0 100644
--- a/indra/newview/skins/default/xui/fr/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
@@ -131,7 +131,7 @@ Serveur :
<button label="Parcourir..." name="lod_browse"/>
<combo_box name="lod_mode">
<combo_item name="triangle_limit">
- Limite du triangle
+ Triangles max.
</combo_item>
<combo_item name="error_threshold">
Seuil d&apos;erreur
@@ -141,7 +141,7 @@ Serveur :
Opér. construction :
</text>
<text name="queue_mode_text">
- Mode fil d&apos;attente :
+ Mode file d&apos;attente :
</text>
<combo_box name="build_operator">
<combo_item name="edge_collapse">
@@ -244,7 +244,7 @@ Serveur :
Frais de chargement : [FEE] L$
</text>
<button label="Réinitialiser" name="reset_btn" tool_tip="Rétablir les paramètres par défaut."/>
- <button label="Calculer les poids et les frais" name="calculate_btn" tool_tip="Calculer les poids et les frais."/>
+ <button label="Calculer poids et frais" name="calculate_btn" tool_tip="Calculer les poids et les frais."/>
<button label="Charger" name="ok_btn" tool_tip="Charger dans le simulateur."/>
<button label="Annuler" name="cancel_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index e6d407f727..4b4eedab8e 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -4228,7 +4228,7 @@ de l&apos;infraction signalée
/fumer
</string>
<string name="/stretch">
- /s&apos;étirer
+ /bailler
</string>
<string name="/whistle">
/siffler