Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
commit
d3f4b4f374
294
autobuild.xml
294
autobuild.xml
|
|
@ -24,7 +24,7 @@
|
|||
<key>hash</key>
|
||||
<string>aa31ee4c6315cb26bf6e2191b69598f5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/jemalloc-5.1.0-linux64-190582149.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/jemalloc-5.1.0-linux64-190582149.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -50,23 +50,11 @@
|
|||
<key>hash</key>
|
||||
<string>47ddd059d48f650e39796c10ea828689</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin-201606211534-r77.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
</map>
|
||||
<key>linux</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>0ea99b626d4d5e3dc43f9f35f88625ba</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ndPhysicsStub-1.201502162025-r74-linux-201502162025-r74.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
</map>
|
||||
<key>linux64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
|
|
@ -74,7 +62,7 @@
|
|||
<key>hash</key>
|
||||
<string>99fe10fdec03a22d680de72bc8b5f85a</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ndPhysicsStub-1.181041840-linux64-181041840.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ndPhysicsStub-1.181041840-linux64-181041840.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -84,9 +72,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>7649dd9c2075b0cbda5b80b4edb9b90e</string>
|
||||
<string>adb2d66a0f5cb473a36e24c4dc3cfa36</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows-vs2017-1906061512.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ndPhysicsStub-1.0-windows-202121822.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -96,9 +84,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>9e2a24005a4751c3dc4655ac077e35c0</string>
|
||||
<string>02f70159e14c7b7213b22a0225508c46</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ndPhysicsStub-1.0-windows64-vs2017-1906061512.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ndPhysicsStub-1.0-windows64-202121823.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -124,7 +112,7 @@
|
|||
<key>hash</key>
|
||||
<string>33300134846d0f00ac4f31c1a190e3e6</string>
|
||||
<key>url</key>
|
||||
<uri>http://downloads.phoenixviewer.com/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2</uri>
|
||||
<uri>http://3p.firestormviewer.org/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2</uri>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -136,7 +124,7 @@
|
|||
<key>hash</key>
|
||||
<string>af06208ec80b1f170cc560141602e2dc</string>
|
||||
<key>url</key>
|
||||
<uri>http://downloads.phoenixviewer.com/libnotify-0.4.4-linux-20101003.tar.bz2</uri>
|
||||
<uri>http://3p.firestormviewer.org/libnotify-0.4.4-linux-20101003.tar.bz2</uri>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -148,7 +136,7 @@
|
|||
<key>hash</key>
|
||||
<string>29a573c4d27d617345030cf28860ea2e</string>
|
||||
<key>url</key>
|
||||
<uri>http://downloads.phoenixviewer.com/gntp_growl-1.0-windows-vs2017-1906061512.tar.bz2</uri>
|
||||
<uri>http://3p.firestormviewer.org/gntp_growl-1.0-windows-vs2017-1906061512.tar.bz2</uri>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -160,7 +148,7 @@
|
|||
<key>hash</key>
|
||||
<string>a333b335104b3d0df14b9be005ef1571</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/gntp_growl-1.0-windows64-vs2017-1906061512.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/gntp_growl-1.0-windows64-vs2017-1906061512.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -252,7 +240,7 @@
|
|||
<key>hash</key>
|
||||
<string>ff2e4df5bffe0203dc654b111347e617</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/SDL-1.2.15-linux-181412059.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/SDL-1.2.15-linux-181412059.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -264,7 +252,7 @@
|
|||
<key>hash</key>
|
||||
<string>64c1dff0e19792acec7fd32556bf4d7b</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/SDL-1.2.15-linux64-181411635.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/SDL-1.2.15-linux64-181411635.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -318,7 +306,7 @@
|
|||
<key>hash</key>
|
||||
<string>161e07b37e2f30da004a0d72d5075ad7</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/apr_suite-1.4.5.180871344-linux-180871344.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/apr_suite-1.4.5.180871344-linux-180871344.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -330,7 +318,7 @@
|
|||
<key>hash</key>
|
||||
<string>5c3c29851edd837d5f9518618c4a303b</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/apr_suite-1.4.5.180841559-linux64-180841559.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/apr_suite-1.4.5.180841559-linux64-180841559.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -394,9 +382,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>c68630bd937509573df87a41452bc464</string>
|
||||
<string>3cc73623c9a976b4f8346a3837f7a916</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56315/526789/boost-1.72-darwin64-539869.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64088/601256/boost-1.72-darwin64-545361.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -418,9 +406,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>097d04c5b064c4be4bc9edb885509a94</string>
|
||||
<string>7d4b2511976449e9a4ec7be41dc8310f</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56321/526797/boost-1.72-windows-539869.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64092/601270/boost-1.72-windows-545361.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -430,9 +418,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>748c4d47cced7ba2b210eb6d0ed33497</string>
|
||||
<string>4ad8df0700745201cddf6b71d7b0949f</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56320/526777/boost-1.72-windows64-539869.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64091/601265/boost-1.72-windows64-545361.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -524,9 +512,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>76e70d1f024e089bcd1afa6748d67a62</string>
|
||||
<string>02e6a8207dcdaf243dcb6da19b8c3534</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56409/527191/colladadom-2.3.539922-darwin64-539922.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64099/601302/colladadom-2.3.545362-darwin64-545362.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -538,7 +526,7 @@
|
|||
<key>hash</key>
|
||||
<string>d83896f28716f34b7b49d61a23283c4c</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/colladadom-2.3.180871403-linux-180871403.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/colladadom-2.3.180871403-linux-180871403.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -560,9 +548,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>3d6ab0e5e08a7f03088232e5676a861e</string>
|
||||
<string>8a02a10fc69c8f504dc5335644db184a</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56415/527297/colladadom-2.3.539922-windows-539922.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64104/601313/colladadom-2.3.545362-windows-545362.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -572,16 +560,16 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>5a31c4d50a04d255e84903f16597d4ed</string>
|
||||
<string>742180324fca7ab92b6a61a36aab4f9d</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56408/527200/colladadom-2.3.539922-windows64-539922.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64103/601314/colladadom-2.3.545362-windows64-545362.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>2.3.539922</string>
|
||||
<string>2.3.545362</string>
|
||||
</map>
|
||||
<key>curl</key>
|
||||
<map>
|
||||
|
|
@ -614,9 +602,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>decf3d5bd930e9ac6113cf96c61ff230</string>
|
||||
<string>f5ae57117a6518d11f49ccfbfbe0969d</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56342/526921/curl-7.54.1.539883-darwin64-539883.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64131/601402/curl-7.54.1.545369-darwin64-545369.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -628,7 +616,7 @@
|
|||
<key>hash</key>
|
||||
<string>cade3843dfd7985f008cc8161daaefb0</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/curl-7.54.1.180871811-linux-180871811.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/curl-7.54.1.180871811-linux-180871811.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -640,7 +628,7 @@
|
|||
<key>hash</key>
|
||||
<string>51d9ce98279709854b0be5d0f450ba63</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/curl-7.54.1.180841943-linux64-180841943.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/curl-7.54.1.180841943-linux64-180841943.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -650,11 +638,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ebd24261499e458da253d2bc1d95057a</string>
|
||||
<string>2796ae7b09e730a55ac03f74ed669520</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56361/526996/curl-7.54.1.539883-windows-539883.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64130/601396/curl-7.54.1.545369-windows-545369.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -664,16 +652,16 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>9eadfc1885c59ebc750f75adf4c20925</string>
|
||||
<string>a8f96e5cdb8128b23d49ff4c3f2233a4</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56360/526989/curl-7.54.1.539883-windows64-539883.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64129/601382/curl-7.54.1.545369-windows64-545369.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>7.54.1.539883</string>
|
||||
<string>7.54.1.545369</string>
|
||||
</map>
|
||||
<key>db</key>
|
||||
<map>
|
||||
|
|
@ -726,7 +714,7 @@
|
|||
<key>hash</key>
|
||||
<string>9591dcb7efce2a770d77e907705e1492</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/dbus_glib-0.76-linux-180871236.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dbus_glib-0.76-linux-180871236.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -738,7 +726,7 @@
|
|||
<key>hash</key>
|
||||
<string>5a685a65a7066937ef580dcd5a90f9dc</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/dbus_glib-0.76-linux64-180841549.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dbus_glib-0.76-linux64-180841549.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -768,7 +756,7 @@
|
|||
<key>hash</key>
|
||||
<string>2d59bb6f4bd38a18d9250ff010a13b59</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/dictionaries-2.46203-common-46203.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dictionaries-2.46203-common-46203.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>common</string>
|
||||
|
|
@ -834,7 +822,7 @@
|
|||
<key>hash</key>
|
||||
<string>79e5ef408ea7ee43fef0f738688485c6</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/dullahan-1.8.0.202007201635_81.3.10_gb223419_chromium-81.0.4044.138-linux64-202021435.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dullahan-1.8.0.202007201635_81.3.10_gb223419_chromium-81.0.4044.138-linux64-202021435.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -912,7 +900,7 @@
|
|||
<key>hash</key>
|
||||
<string>b20e813b55488e43df5c197f1efd165c</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/expat-2.1.1.180871203-linux-180871203.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/expat-2.1.1.180871203-linux-180871203.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -924,7 +912,7 @@
|
|||
<key>hash</key>
|
||||
<string>bbcfe77b920fb7f00c7f2a494ffc6c43</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/expat-2.1.1.180841547-linux64-180841547.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/expat-2.1.1.180841547-linux64-180841547.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -976,11 +964,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>371025cc40f8cbb70f0bb88f79a906a6</string>
|
||||
<string>6963689ea12131c0ff80b07a08cbe667</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.02-darwin-201981618.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.03-darwin-202272255.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -990,11 +978,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>65f37bfb75cb13161c99a450be13fb96</string>
|
||||
<string>f40d80d4432c8a25bfd6a6c3aa4eeaf0</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.02-linux64-201992052.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.03-linux64-202241538.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1052,7 +1040,7 @@
|
|||
<key>hash</key>
|
||||
<string>f7a2a70417ab9d2f999f80604cb4fa48</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/fontconfig-2.11.0-linux-180871443.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/fontconfig-2.11.0-linux-180871443.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1064,7 +1052,7 @@
|
|||
<key>hash</key>
|
||||
<string>5818ed2d9b29bad00878f3e26b09b7f9</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/fontconfig-2.11.0-linux64-180841833.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/fontconfig-2.11.0-linux64-180841833.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1118,7 +1106,7 @@
|
|||
<key>hash</key>
|
||||
<string>ced1bc8b28a2e87093b364c2b6d8cb9c</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/freetype-2.4.4.180871412-linux-180871412.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.4.4.180871412-linux-180871412.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1130,7 +1118,7 @@
|
|||
<key>hash</key>
|
||||
<string>0dab99c682433145aa8f5e26d8940afd</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/freetype-2.4.4.180841832-linux64-180841832.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.4.4.180841832-linux64-180841832.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1142,7 +1130,7 @@
|
|||
<key>hash</key>
|
||||
<string>0dbb1a9d15bb134096476d657f86ce41</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/freetype-2.3.9.202022048-windows-202022048.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.3.9.202022048-windows-202022048.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -1154,7 +1142,7 @@
|
|||
<key>hash</key>
|
||||
<string>c000d0c98bded51c7bc7447dc7934e6c</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/freetype-2.3.9.202022049-windows64-202022049.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.3.9.202022049-windows64-202022049.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -1196,7 +1184,7 @@
|
|||
<key>hash</key>
|
||||
<string>da432b959ccd920adca1030ad7f1b6cf</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glext-68-linux-180871251.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glext-68-linux-180871251.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1208,7 +1196,7 @@
|
|||
<key>hash</key>
|
||||
<string>12b2d643a013be8297bbbe37743abe94</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glext-68-linux64-180841554.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glext-68-linux64-180841554.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1292,7 +1280,7 @@
|
|||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1304,7 +1292,7 @@
|
|||
<key>hash</key>
|
||||
<string>94fc457c46e1fb94b31251bd4747d10f</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -1318,7 +1306,7 @@
|
|||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.180990859-linux-180990859.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.180990859-linux-180990859.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1330,7 +1318,7 @@
|
|||
<key>hash</key>
|
||||
<string>acc1181cd31ef32c3724eda84ae4b580</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.180990827-linux64-180990827.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.180990827-linux64-180990827.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1344,7 +1332,7 @@
|
|||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.vs2017-1906061512-windows-vs2017-1906061512.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.vs2017-1906061512-windows-vs2017-1906061512.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -1356,7 +1344,7 @@
|
|||
<key>hash</key>
|
||||
<string>e906cf08bfbfbd9d4fc78557e021e7d0</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/glod-1.0pre3.vs2017-1906061512-windows64-vs2017-1906061512.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/glod-1.0pre3.vs2017-1906061512-windows64-vs2017-1906061512.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -1410,7 +1398,7 @@
|
|||
<key>hash</key>
|
||||
<string>ca43974302dc3e2019b0838c2c53b8b5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/google_breakpad-1413.202021450-linux64-202021450.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/google_breakpad-1413.202021450-linux64-202021450.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1486,9 +1474,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>36e2e30610eb131e3522ef84cc67405d</string>
|
||||
<string>f9831360ced94943ab9dfb3fbf5256d3</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56330/526832/googlemock-1.7.0.539876-darwin64-539876.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64101/601290/googlemock-1.7.0.545363-darwin64-545363.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -1500,7 +1488,7 @@
|
|||
<key>hash</key>
|
||||
<string>5bc5ddeb97b8498d5141e27092161323</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/googlemock-1.7.0.180871704-linux-180871704.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/googlemock-1.7.0.180871704-linux-180871704.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1522,9 +1510,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>38a2c655876044efe536a8e685e74a2a</string>
|
||||
<string>8149e46b4f7abb3ac284415cfe1366e1</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56336/526861/googlemock-1.7.0.539876-windows-539876.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64102/601296/googlemock-1.7.0.545363-windows-545363.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -1534,16 +1522,16 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ff4fa1fd7a1ed9ffa477c4574ffc16af</string>
|
||||
<string>f3851eba809ead2810d702041569d36d</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56334/526845/googlemock-1.7.0.539876-windows64-539876.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64100/601284/googlemock-1.7.0.545363-windows64-545363.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>1.7.0.539876</string>
|
||||
<string>1.7.0.545363</string>
|
||||
</map>
|
||||
<key>gstreamer</key>
|
||||
<map>
|
||||
|
|
@ -1564,7 +1552,7 @@
|
|||
<key>hash</key>
|
||||
<string>904540d91ea7d577c7bcbb679621f013</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/gstreamer-0.10.6.180871246-linux-180871246.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/gstreamer-0.10.6.180871246-linux-180871246.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1576,7 +1564,7 @@
|
|||
<key>hash</key>
|
||||
<string>86a358f1b5a2c2baf68444b2bfc5bb32</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/gstreamer-0.10.6.180841551-linux64-180841551.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/gstreamer-0.10.6.180841551-linux64-180841551.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1604,7 +1592,7 @@
|
|||
<key>hash</key>
|
||||
<string>fb047d496c32cc3b9f99793ee6ebb1e3</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.1-linux-180871647.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/gtk_atk_pango_glib-2.1-linux-180871647.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1616,7 +1604,7 @@
|
|||
<key>hash</key>
|
||||
<string>d918d894430c1d1d869b9f2e06570c65</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/gtk_atk_pango_glib-2.1-linux64-180841902.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/gtk_atk_pango_glib-2.1-linux64-180841902.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1760,7 +1748,7 @@
|
|||
<key>hash</key>
|
||||
<string>a7039c9a9c4461c5f85542f068dc09e5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/jpeglib-8c.180871203-linux-180871203.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/jpeglib-8c.180871203-linux-180871203.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1772,7 +1760,7 @@
|
|||
<key>hash</key>
|
||||
<string>324bb9deb00d256a12f8cbf686f413f0</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/jpeglib-8c.180841548-linux64-180841548.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/jpeglib-8c.180841548-linux64-180841548.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1850,7 +1838,7 @@
|
|||
<key>hash</key>
|
||||
<string>da45220ec6fcf945f6ca1f11bc7606cf</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/jsoncpp-0.5.0.180872045-linux-180872045.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/jsoncpp-0.5.0.180872045-linux-180872045.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1862,7 +1850,7 @@
|
|||
<key>hash</key>
|
||||
<string>352ab340f2091c93eb313cf80ac0c8cc</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/jsoncpp-0.5.0.202052209-linux64-202052209.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/jsoncpp-0.5.0.202052209-linux64-202052209.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1909,26 +1897,14 @@
|
|||
<string>kdu</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>darwin</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>f697ff80c30d3f387b2f5b42e53e574e</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-8.0.5-darwin-202202246.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
</map>
|
||||
<key>darwin64</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>f697ff80c30d3f387b2f5b42e53e574e</string>
|
||||
<string>c1be3db6fda7054f615621e9a8139c51</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-8.0.5-darwin-202202246.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-8.0.6-darwin-202302239.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -1938,9 +1914,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>2d2790facd7c568e4f7c08c030987df2</string>
|
||||
<string>eba43dcfeb1c14aab25f588d9f625839</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-8.0.5-linux64-202021615.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-8.0.6-linux64-202302217.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1950,9 +1926,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>995f807a91bd251408ad0f18c13bbcf4</string>
|
||||
<string>f5c682b490672aadf97ec9b938b351a9</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-8.0.5-windows-202060400.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-8.0.6-windows-202302209.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -1962,9 +1938,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>995f807a91bd251408ad0f18c13bbcf4</string>
|
||||
<string>f5c682b490672aadf97ec9b938b351a9</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-8.0.5-windows-202060400.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-8.0.6-windows-202302209.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -2018,7 +1994,7 @@
|
|||
<key>hash</key>
|
||||
<string>77996d95cf2f072f4f277a2aaff20456</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libhunspell-1.3.2.180871248-linux-180871248.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libhunspell-1.3.2.180871248-linux-180871248.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2030,7 +2006,7 @@
|
|||
<key>hash</key>
|
||||
<string>6555f040c686d8c1dec8e6264c2d3672</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libhunspell-1.3.2.180841552-linux64-180841552.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libhunspell-1.3.2.180841552-linux64-180841552.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2174,7 +2150,7 @@
|
|||
<key>hash</key>
|
||||
<string>31754947447ec98374b3bf92e29cf68a</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libpng-1.6.8.180871343-linux-180871343.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libpng-1.6.8.180871343-linux-180871343.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2186,7 +2162,7 @@
|
|||
<key>hash</key>
|
||||
<string>83ae55031f81dace9dcf688cc5510010</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libpng-1.6.8.180841558-linux64-180841558.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libpng-1.6.8.180841558-linux64-180841558.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2240,7 +2216,7 @@
|
|||
<key>hash</key>
|
||||
<string>1b1d83df165c947bea5c60c460277f93</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libuuid-1.6.2-linux-180871203.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libuuid-1.6.2-linux-180871203.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2252,7 +2228,7 @@
|
|||
<key>hash</key>
|
||||
<string>f3cc32c84b99f1277370ce88a0faf40e</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libuuid-1.6.2-linux64-180841554.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libuuid-1.6.2-linux64-180841554.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2306,7 +2282,7 @@
|
|||
<key>hash</key>
|
||||
<string>b4e676d3d583264f006432510727aa05</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libxml2-2.9.4.180871340-linux-180871340.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libxml2-2.9.4.180871340-linux-180871340.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2318,7 +2294,7 @@
|
|||
<key>hash</key>
|
||||
<string>0bc56fa68f59537486c75b04646d65a9</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/libxml2-2.9.4.180841555-linux64-180841555.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/libxml2-2.9.4.180841555-linux64-180841555.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2399,16 +2375,16 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>3d2122c39abb8bc6f46c0ddc0838ab2a</string>
|
||||
<string>8501cbaa7e0f254614694da784a9c61c</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/58176/544556/llca-202004280657.541101-common-541101.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64944/606925/llca-202008010216.546021-common-546021.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>common</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>202004280657.541101</string>
|
||||
<string>202008010216.546021</string>
|
||||
</map>
|
||||
<key>llphysicsextensions_source</key>
|
||||
<map>
|
||||
|
|
@ -2624,9 +2600,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>95b69e37b9b4435698682f4ff702cca5</string>
|
||||
<string>937ce1a2158c0cfff37f5989f5b24aba</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54855/510169/nghttp2-1.25.0.538985-darwin64-538985.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64066/601156/nghttp2-1.40.0.545354-darwin64-545354.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -2638,7 +2614,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>24c50d563fe8ff10ca819088ffbef7a6</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/nghttp2-1.25.0.180871240-linux-180871240.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/nghttp2-1.25.0.180871240-linux-180871240.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2650,7 +2626,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>b460d5bac2d20b38cb73b54d0ab1b6e3</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/nghttp2-1.25.0.180841549-linux64-180841549.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/nghttp2-1.25.0.180841549-linux64-180841549.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2660,9 +2636,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>246dd8445be87c698aa7fa318bcdd7e5</string>
|
||||
<string>138b881bdf37dff4e626e022a50dd11f</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55035/511985/nghttp2-1.25.0.538985-windows-538985.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64069/601181/nghttp2-1.40.0.545354-windows-545354.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -2672,9 +2648,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>f2fd2dbe8704ec63ab433cbe8e03f7c4</string>
|
||||
<string>c23c6480c7cbea60a2bd26e257adc0a7</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55031/511978/nghttp2-1.25.0.538985-windows64-538985.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64068/601177/nghttp2-1.40.0.545354-windows64-545354.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -2683,7 +2659,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>source_type</key>
|
||||
<string>hg</string>
|
||||
<key>version</key>
|
||||
<string>1.25.0.538985</string>
|
||||
<string>1.40.0.545354</string>
|
||||
</map>
|
||||
<key>nvapi</key>
|
||||
<map>
|
||||
|
|
@ -2772,7 +2748,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>0d3db04b9b10085b100b345c68381cb0</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.3.3-1.3.6.183570207-linux-183570207.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ogg_vorbis-1.3.3-1.3.6.183570207-linux-183570207.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2782,9 +2758,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>5e23c312d37367bb2d23dad395891b00</string>
|
||||
<string>03b7df0406d7588c4fb49c2ddf0d8264</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.3.3-1.3.6.183570202-linux64-183570202.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/ogg_vorbis-1.3.3-1.3.6.202241500-linux64-202241500.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2838,7 +2814,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>246ed298944fd5200e4cac3703d6e075</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150124-linux-183150124.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/open_libndofdev-0.9.183150124-linux-183150124.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2850,7 +2826,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>db8a7126178e7230fd6917a28cd67bd7</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150121-linux64-183150121.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/open_libndofdev-0.9.183150121-linux64-183150121.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2882,7 +2858,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openal-1.12.854-1.1.0.180871246-linux-180871246.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openal-1.12.854-1.1.0.180871246-linux-180871246.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2894,7 +2870,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>4f36ae378593240701fd4453bd6074c8</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openal-1.12.854-1.1.0.180841552-linux64-180841552.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openal-1.12.854-1.1.0.180841552-linux64-180841552.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2950,7 +2926,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>4e278d789c5d6e448d1e39211d19bf41</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openjpeg-1.4.201505181816-r27-darwin-201505181816-r27.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openjpeg-1.4.201505181816-r27-darwin-201505181816-r27.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -2974,7 +2950,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>4a5591349005afac44a688e99517a9f3</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openjpeg-1.5.1.180991818-linux-180991818.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openjpeg-1.5.1.180991818-linux-180991818.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2986,7 +2962,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>addb209bb56a8f16602a7222f119191d</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openjpeg-1.5.1.180991822-linux64-180991822.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openjpeg-1.5.1.180991822-linux64-180991822.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2998,7 +2974,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>b20c18f66ae63c9d3b1970af8866aeb9</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openjpeg-1.4.202102107-windows-202102107.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openjpeg-1.4.202102107-windows-202102107.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -3010,7 +2986,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>6f1e1d8796301c4e5737cb0db0f696d2</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openjpeg-1.4.202102110-windows64-202102110.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openjpeg-1.4.202102110-windows64-202102110.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -3064,7 +3040,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>343f6ace63617546704c4aad9b432312</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openssl-1.0.2l.180871731-linux-180871731.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openssl-1.0.2l.180871731-linux-180871731.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3076,7 +3052,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>7920fce93d9addf63a420d86f91c5749</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/openssl-1.0.2l.180841936-linux64-180841936.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/openssl-1.0.2l.180841936-linux64-180841936.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3154,7 +3130,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>cf1c53b27e5889c7c5963ed06ab23cb2</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/pcre-8.35.180871234-linux-180871234.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/pcre-8.35.180871234-linux-180871234.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3166,7 +3142,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>742a145c1518b9dc195ae0862828e6ae</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/pcre-8.35.202021522-linux64-202021522.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/pcre-8.35.202021522-linux64-202021522.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3244,7 +3220,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>6e7b0961d6489a1b3c3090eccfd6e80e</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3256,7 +3232,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>6e7b0961d6489a1b3c3090eccfd6e80e</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/slvoice-3.2.0002.10426.298329-linux-20160717.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3364,7 +3340,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>6573a190dbdef9b23235beb9b1219bef</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/uriparser-0.8.0.1-linux-180871244.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/uriparser-0.8.0.1-linux-180871244.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3376,7 +3352,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>df570f2b9c0087438604a8ba4dc37a85</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/uriparser-0.8.0.1-linux64-180841550.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/uriparser-0.8.0.1-linux64-180841550.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3442,7 +3418,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>b7167025f54c044abee21b48476ad4f2</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/viewer_manager-1.0.180871935-linux-180871935.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/viewer_manager-1.0.180871935-linux-180871935.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3454,7 +3430,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>129b80dd47b53bfa02fc21ab1eb1901c</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/viewer_manager-1.0.180861311-linux64-180861311.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/viewer_manager-1.0.180861311-linux64-180861311.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3510,7 +3486,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>9f9582031af3b78d6153ec296d6dde9f</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/vlc_bin-2.2.3-linux-201607071822-r16.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/vlc_bin-2.2.3-linux-201607071822-r16.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3522,7 +3498,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>5eace400c487011a678493fc520be24d</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/vlc_bin-2.2.3-linux-x64-201610182130-r16.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/vlc_bin-2.2.3-linux-x64-201610182130-r16.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3600,7 +3576,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>0f318372198fb34b3a59b4aa03c40ac7</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/xmlrpc_epi-0.54.1.180871731-linux-180871731.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/xmlrpc_epi-0.54.1.180871731-linux-180871731.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3612,7 +3588,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>f810193590cae9b35a1c77b6c72bfb01</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/xmlrpc_epi-0.54.1.180841935-linux64-180841935.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/xmlrpc_epi-0.54.1.180841935-linux64-180841935.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -3692,7 +3668,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/zlib-1.2.8.180871259-linux-180871259.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/zlib-1.2.8.180871259-linux-180871259.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -3704,7 +3680,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>hash</key>
|
||||
<string>15a645809cb2f14074f22e7848bb42cf</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/zlib-1.2.8.180841547-linux64-180841547.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/zlib-1.2.8.180841547-linux64-180841547.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
|
|||
|
|
@ -1094,6 +1094,8 @@ Nicky Dasmijn
|
|||
SL-10293
|
||||
SL-11061
|
||||
SL-11072
|
||||
SL-13141
|
||||
SL-13642
|
||||
Nicky Perian
|
||||
OPEN-1
|
||||
STORM-1087
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ elseif(DARWIN)
|
|||
libndofdev.dylib
|
||||
libnghttp2.dylib
|
||||
libnghttp2.14.dylib
|
||||
libnghttp2.14.14.0.dylib
|
||||
libnghttp2.14.19.0.dylib
|
||||
libgrowl.dylib
|
||||
libgrowl++.dylib
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,15 +17,10 @@ else (USESYSTEMLIBS)
|
|||
if (LINUX)
|
||||
use_prebuilt_binary(SDL)
|
||||
set (SDL_FOUND TRUE)
|
||||
set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux)
|
||||
set (SDL_LIBRARY SDL directfb fusion direct X11)
|
||||
endif (LINUX)
|
||||
endif (USESYSTEMLIBS)
|
||||
|
||||
if (SDL_FOUND)
|
||||
include_directories(${SDL_INCLUDE_DIR})
|
||||
endif (SDL_FOUND)
|
||||
|
||||
set(LLWINDOW_INCLUDE_DIRS
|
||||
${GLEXT_INCLUDE_DIR}
|
||||
${LIBS_OPEN_DIR}/llwindow
|
||||
|
|
|
|||
|
|
@ -250,6 +250,64 @@ void _ll_apr_assert_status(apr_status_t status, const char* file, int line)
|
|||
llassert(! _ll_apr_warn_status(status, file, line));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//
|
||||
// Scope based pool access
|
||||
//
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
class LLAPRFilePoolScope
|
||||
{
|
||||
public:
|
||||
LLAPRFilePoolScope() : pPool(NULL), mInitialized(false) {}
|
||||
LLAPRFilePoolScope(LLVolatileAPRPool* poolp) : mInitialized(false)
|
||||
{
|
||||
setFilePool(poolp);
|
||||
}
|
||||
~LLAPRFilePoolScope()
|
||||
{
|
||||
reset();
|
||||
}
|
||||
apr_pool_t* getVolatileAPRPool(LLVolatileAPRPool* poolp = NULL)
|
||||
{
|
||||
if (!pPool)
|
||||
{
|
||||
setFilePool(poolp);
|
||||
}
|
||||
if (mInitialized)
|
||||
{
|
||||
// We need one clear per one get
|
||||
// At the moment no need to support multiple calls
|
||||
LL_ERRS() << "LLAPRFilePoolScope is not supposed to be initialized twice" << LL_ENDL;
|
||||
}
|
||||
mInitialized = true;
|
||||
return pPool->getVolatileAPRPool();
|
||||
}
|
||||
void reset()
|
||||
{
|
||||
if (mInitialized)
|
||||
{
|
||||
pPool->clearVolatileAPRPool();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void setFilePool(LLVolatileAPRPool* poolp = NULL)
|
||||
{
|
||||
if (poolp)
|
||||
{
|
||||
pPool = poolp;
|
||||
}
|
||||
else
|
||||
{
|
||||
pPool = LLAPRFile::sAPRFilePoolp;
|
||||
}
|
||||
}
|
||||
|
||||
LLVolatileAPRPool *pPool;
|
||||
bool mInitialized;
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//
|
||||
// LLAPRFile functions
|
||||
|
|
@ -297,9 +355,10 @@ apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, LLV
|
|||
//check if already open some file
|
||||
llassert_always(!mFile) ;
|
||||
llassert_always(!mCurrentFilePoolp) ;
|
||||
|
||||
apr_pool_t* apr_pool = pool ? pool->getVolatileAPRPool() : NULL ;
|
||||
s = apr_file_open(&mFile, filename.c_str(), flags, APR_OS_DEFAULT, getAPRFilePool(apr_pool));
|
||||
|
||||
mCurrentFilePoolp = pool ? pool : sAPRFilePoolp;
|
||||
apr_pool_t* apr_pool = mCurrentFilePoolp->getVolatileAPRPool(); //paired with clear in close()
|
||||
s = apr_file_open(&mFile, filename.c_str(), flags, APR_OS_DEFAULT, apr_pool);
|
||||
|
||||
if (s != APR_SUCCESS || !mFile)
|
||||
{
|
||||
|
|
@ -324,14 +383,10 @@ apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, LLV
|
|||
*sizep = file_size;
|
||||
}
|
||||
|
||||
if(!mCurrentFilePoolp)
|
||||
if (!mFile)
|
||||
{
|
||||
mCurrentFilePoolp = pool ;
|
||||
|
||||
if(!mFile)
|
||||
{
|
||||
close() ;
|
||||
}
|
||||
// It will clean pool
|
||||
close() ;
|
||||
}
|
||||
|
||||
return s ;
|
||||
|
|
@ -358,17 +413,6 @@ apr_status_t LLAPRFile::open(const std::string& filename, apr_int32_t flags, BOO
|
|||
return s;
|
||||
}
|
||||
|
||||
apr_pool_t* LLAPRFile::getAPRFilePool(apr_pool_t* pool)
|
||||
{
|
||||
if(!pool)
|
||||
{
|
||||
mCurrentFilePoolp = sAPRFilePoolp ;
|
||||
return mCurrentFilePoolp->getVolatileAPRPool() ;
|
||||
}
|
||||
|
||||
return pool ;
|
||||
}
|
||||
|
||||
// File I/O
|
||||
S32 LLAPRFile::read(void *buf, S32 nbytes)
|
||||
{
|
||||
|
|
@ -425,7 +469,7 @@ S32 LLAPRFile::seek(apr_seek_where_t where, S32 offset)
|
|||
//
|
||||
|
||||
//static
|
||||
apr_status_t LLAPRFile::close(apr_file_t* file_handle, LLVolatileAPRPool* pool)
|
||||
apr_status_t LLAPRFile::close(apr_file_t* file_handle)
|
||||
{
|
||||
apr_status_t ret = APR_SUCCESS ;
|
||||
if(file_handle)
|
||||
|
|
@ -434,29 +478,23 @@ apr_status_t LLAPRFile::close(apr_file_t* file_handle, LLVolatileAPRPool* pool)
|
|||
file_handle = NULL ;
|
||||
}
|
||||
|
||||
if(pool)
|
||||
{
|
||||
pool->clearVolatileAPRPool() ;
|
||||
}
|
||||
|
||||
return ret ;
|
||||
}
|
||||
|
||||
//static
|
||||
apr_file_t* LLAPRFile::open(const std::string& filename, LLVolatileAPRPool* pool, apr_int32_t flags)
|
||||
apr_file_t* LLAPRFile::open(const std::string& filename, apr_pool_t* apr_pool, apr_int32_t flags)
|
||||
{
|
||||
apr_status_t s;
|
||||
apr_file_t* file_handle ;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
|
||||
s = apr_file_open(&file_handle, filename.c_str(), flags, APR_OS_DEFAULT, pool->getVolatileAPRPool());
|
||||
s = apr_file_open(&file_handle, filename.c_str(), flags, APR_OS_DEFAULT, apr_pool);
|
||||
if (s != APR_SUCCESS || !file_handle)
|
||||
{
|
||||
ll_apr_warn_status(s);
|
||||
LL_WARNS("APR") << " Attempting to open filename: " << filename << LL_ENDL;
|
||||
file_handle = NULL ;
|
||||
close(file_handle, pool) ;
|
||||
close(file_handle) ;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -499,8 +537,9 @@ S32 LLAPRFile::seek(apr_file_t* file_handle, apr_seek_where_t where, S32 offset)
|
|||
S32 LLAPRFile::readEx(const std::string& filename, void *buf, S32 offset, S32 nbytes, LLVolatileAPRPool* pool)
|
||||
{
|
||||
//*****************************************
|
||||
apr_file_t* file_handle = open(filename, pool, APR_READ|APR_BINARY);
|
||||
//*****************************************
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
apr_file_t* file_handle = open(filename, scope.getVolatileAPRPool(), APR_READ|APR_BINARY);
|
||||
//*****************************************
|
||||
if (!file_handle)
|
||||
{
|
||||
return 0;
|
||||
|
|
@ -533,7 +572,7 @@ S32 LLAPRFile::readEx(const std::string& filename, void *buf, S32 offset, S32 nb
|
|||
}
|
||||
|
||||
//*****************************************
|
||||
close(file_handle, pool) ;
|
||||
close(file_handle) ;
|
||||
//*****************************************
|
||||
return (S32)bytes_read;
|
||||
}
|
||||
|
|
@ -547,9 +586,10 @@ S32 LLAPRFile::writeEx(const std::string& filename, void *buf, S32 offset, S32 n
|
|||
flags |= APR_APPEND;
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
|
||||
//*****************************************
|
||||
apr_file_t* file_handle = open(filename, pool, flags);
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
apr_file_t* file_handle = open(filename, scope.getVolatileAPRPool(), flags);
|
||||
//*****************************************
|
||||
if (!file_handle)
|
||||
{
|
||||
|
|
@ -583,7 +623,7 @@ S32 LLAPRFile::writeEx(const std::string& filename, void *buf, S32 offset, S32 n
|
|||
}
|
||||
|
||||
//*****************************************
|
||||
LLAPRFile::close(file_handle, pool);
|
||||
LLAPRFile::close(file_handle);
|
||||
//*****************************************
|
||||
|
||||
return (S32)bytes_written;
|
||||
|
|
@ -594,9 +634,8 @@ bool LLAPRFile::remove(const std::string& filename, LLVolatileAPRPool* pool)
|
|||
{
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_file_remove(filename.c_str(), pool->getVolatileAPRPool());
|
||||
pool->clearVolatileAPRPool() ;
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_file_remove(filename.c_str(), scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS)
|
||||
{
|
||||
|
|
@ -612,9 +651,8 @@ bool LLAPRFile::rename(const std::string& filename, const std::string& newname,
|
|||
{
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_file_rename(filename.c_str(), newname.c_str(), pool->getVolatileAPRPool());
|
||||
pool->clearVolatileAPRPool() ;
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_file_rename(filename.c_str(), newname.c_str(), scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS)
|
||||
{
|
||||
|
|
@ -631,18 +669,16 @@ bool LLAPRFile::isExist(const std::string& filename, LLVolatileAPRPool* pool, ap
|
|||
apr_file_t* apr_file;
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_file_open(&apr_file, filename.c_str(), flags, APR_OS_DEFAULT, pool->getVolatileAPRPool());
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_file_open(&apr_file, filename.c_str(), flags, APR_OS_DEFAULT, scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS || !apr_file)
|
||||
{
|
||||
pool->clearVolatileAPRPool() ;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
apr_file_close(apr_file) ;
|
||||
pool->clearVolatileAPRPool() ;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -653,14 +689,12 @@ S32 LLAPRFile::size(const std::string& filename, LLVolatileAPRPool* pool)
|
|||
apr_file_t* apr_file;
|
||||
apr_finfo_t info;
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_file_open(&apr_file, filename.c_str(), APR_READ, APR_OS_DEFAULT, pool->getVolatileAPRPool());
|
||||
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_file_open(&apr_file, filename.c_str(), APR_READ, APR_OS_DEFAULT, scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS || !apr_file)
|
||||
{
|
||||
pool->clearVolatileAPRPool() ;
|
||||
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
|
|
@ -668,7 +702,6 @@ S32 LLAPRFile::size(const std::string& filename, LLVolatileAPRPool* pool)
|
|||
apr_status_t s = apr_file_info_get(&info, APR_FINFO_SIZE, apr_file);
|
||||
|
||||
apr_file_close(apr_file) ;
|
||||
pool->clearVolatileAPRPool() ;
|
||||
|
||||
if (s == APR_SUCCESS)
|
||||
{
|
||||
|
|
@ -686,9 +719,8 @@ bool LLAPRFile::makeDir(const std::string& dirname, LLVolatileAPRPool* pool)
|
|||
{
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_dir_make(dirname.c_str(), APR_FPROT_OS_DEFAULT, pool->getVolatileAPRPool());
|
||||
pool->clearVolatileAPRPool() ;
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_dir_make(dirname.c_str(), APR_FPROT_OS_DEFAULT, scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS)
|
||||
{
|
||||
|
|
@ -704,9 +736,8 @@ bool LLAPRFile::removeDir(const std::string& dirname, LLVolatileAPRPool* pool)
|
|||
{
|
||||
apr_status_t s;
|
||||
|
||||
pool = pool ? pool : LLAPRFile::sAPRFilePoolp ;
|
||||
s = apr_file_remove(dirname.c_str(), pool->getVolatileAPRPool());
|
||||
pool->clearVolatileAPRPool() ;
|
||||
LLAPRFilePoolScope scope(pool);
|
||||
s = apr_file_remove(dirname.c_str(), scope.getVolatileAPRPool());
|
||||
|
||||
if (s != APR_SUCCESS)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -176,9 +176,6 @@ public:
|
|||
apr_file_t* getFileHandle() {return mFile;}
|
||||
|
||||
void flush(); // <FS:ND/> Forceful file flushing
|
||||
|
||||
private:
|
||||
apr_pool_t* getAPRFilePool(apr_pool_t* pool) ;
|
||||
|
||||
//
|
||||
//*******************************************************************************************************************************
|
||||
|
|
@ -188,8 +185,8 @@ public:
|
|||
static LLVolatileAPRPool *sAPRFilePoolp ; //a global apr_pool for APRFile, which is used only when local pool does not exist.
|
||||
|
||||
private:
|
||||
static apr_file_t* open(const std::string& filename, LLVolatileAPRPool* pool, apr_int32_t flags);
|
||||
static apr_status_t close(apr_file_t* file, LLVolatileAPRPool* pool) ;
|
||||
static apr_file_t* open(const std::string& filename, apr_pool_t* apr_pool, apr_int32_t flags);
|
||||
static apr_status_t close(apr_file_t* file) ;
|
||||
static S32 seek(apr_file_t* file, apr_seek_where_t where, S32 offset);
|
||||
public:
|
||||
// returns false if failure:
|
||||
|
|
|
|||
|
|
@ -506,7 +506,7 @@ struct Data
|
|||
const char* name;
|
||||
} typedata[] =
|
||||
{
|
||||
#define def(type) { LLSD::type, #type + 4 }
|
||||
#define def(type) { LLSD::type, &#type[4] }
|
||||
def(TypeUndefined),
|
||||
def(TypeBoolean),
|
||||
def(TypeInteger),
|
||||
|
|
|
|||
|
|
@ -558,10 +558,10 @@ LLSD shallow(LLSD value, LLSD filter=LLSD()) { return llsd_shallow(value, filter
|
|||
|
||||
} // namespace llsd
|
||||
|
||||
namespace boost{
|
||||
// Specialization for generating a hash value from an LLSD block.
|
||||
// Specialization for generating a hash value from an LLSD block.
|
||||
namespace boost
|
||||
{
|
||||
template <>
|
||||
/* struct boost:hash<LLSD> */
|
||||
struct hash<LLSD>
|
||||
{
|
||||
typedef LLSD argument_type;
|
||||
|
|
|
|||
|
|
@ -36,8 +36,10 @@
|
|||
#include <set>
|
||||
#include <typeinfo>
|
||||
|
||||
#include <string.h> // <FS:ND/> For strcmp
|
||||
|
||||
#ifdef LL_LINUX
|
||||
// <ND> For strcmp
|
||||
#include <string.h>
|
||||
#endif
|
||||
// Use to compare the first element only of a pair
|
||||
// e.g. typedef std::set<std::pair<int, Data*>, compare_pair<int, Data*> > some_pair_set_t;
|
||||
template <typename T1, typename T2>
|
||||
|
|
|
|||
|
|
@ -304,14 +304,13 @@ template<typename ElementT>
|
|||
bool LLThreadSafeQueue<ElementT>::isClosed()
|
||||
{
|
||||
lock_t lock(mLock);
|
||||
return mClosed;
|
||||
return mClosed && mStorage.size() == 0;
|
||||
}
|
||||
|
||||
template<typename ElementT>
|
||||
LLThreadSafeQueue<ElementT>::operator bool()
|
||||
{
|
||||
lock_t lock(mLock);
|
||||
return ! mClosed;
|
||||
return ! isClosed();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
// #include "include_kdu_xxxx.h"
|
||||
// // kdu_xxxx #undef'ed by include_kdu_xxxx.h
|
||||
|
||||
#if LL_DARWIN
|
||||
#if __clang__
|
||||
// don't *really* want to rebuild KDU so turn off specific warnings for this header
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wself-assign-field"
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
// Class to test
|
||||
#include "llimagej2ckdu.h"
|
||||
|
||||
#if LL_DARWIN
|
||||
#if __clang__
|
||||
// For this source, it's true that private fields in llkdumem.h are unused.
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wunused-private-field"
|
||||
|
|
|
|||
|
|
@ -426,11 +426,11 @@ void LLAssetStorage::_cleanupRequests(BOOL all, S32 error)
|
|||
LLAssetRequest* tmp = *curiter;
|
||||
if (tmp->mUpCallback)
|
||||
{
|
||||
tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error, LL_EXSTAT_NONE);
|
||||
tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error, LLExtStat::NONE);
|
||||
}
|
||||
if (tmp->mDownCallback)
|
||||
{
|
||||
tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error, LL_EXSTAT_NONE);
|
||||
tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error, LLExtStat::NONE);
|
||||
}
|
||||
if (tmp->mInfoCallback)
|
||||
{
|
||||
|
|
@ -465,7 +465,7 @@ bool LLAssetStorage::findInStaticVFSAndInvokeCallback(const LLUUID& uuid, LLAsse
|
|||
// we've already got the file
|
||||
if (callback)
|
||||
{
|
||||
callback(mStaticVFS, uuid, type, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
|
||||
callback(mStaticVFS, uuid, type, user_data, LL_ERR_NOERR, LLExtStat::VFS_CACHED);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -506,7 +506,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid,
|
|||
if (callback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_FAILED, LL_EXSTAT_NONE);
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_FAILED, LLExtStat::NONE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -517,7 +517,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid,
|
|||
if (callback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LLExtStat::NULL_UUID);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -540,7 +540,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid,
|
|||
// unless there's a weird error
|
||||
if (callback)
|
||||
{
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
|
||||
callback(mVFS, uuid, type, user_data, LL_ERR_NOERR, LLExtStat::VFS_CACHED);
|
||||
}
|
||||
|
||||
LL_DEBUGS("AssetStorage") << "ASSET_TRACE asset " << uuid << " found in VFS" << LL_ENDL;
|
||||
|
|
@ -694,7 +694,7 @@ void LLAssetStorage::downloadCompleteCallback(
|
|||
}
|
||||
}
|
||||
|
||||
removeAndCallbackPendingDownloads(file_id, file_type, callback_id, callback_type, ext_status, result);
|
||||
removeAndCallbackPendingDownloads(file_id, file_type, callback_id, callback_type, result, ext_status);
|
||||
}
|
||||
|
||||
void LLAssetStorage::getEstateAsset(
|
||||
|
|
@ -719,7 +719,7 @@ void LLAssetStorage::getEstateAsset(
|
|||
if (callback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LLExtStat::NULL_UUID);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -741,7 +741,7 @@ void LLAssetStorage::getEstateAsset(
|
|||
// unless there's a weird error
|
||||
if (callback)
|
||||
{
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LLExtStat::VFS_CACHED);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -792,7 +792,7 @@ void LLAssetStorage::getEstateAsset(
|
|||
if (callback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LLExtStat::NO_UPSTREAM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -885,7 +885,7 @@ void LLAssetStorage::getInvItemAsset(
|
|||
// unless there's a weird error
|
||||
if (callback)
|
||||
{
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LLExtStat::VFS_CACHED);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -936,7 +936,7 @@ void LLAssetStorage::getInvItemAsset(
|
|||
if (callback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
|
||||
callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LLExtStat::NO_UPSTREAM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1034,7 +1034,7 @@ void LLAssetStorage::processUploadComplete(LLMessageSystem *msg, void **user_dat
|
|||
msg->getBOOLFast(_PREHASH_AssetBlock, _PREHASH_Success, success);
|
||||
|
||||
asset_type = (LLAssetType::EType)asset_type_s8;
|
||||
this_ptr->_callUploadCallbacks(uuid, asset_type, success, LL_EXSTAT_NONE);
|
||||
this_ptr->_callUploadCallbacks(uuid, asset_type, success, LLExtStat::NONE);
|
||||
}
|
||||
|
||||
void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status )
|
||||
|
|
@ -1288,12 +1288,12 @@ bool LLAssetStorage::deletePendingRequestImpl(LLAssetStorage::request_list_t* re
|
|||
// Run callbacks.
|
||||
if (req->mUpCallback)
|
||||
{
|
||||
req->mUpCallback(req->getUUID(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
|
||||
req->mUpCallback(req->getUUID(), req->mUserData, error, LLExtStat::REQUEST_DROPPED);
|
||||
}
|
||||
if (req->mDownCallback)
|
||||
{
|
||||
add(sFailedDownloadCount, 1);
|
||||
req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
|
||||
req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error, LLExtStat::REQUEST_DROPPED);
|
||||
}
|
||||
if (req->mInfoCallback)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -272,6 +272,17 @@ void LLCoprocedureManager::close(const std::string &pool)
|
|||
}
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Explicitly create the VAAssetStorage pool
|
||||
void LLCoprocedureManager::createPool(const std::string& poolName)
|
||||
{
|
||||
poolMap_t::iterator it = mPoolMap.find(poolName);
|
||||
if (it == mPoolMap.end())
|
||||
{
|
||||
initializePool(poolName);
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel> Explicitly create the VAAssetStorage pool
|
||||
|
||||
//=========================================================================
|
||||
LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):
|
||||
mPoolName(poolName),
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ public:
|
|||
|
||||
void close();
|
||||
void close(const std::string &pool);
|
||||
|
||||
void createPool(const std::string& poolName); // <FS:Ansariel> Explicitly create the VAAssetStorage pool
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
|||
|
|
@ -28,47 +28,36 @@
|
|||
#ifndef LL_LLEXTENDEDSTATUS_H
|
||||
#define LL_LLEXTENDEDSTATUS_H
|
||||
|
||||
// <FS:ND> Very tentative fix for clang error constant-conversion
|
||||
// This happens due to LLExtStat being a S32 but LL_EXSTAT_RES_RESULT/LL_EXSTAT_VFS_RESULT shifting into the sign bit.
|
||||
// To not screw everything up right now LLExtStatus only gets to be a U32 when LINUX and CLANG
|
||||
|
||||
//typedef S32 LLExtStat;
|
||||
#if defined(LL_LINUX) && defined(__clang__)
|
||||
typedef U32 LLExtStat;
|
||||
#else
|
||||
typedef S32 LLExtStat;
|
||||
#endif
|
||||
|
||||
// Status provider groups - Top bits indicate which status type it is
|
||||
// Zero is common status code (next section)
|
||||
const LLExtStat LL_EXSTAT_CURL_RESULT = 1L<<30; // serviced by curl - use 1L if we really implement the below
|
||||
const LLExtStat LL_EXSTAT_RES_RESULT = 2L<<30; // serviced by resident copy
|
||||
const LLExtStat LL_EXSTAT_VFS_RESULT = 3L<<30; // serviced by vfs
|
||||
enum class LLExtStat: uint32_t
|
||||
{
|
||||
// Status provider groups - Top bits indicate which status type it is
|
||||
// Zero is common status code (next section)
|
||||
CURL_RESULT = 1UL<<30, // serviced by curl - use 1L if we really implement the below
|
||||
RES_RESULT = 2UL<<30, // serviced by resident copy
|
||||
VFS_RESULT = 3UL<<30, // serviced by vfs
|
||||
|
||||
|
||||
// Common Status Codes
|
||||
//
|
||||
const LLExtStat LL_EXSTAT_NONE = 0x00000; // No extra info here - sorry!
|
||||
const LLExtStat LL_EXSTAT_NULL_UUID = 0x10001; // null asset ID
|
||||
const LLExtStat LL_EXSTAT_NO_UPSTREAM = 0x10002; // attempt to upload without a valid upstream method/provider
|
||||
const LLExtStat LL_EXSTAT_REQUEST_DROPPED = 0x10003; // request was dropped unserviced
|
||||
const LLExtStat LL_EXSTAT_NONEXISTENT_FILE = 0x10004; // trying to upload a file that doesn't exist
|
||||
const LLExtStat LL_EXSTAT_BLOCKED_FILE = 0x10005; // trying to upload a file that we can't open
|
||||
// Common Status Codes
|
||||
//
|
||||
NONE = 0x00000, // No extra info here - sorry!
|
||||
NULL_UUID = 0x10001, // null asset ID
|
||||
NO_UPSTREAM = 0x10002, // attempt to upload without a valid upstream method/provider
|
||||
REQUEST_DROPPED = 0x10003, // request was dropped unserviced
|
||||
NONEXISTENT_FILE= 0x10004, // trying to upload a file that doesn't exist
|
||||
BLOCKED_FILE = 0x10005, // trying to upload a file that we can't open
|
||||
|
||||
// curl status codes:
|
||||
//
|
||||
// Mask off CURL_RESULT for original result and
|
||||
// see: libraries/include/curl/curl.h
|
||||
|
||||
// curl status codes:
|
||||
//
|
||||
// Mask off LL_EXSTAT_CURL_RESULT for original result and
|
||||
// see: libraries/include/curl/curl.h
|
||||
// Memory-Resident status codes:
|
||||
// None at present
|
||||
|
||||
|
||||
// Memory-Resident status codes:
|
||||
// None at present
|
||||
|
||||
|
||||
// VFS status codes:
|
||||
const LLExtStat LL_EXSTAT_VFS_CACHED = LL_EXSTAT_VFS_RESULT | 0x0001;
|
||||
const LLExtStat LL_EXSTAT_VFS_CORRUPT = LL_EXSTAT_VFS_RESULT | 0x0002;
|
||||
// VFS status codes:
|
||||
VFS_CACHED = VFS_RESULT | 0x0001,
|
||||
VFS_CORRUPT = VFS_RESULT | 0x0002,
|
||||
};
|
||||
|
||||
|
||||
#endif // LL_LLEXTENDEDSTATUS_H
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ void LLTransferTargetVFile::completionCallback(const LLTSCode status)
|
|||
mParams.getAssetID(),
|
||||
mParams.getAssetType(),
|
||||
mParams.mRequestDatap,
|
||||
LL_EXSTAT_NONE);
|
||||
LLExtStat::NONE);
|
||||
}
|
||||
delete mParams.mRequestDatap;
|
||||
mParams.mRequestDatap = NULL;
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ S32 LLXfer::processEOF()
|
|||
|
||||
if (mCallback)
|
||||
{
|
||||
mCallback(mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
|
||||
mCallback(mCallbackDataHandle,mCallbackResult, LLExtStat::NONE);
|
||||
}
|
||||
|
||||
return(retval);
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ S32 LLXfer_Mem::processEOF()
|
|||
|
||||
if (mCallback)
|
||||
{
|
||||
mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
|
||||
mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult, LLExtStat::NONE);
|
||||
}
|
||||
|
||||
return(retval);
|
||||
|
|
|
|||
|
|
@ -371,6 +371,9 @@ void LLPluginClassMedia::setSizeInternal(void)
|
|||
#if LL_DARWIN
|
||||
if (!gHiDPISupport)
|
||||
#endif
|
||||
//<FS:TS> FIRE-30019: This clamp doesn't make sense on Linux, which can have
|
||||
// huge windows without needing to turn on HiDPI support
|
||||
#if !LL_LINUX
|
||||
{
|
||||
if (mRequestedMediaWidth > 2048)
|
||||
mRequestedMediaWidth = 2048;
|
||||
|
|
@ -378,6 +381,7 @@ void LLPluginClassMedia::setSizeInternal(void)
|
|||
if (mRequestedMediaHeight > 2048)
|
||||
mRequestedMediaHeight = 2048;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void LLPluginClassMedia::setAutoScale(bool auto_scale)
|
||||
|
|
|
|||
|
|
@ -585,10 +585,10 @@ bool LLGLManager::initGL()
|
|||
|
||||
// Extract video card strings and convert to upper case to
|
||||
// work around driver-to-driver variation in capitalization.
|
||||
mGLVendor = std::string((const char *)glGetString(GL_VENDOR));
|
||||
mGLVendor = ll_safe_string((const char *)glGetString(GL_VENDOR));
|
||||
LLStringUtil::toUpper(mGLVendor);
|
||||
|
||||
mGLRenderer = std::string((const char *)glGetString(GL_RENDERER));
|
||||
mGLRenderer = ll_safe_string((const char *)glGetString(GL_RENDERER));
|
||||
LLStringUtil::toUpper(mGLRenderer);
|
||||
|
||||
parse_gl_version( &mDriverVersionMajor,
|
||||
|
|
@ -892,9 +892,9 @@ void LLGLManager::getGLInfo(LLSD& info)
|
|||
}
|
||||
else
|
||||
{
|
||||
info["GLInfo"]["GLVendor"] = std::string((const char *)glGetString(GL_VENDOR));
|
||||
info["GLInfo"]["GLRenderer"] = std::string((const char *)glGetString(GL_RENDERER));
|
||||
info["GLInfo"]["GLVersion"] = std::string((const char *)glGetString(GL_VERSION));
|
||||
info["GLInfo"]["GLVendor"] = ll_safe_string((const char *)glGetString(GL_VENDOR));
|
||||
info["GLInfo"]["GLRenderer"] = ll_safe_string((const char *)glGetString(GL_RENDERER));
|
||||
info["GLInfo"]["GLVersion"] = ll_safe_string((const char *)glGetString(GL_VERSION));
|
||||
}
|
||||
|
||||
#if !LL_MESA_HEADLESS
|
||||
|
|
@ -944,9 +944,9 @@ void LLGLManager::printGLInfoString()
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS("RenderInit") << "GL_VENDOR: " << ((const char *)glGetString(GL_VENDOR)) << LL_ENDL;
|
||||
LL_INFOS("RenderInit") << "GL_RENDERER: " << ((const char *)glGetString(GL_RENDERER)) << LL_ENDL;
|
||||
LL_INFOS("RenderInit") << "GL_VERSION: " << ((const char *)glGetString(GL_VERSION)) << LL_ENDL;
|
||||
LL_INFOS("RenderInit") << "GL_VENDOR: " << ll_safe_string((const char *)glGetString(GL_VENDOR)) << LL_ENDL;
|
||||
LL_INFOS("RenderInit") << "GL_RENDERER: " << ll_safe_string((const char *)glGetString(GL_RENDERER)) << LL_ENDL;
|
||||
LL_INFOS("RenderInit") << "GL_VERSION: " << ll_safe_string((const char *)glGetString(GL_VERSION)) << LL_ENDL;
|
||||
}
|
||||
|
||||
#if !LL_MESA_HEADLESS
|
||||
|
|
|
|||
|
|
@ -666,6 +666,37 @@ void LLAccordionCtrl::onScrollPosChangeCallback(S32, LLScrollbar*)
|
|||
{
|
||||
updateLayout(getRect().getWidth(),getRect().getHeight());
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLAccordionCtrl::onChildGotFocus(const LLUICtrl *cntrl)
|
||||
{
|
||||
if (mScrollbar && mScrollbar->getVisible())
|
||||
{
|
||||
// same as scrollToShowRect
|
||||
LLRect rect;
|
||||
cntrl->localRectToOtherView(cntrl->getLocalRect(), &rect, this);
|
||||
|
||||
// Translate to parent coordinatess to check if we are in visible rectangle
|
||||
rect.translate(getRect().mLeft, getRect().mBottom);
|
||||
|
||||
if (!getRect().contains(rect))
|
||||
{
|
||||
// for accordition's scroll, height is in pixels
|
||||
// Back to local coords and calculate position for scroller
|
||||
S32 bottom = mScrollbar->getDocPos() - rect.mBottom + getRect().mBottom;
|
||||
S32 top = mScrollbar->getDocPos() - rect.mTop + getRect().mTop;
|
||||
|
||||
S32 scroll_pos = llclamp(mScrollbar->getDocPos(),
|
||||
bottom, // min vertical scroll
|
||||
top); // max vertical scroll
|
||||
|
||||
mScrollbar->setDocPos(scroll_pos);
|
||||
}
|
||||
}
|
||||
|
||||
LLUICtrl::onChildGotFocus(cntrl);
|
||||
}
|
||||
|
||||
void LLAccordionCtrl::onOpen (const LLSD& key)
|
||||
{
|
||||
for(size_t i=0;i<mAccordionTabs.size();++i)
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ public:
|
|||
void draw();
|
||||
|
||||
void onScrollPosChangeCallback(S32, LLScrollbar*);
|
||||
virtual void onChildGotFocus(const LLUICtrl * cntrl);
|
||||
|
||||
void onOpen (const LLSD& key);
|
||||
S32 notifyParent(const LLSD& info);
|
||||
|
|
|
|||
|
|
@ -452,6 +452,35 @@ void LLAccordionCtrlTab::onVisibilityChange(BOOL new_visibility)
|
|||
notifyParent(LLSD().with("child_visibility_change", new_visibility));
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLAccordionCtrlTab::onChildGotFocus(const LLUICtrl *cntrl)
|
||||
{
|
||||
if (mScrollbar && mScrollbar->getVisible())
|
||||
{
|
||||
LLRect rect;
|
||||
cntrl->localRectToOtherView(cntrl->getLocalRect(), &rect, this);
|
||||
|
||||
// Translate to parent coordinatess to check if we are in visible rectangle
|
||||
rect.translate(getRect().mLeft, getRect().mBottom);
|
||||
|
||||
if (!getRect().contains(rect))
|
||||
{
|
||||
// for accordition's scroll, height is in pixels
|
||||
// Back to local coords and calculate position for scroller
|
||||
S32 bottom = mScrollbar->getDocPos() - rect.mBottom + getRect().mBottom;
|
||||
S32 top = mScrollbar->getDocPos() - rect.mTop + getRect().mTop;
|
||||
|
||||
S32 scroll_pos = llclamp(mScrollbar->getDocPos(),
|
||||
bottom, // min vertical scroll
|
||||
top); // max vertical scroll
|
||||
|
||||
mScrollbar->setDocPos(scroll_pos);
|
||||
}
|
||||
}
|
||||
|
||||
LLUICtrl::onChildGotFocus(cntrl);
|
||||
}
|
||||
|
||||
BOOL LLAccordionCtrlTab::handleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if(mCollapsible && mHeaderVisible && mCanOpenClose)
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ public:
|
|||
* Raises notifyParent event with "child_visibility_change" = new_visibility
|
||||
*/
|
||||
void onVisibilityChange(BOOL new_visibility);
|
||||
virtual void onChildGotFocus(const LLUICtrl * cntrl);
|
||||
|
||||
// Changes expand/collapse state and triggers expand/collapse callbacks
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
|
|
|
|||
|
|
@ -3382,25 +3382,27 @@ BOOL LLMenuBarGL::handleAcceleratorKey(KEY key, MASK mask)
|
|||
mAltKeyTrigger = FALSE;
|
||||
}
|
||||
|
||||
if(!result
|
||||
&& (key == KEY_F10 && mask == MASK_CONTROL)
|
||||
&& !gKeyboard->getKeyRepeated(key)
|
||||
&& isInVisibleChain())
|
||||
{
|
||||
if (getHighlightedItem())
|
||||
{
|
||||
clearHoverItem();
|
||||
LLMenuGL::setKeyboardMode(FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// close menus originating from other menu bars when first opening menu via keyboard
|
||||
LLMenuGL::sMenuContainer->hideMenus();
|
||||
highlightNextItem(NULL);
|
||||
LLMenuGL::setKeyboardMode(TRUE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
// <FS:Ansariel> FIRE-30003: (CTRL-)F10 can't be used as gesture trigger
|
||||
//if(!result
|
||||
// && (key == KEY_F10 && mask == MASK_CONTROL)
|
||||
// && !gKeyboard->getKeyRepeated(key)
|
||||
// && isInVisibleChain())
|
||||
//{
|
||||
// if (getHighlightedItem())
|
||||
// {
|
||||
// clearHoverItem();
|
||||
// LLMenuGL::setKeyboardMode(FALSE);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // close menus originating from other menu bars when first opening menu via keyboard
|
||||
// LLMenuGL::sMenuContainer->hideMenus();
|
||||
// highlightNextItem(NULL);
|
||||
// LLMenuGL::setKeyboardMode(TRUE);
|
||||
// }
|
||||
// return TRUE;
|
||||
//}
|
||||
// </FS:Ansariel>
|
||||
|
||||
if (result && !getHighlightedItem() && LLMenuGL::sMenuContainer->hasVisibleMenu())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,14 +29,7 @@
|
|||
#include "llrngwriter.h"
|
||||
#include "lluicolor.h"
|
||||
|
||||
#if LL_DARWIN
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdelete-incomplete"
|
||||
#include "lluictrlfactory.h"
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
#include "lluictrlfactory.h"
|
||||
#endif
|
||||
|
||||
#include "boost/bind.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -709,6 +709,7 @@ void LLUICtrl::setFocus(BOOL b)
|
|||
if (!hasFocus())
|
||||
{
|
||||
gFocusMgr.setKeyboardFocus( this );
|
||||
onChildGotFocus(this);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "llheteromap.h"
|
||||
|
||||
class LLView;
|
||||
void deleteView(LLView*); // Inside LLView.cpp, avoid having to potentially delete an incomplete type here.
|
||||
|
||||
// lookup widget constructor funcs by widget name
|
||||
template <typename DERIVED_TYPE>
|
||||
|
|
@ -160,8 +161,8 @@ public:
|
|||
LLXMLNodePtr root_node;
|
||||
|
||||
if (!LLUICtrlFactory::getLayeredXMLNode(filename, root_node))
|
||||
{
|
||||
LL_WARNS() << "Couldn't parse XUI file: " << instance().getCurFileName() << LL_ENDL;
|
||||
{
|
||||
LL_WARNS() << "Couldn't parse XUI from path: " << instance().getCurFileName() << ", from filename: " << filename << LL_ENDL;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
|
@ -174,14 +175,7 @@ public:
|
|||
{
|
||||
LL_WARNS() << "Widget in " << filename << " was of type " << typeid(view).name() << " instead of expected type " << typeid(T).name() << LL_ENDL;
|
||||
|
||||
#if __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdelete-incomplete"
|
||||
delete view;
|
||||
#pragma clang diagnostic pop
|
||||
#else
|
||||
delete view;
|
||||
#endif
|
||||
deleteView(view);
|
||||
view = NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,11 @@ template class LLView* LLView::getChild<class LLView>(
|
|||
|
||||
static LLDefaultChildRegistry::Register<LLView> r("view");
|
||||
|
||||
void deleteView(LLView *aView)
|
||||
{
|
||||
delete aView;
|
||||
}
|
||||
|
||||
namespace LLInitParam
|
||||
{
|
||||
void TypeValues<LLView::EOrientation>::declareValues()
|
||||
|
|
@ -685,6 +690,16 @@ void LLView::onVisibilityChange ( BOOL new_visibility )
|
|||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLView::onChildGotFocus(const LLUICtrl * cntrl)
|
||||
{
|
||||
LLView* parent_view = getParent();
|
||||
if (parent_view)
|
||||
{
|
||||
parent_view->onChildGotFocus(cntrl);
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLView::translate(S32 x, S32 y)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -307,6 +307,7 @@ public:
|
|||
virtual BOOL setLabelArg( const std::string& key, const LLStringExplicit& text );
|
||||
|
||||
virtual void onVisibilityChange ( BOOL new_visibility );
|
||||
virtual void onChildGotFocus(const LLUICtrl * cntrl);
|
||||
|
||||
void pushVisible(BOOL visible) { mLastVisible = mVisible; setVisible(visible); }
|
||||
void popVisible() { setVisible(mLastVisible); }
|
||||
|
|
|
|||
|
|
@ -717,6 +717,7 @@ LLWindowWin32::~LLWindowWin32()
|
|||
|
||||
void LLWindowWin32::show()
|
||||
{
|
||||
LL_DEBUGS("Window") << "Setting window to show" << LL_ENDL;
|
||||
ShowWindow(mWindowHandle, SW_SHOW);
|
||||
SetForegroundWindow(mWindowHandle);
|
||||
SetFocus(mWindowHandle);
|
||||
|
|
@ -1129,6 +1130,12 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
|
|||
mPostQuit = FALSE;
|
||||
|
||||
// create window
|
||||
LL_DEBUGS("Window") << "Creating window with X: " << window_rect.left
|
||||
<< " Y: " << window_rect.top
|
||||
<< " Width: " << (window_rect.right - window_rect.left)
|
||||
<< " Height: " << (window_rect.bottom - window_rect.top)
|
||||
<< " Fullscreen: " << mFullscreen
|
||||
<< LL_ENDL;
|
||||
DestroyWindow(mWindowHandle);
|
||||
mWindowHandle = CreateWindowEx(dw_ex_style,
|
||||
mWindowClassName,
|
||||
|
|
@ -1960,6 +1967,8 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
LLWindowWin32 *window_imp = (LLWindowWin32 *)GetWindowLongPtr( h_wnd, GWLP_USERDATA );
|
||||
|
||||
bool debug_window_proc = gDebugWindowProc || debugLoggingEnabled("Window");
|
||||
|
||||
|
||||
if (NULL != window_imp)
|
||||
{
|
||||
|
|
@ -2002,9 +2011,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
case WM_DEVICECHANGE:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_DEVICECHANGE");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << " WM_DEVICECHANGE: wParam=" << w_param
|
||||
LL_INFOS("Window") << " WM_DEVICECHANGE: wParam=" << w_param
|
||||
<< "; lParam=" << l_param << LL_ENDL;
|
||||
}
|
||||
if (w_param == DBT_DEVNODES_CHANGED || w_param == DBT_DEVICEARRIVAL)
|
||||
|
|
@ -2060,7 +2069,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
BOOL activating = (BOOL) w_param;
|
||||
BOOL minimized = window_imp->getMinimized();
|
||||
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "WINDOWPROC ActivateApp "
|
||||
<< " activating " << S32(activating)
|
||||
|
|
@ -2111,7 +2120,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
// JC - I'm not sure why, but if we don't report that we handled the
|
||||
// WM_ACTIVATE message, the WM_ACTIVATEAPP messages don't work
|
||||
// properly when we run fullscreen.
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "WINDOWPROC Activate "
|
||||
<< " activating " << S32(activating)
|
||||
|
|
@ -2183,7 +2192,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KEYDOWN");
|
||||
{
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "Debug WindowProc WM_KEYDOWN "
|
||||
<< " key " << S32(w_param)
|
||||
|
|
@ -2209,7 +2218,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_KEYUP");
|
||||
LL_RECORD_BLOCK_TIME(FTM_KEYHANDLER);
|
||||
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "Debug WindowProc WM_KEYUP "
|
||||
<< " key " << S32(w_param)
|
||||
|
|
@ -2225,9 +2234,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
}
|
||||
case WM_IME_SETCONTEXT:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_IME_SETCONTEXT");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << "WM_IME_SETCONTEXT" << LL_ENDL;
|
||||
LL_INFOS("Window") << "WM_IME_SETCONTEXT" << LL_ENDL;
|
||||
}
|
||||
if (LLWinImm::isAvailable() && window_imp->mPreeditor)
|
||||
{
|
||||
|
|
@ -2238,7 +2247,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
case WM_IME_STARTCOMPOSITION:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_IME_STARTCOMPOSITION");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << "WM_IME_STARTCOMPOSITION" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2251,7 +2260,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
case WM_IME_ENDCOMPOSITION:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_IME_ENDCOMPOSITION");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << "WM_IME_ENDCOMPOSITION" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2263,7 +2272,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
case WM_IME_COMPOSITION:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_IME_COMPOSITION");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << "WM_IME_COMPOSITION" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2276,7 +2285,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
case WM_IME_REQUEST:
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_IME_REQUEST");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS() << "WM_IME_REQUEST" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2307,7 +2316,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
// characters. We just need to take care of surrogate pairs sent as two WM_CHAR's
|
||||
// by ourselves. It is not that tough. -- Alissa Sabre @ SL
|
||||
window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_CHAR");
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "Debug WindowProc WM_CHAR "
|
||||
<< " key " << S32(w_param)
|
||||
|
|
@ -2750,7 +2759,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
S32 width = S32( LOWORD(l_param) );
|
||||
S32 height = S32( HIWORD(l_param) );
|
||||
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
BOOL maximized = ( w_param == SIZE_MAXIMIZED );
|
||||
BOOL restored = ( w_param == SIZE_RESTORED );
|
||||
|
|
@ -2825,7 +2834,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
}
|
||||
|
||||
case WM_SETFOCUS:
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "WINDOWPROC SetFocus" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2849,7 +2858,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
return 0;
|
||||
|
||||
case WM_KILLFOCUS:
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "WINDOWPROC KillFocus" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2881,7 +2890,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
break;
|
||||
default:
|
||||
{
|
||||
if (gDebugWindowProc)
|
||||
if (debug_window_proc)
|
||||
{
|
||||
LL_INFOS("Window") << "Unhandled windows message code: " << U32(u_msg) << LL_ENDL;
|
||||
}
|
||||
|
|
@ -2891,7 +2900,11 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
|
||||
window_imp->mCallbacks->handlePauseWatchdog(window_imp);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// (NULL == window_imp)
|
||||
LL_DEBUGS("Window") << "No window implementation to handle message with, message code: " << U32(u_msg) << LL_ENDL;
|
||||
}
|
||||
|
||||
// pass unhandled messages down to Windows
|
||||
return DefWindowProc(h_wnd, u_msg, w_param, l_param);
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ set(llxml_HEADER_FILES
|
|||
CMakeLists.txt
|
||||
|
||||
llcontrol.h
|
||||
llcontrolgroupreader.h
|
||||
llxmlnode.h
|
||||
llxmlparser.h
|
||||
llxmltree.h
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
#include "llrefcount.h"
|
||||
#include "llinstancetracker.h"
|
||||
|
||||
#include "llcontrolgroupreader.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
// *NOTE: boost::visit_each<> generates warning 4675 on .net 2003
|
||||
|
|
|
|||
|
|
@ -1,81 +0,0 @@
|
|||
/**
|
||||
* @file llcontrolgroupreader.h
|
||||
* @brief Interface providing readonly access to LLControlGroup (intended for unit testing)
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLCONTROLGROUPREADER_H
|
||||
#define LL_LLCONTROLGROUPREADER_H
|
||||
|
||||
#include "stdtypes.h"
|
||||
#include <string>
|
||||
|
||||
#include "v3math.h"
|
||||
#include "v3dmath.h"
|
||||
#include "v3color.h"
|
||||
#include "v4color.h"
|
||||
#include "llrect.h"
|
||||
|
||||
class LLControlGroupReader
|
||||
{
|
||||
public:
|
||||
LLControlGroupReader() {}
|
||||
virtual ~LLControlGroupReader() {}
|
||||
|
||||
virtual std::string getString(const std::string& name) { return ""; }
|
||||
virtual LLWString getWString(const std::string& name) { return LLWString(); }
|
||||
virtual std::string getText(const std::string& name) { return ""; }
|
||||
virtual LLVector3 getVector3(const std::string& name) { return LLVector3(); }
|
||||
virtual LLVector3d getVector3d(const std::string& name) { return LLVector3d(); }
|
||||
virtual LLRect getRect(const std::string& name) { return LLRect(); }
|
||||
virtual BOOL getBOOL(const std::string& name) { return FALSE; }
|
||||
virtual S32 getS32(const std::string& name) { return 0; }
|
||||
virtual F32 getF32(const std::string& name) {return 0.0f; }
|
||||
virtual U32 getU32(const std::string& name) {return 0; }
|
||||
virtual LLSD getLLSD(const std::string& name) { return LLSD(); }
|
||||
|
||||
virtual LLColor4 getColor(const std::string& name) { return LLColor4(); }
|
||||
virtual LLColor4 getColor4(const std::string& name) { return LLColor4(); }
|
||||
virtual LLColor3 getColor3(const std::string& name) { return LLColor3(); }
|
||||
|
||||
virtual void setBOOL(const std::string& name, BOOL val) {}
|
||||
virtual void setS32(const std::string& name, S32 val) {}
|
||||
virtual void setF32(const std::string& name, F32 val) {}
|
||||
virtual void setU32(const std::string& name, U32 val) {}
|
||||
virtual void setString(const std::string& name, const std::string& val) {}
|
||||
virtual void setVector3(const std::string& name, const LLVector3 &val) {}
|
||||
virtual void setVector3d(const std::string& name, const LLVector3d &val) {}
|
||||
virtual void setQuaternion(const std::string& name, const LLQuaternion &val) {}
|
||||
virtual void setRect(const std::string& name, const LLRect &val) {}
|
||||
virtual void setColor4(const std::string& name, const LLColor4 &val) {}
|
||||
virtual void setLLSD(const std::string& name, const LLSD& val) {}
|
||||
};
|
||||
|
||||
#endif /* LL_LLCONTROLGROUPREADER_H */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -348,6 +348,7 @@ bool NACLAntiSpamRegistry::checkQueue(EAntispamQueue queue, const LLUUID& source
|
|||
{
|
||||
// skip all checks if we're we've been administratively turned off
|
||||
static LLCachedControl<bool> useAntiSpam(gSavedSettings, "UseAntiSpam");
|
||||
static LLCachedControl<bool> useAntiSpamMine(gSavedSettings, "FSUseAntiSpamMine");
|
||||
if (!useAntiSpam)
|
||||
{
|
||||
return false;
|
||||
|
|
@ -358,10 +359,13 @@ bool NACLAntiSpamRegistry::checkQueue(EAntispamQueue queue, const LLUUID& source
|
|||
return false;
|
||||
}
|
||||
|
||||
LLViewerObject* obj = gObjectList.findObject(source);
|
||||
if (obj && obj->permYouOwner())
|
||||
if (sourcetype == ANTISPAM_SOURCE_OBJECT)
|
||||
{
|
||||
return false;
|
||||
LLViewerObject* obj = gObjectList.findObject(source);
|
||||
if (obj && obj->permYouOwner() && !useAntiSpamMine)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
S32 result = 0;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.4.7
|
||||
6.4.8
|
||||
|
|
|
|||
|
|
@ -360,4 +360,4 @@
|
|||
<binding key="PAD_ENTER" mask="NONE" command="start_chat"/>
|
||||
<binding key="PAD_DIVIDE" mask="NONE" command="start_gesture"/>
|
||||
</edit_avatar>
|
||||
</keys>
|
||||
</keys>
|
||||
|
|
@ -18773,7 +18773,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<real>1</real>
|
||||
</map>
|
||||
<key>PoolSizeAssetStorage</key>
|
||||
<key>PoolSizeVAssetStorage</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Coroutine Pool size for AssetStorage requests</string>
|
||||
|
|
@ -21448,6 +21448,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSEnvironmentManualTransitionTime</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Timespan for blending between day/water/sky settings when manually changed. 0 is immediate.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>FSDisableAvatarTrackerAtCloseIn</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -1148,7 +1148,10 @@ LLView* FSChatHistory::getSeparator()
|
|||
LLView* FSChatHistory::getHeader(const LLChat& chat,const LLStyle::Params& style_params, const LLSD& args)
|
||||
{
|
||||
FSChatHistoryHeader* header = FSChatHistoryHeader::createInstance(mMessageHeaderFilename);
|
||||
header->setup(chat, style_params, args);
|
||||
if (header)
|
||||
{
|
||||
header->setup(chat, style_params, args);
|
||||
}
|
||||
return header;
|
||||
}
|
||||
|
||||
|
|
@ -1504,6 +1507,12 @@ void FSChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
view = getSeparator();
|
||||
p.top_pad = mTopSeparatorPad;
|
||||
p.bottom_pad = mBottomSeparatorPad;
|
||||
if (!view)
|
||||
{
|
||||
// Might be wiser to make this LL_ERRS, getSeparator() should work in case of correct instalation.
|
||||
LL_WARNS() << "Failed to create separator from " << mMessageSeparatorFilename << ": can't append to history" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1514,6 +1523,11 @@ void FSChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
else
|
||||
p.top_pad = mTopHeaderPad;
|
||||
p.bottom_pad = mBottomHeaderPad;
|
||||
if (!view)
|
||||
{
|
||||
LL_WARNS() << "Failed to create header from " << mMessageHeaderFilename << ": can't append to history" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
p.view = view;
|
||||
|
||||
|
|
|
|||
|
|
@ -839,7 +839,7 @@ void FSFloaterObjectExport::onLoadComplete(LLVFS* vfs, const LLUUID& asset_uuid,
|
|||
|
||||
if (status != 0)
|
||||
{
|
||||
LL_WARNS("export") << "Problem fetching asset: " << asset_uuid << " " << status << " " << ext_status << LL_ENDL;
|
||||
LL_WARNS("export") << "Problem fetching asset: " << asset_uuid << " " << status << " " << (U32)ext_status << LL_ENDL;
|
||||
delete data;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -377,6 +377,10 @@ void FSPanelLogin::addFavoritesToStartLocation()
|
|||
}
|
||||
break;
|
||||
}
|
||||
if (combo->getValue().asString().empty())
|
||||
{
|
||||
combo->selectFirstItem();
|
||||
}
|
||||
|
||||
LLFloaterPreference::updateShowFavoritesCheckbox(mShowFavorites);
|
||||
}
|
||||
|
|
@ -1133,13 +1137,13 @@ void FSPanelLogin::onSelectServer()
|
|||
{
|
||||
std::string location = location_combo->getValue().asString();
|
||||
LLSLURL slurl(location); // generata a slurl from the location combo contents
|
||||
if ( slurl.getType() == LLSLURL::LOCATION
|
||||
&& slurl.getGrid() != LLGridManager::getInstance()->getGrid()
|
||||
)
|
||||
if (location.empty()
|
||||
|| (slurl.getType() == LLSLURL::LOCATION
|
||||
&& slurl.getGrid() != LLGridManager::getInstance()->getGrid())
|
||||
)
|
||||
{
|
||||
// the grid specified by the location is not this one, so clear the combo
|
||||
location_combo->setCurrentByIndex(0); // last location on the new grid
|
||||
location_combo->setTextEntry(LLStringUtil::null);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -975,6 +975,17 @@ bool LLAgent::enableFlying()
|
|||
// </FS:Zi>
|
||||
}
|
||||
|
||||
// static
|
||||
bool LLAgent::isSitting()
|
||||
{
|
||||
BOOL sitting = FALSE;
|
||||
if (isAgentAvatarValid())
|
||||
{
|
||||
sitting = gAgentAvatarp->isSitting();
|
||||
}
|
||||
return sitting;
|
||||
}
|
||||
|
||||
void LLAgent::standUp()
|
||||
{
|
||||
// setControlFlags(AGENT_CONTROL_STAND_UP);
|
||||
|
|
|
|||
|
|
@ -363,6 +363,7 @@ public:
|
|||
static void toggleFlying();
|
||||
static bool enableFlying();
|
||||
BOOL canFly(); // Does this parcel allow you to fly?
|
||||
static bool isSitting();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Voice
|
||||
|
|
|
|||
|
|
@ -1335,7 +1335,10 @@ bool LLAppViewer::init()
|
|||
gSimLastTime = gRenderStartTime.getElapsedTimeF32();
|
||||
gSimFrames = (F32)gFrameCount;
|
||||
|
||||
LLViewerJoystick::getInstance()->init(false);
|
||||
if (gSavedSettings.getBOOL("JoystickEnabled"))
|
||||
{
|
||||
LLViewerJoystick::getInstance()->init(false);
|
||||
}
|
||||
|
||||
try {
|
||||
initializeSecHandler();
|
||||
|
|
@ -2200,8 +2203,11 @@ bool LLAppViewer::cleanup()
|
|||
delete gKeyboard;
|
||||
gKeyboard = NULL;
|
||||
|
||||
// Turn off Space Navigator and similar devices
|
||||
LLViewerJoystick::getInstance()->terminate();
|
||||
if (LLViewerJoystick::instanceExists())
|
||||
{
|
||||
// Turn off Space Navigator and similar devices
|
||||
LLViewerJoystick::getInstance()->terminate();
|
||||
}
|
||||
|
||||
LL_INFOS() << "Cleaning up Objects" << LL_ENDL;
|
||||
|
||||
|
|
@ -3792,8 +3798,8 @@ LLSD LLAppViewer::getViewerInfo() const
|
|||
info["MEMORY_MB"] = LLSD::Integer(gSysMemory.getPhysicalMemoryKB().valueInUnits<LLUnits::Megabytes>());
|
||||
// Moved hack adjustment to Windows memory size into llsys.cpp
|
||||
info["OS_VERSION"] = LLOSInfo::instance().getOSString();
|
||||
info["GRAPHICS_CARD_VENDOR"] = (const char*)(glGetString(GL_VENDOR));
|
||||
info["GRAPHICS_CARD"] = (const char*)(glGetString(GL_RENDERER));
|
||||
info["GRAPHICS_CARD_VENDOR"] = ll_safe_string((const char*)(glGetString(GL_VENDOR)));
|
||||
info["GRAPHICS_CARD"] = ll_safe_string((const char*)(glGetString(GL_RENDERER)));
|
||||
|
||||
#if LL_WINDOWS
|
||||
std::string drvinfo = gDXHardware.getDriverVersionWMI();
|
||||
|
|
@ -3815,7 +3821,7 @@ LLSD LLAppViewer::getViewerInfo() const
|
|||
// [RLVa:KB] - Checked: 2010-04-18 (RLVa-1.2.0)
|
||||
info["RLV_VERSION"] = (rlv_handler_t::isEnabled()) ? RlvStrings::getVersionAbout() : LLTrans::getString("RLVaStatusDisabled");
|
||||
// [/RLVa:KB]
|
||||
info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION));
|
||||
info["OPENGL_VERSION"] = ll_safe_string((const char*)(glGetString(GL_VERSION)));
|
||||
info["LIBCURL_VERSION"] = LLCore::LLHttp::getCURLVersion();
|
||||
// Settings
|
||||
|
||||
|
|
@ -4764,6 +4770,7 @@ static LLNotificationFunctorRegistration finish_quit_reg("ConfirmQuit", finish_q
|
|||
|
||||
void LLAppViewer::userQuit()
|
||||
{
|
||||
LL_INFOS() << "User requested quit" << LL_ENDL;
|
||||
if (gDisconnected
|
||||
|| !gViewerWindow
|
||||
|| !gViewerWindow->getProgressView()
|
||||
|
|
@ -5362,6 +5369,7 @@ void LLAppViewer::saveFinalSnapshot()
|
|||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
TRUE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
|
|
|
|||
|
|
@ -52,10 +52,12 @@ LLAppViewerListener::LLAppViewerListener(const LLAppViewerGetter& getter):
|
|||
|
||||
void LLAppViewerListener::requestQuit(const LLSD& event)
|
||||
{
|
||||
LL_INFOS() << "Listener requested quit" << LL_ENDL;
|
||||
mAppViewerGetter()->requestQuit();
|
||||
}
|
||||
|
||||
void LLAppViewerListener::forceQuit(const LLSD& event)
|
||||
{
|
||||
LL_INFOS() << "Listener requested force quit" << LL_ENDL;
|
||||
mAppViewerGetter()->forceQuit();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1138,7 +1138,8 @@ LLView* LLChatHistory::getSeparator()
|
|||
LLView* LLChatHistory::getHeader(const LLChat& chat,const LLStyle::Params& style_params, const LLSD& args)
|
||||
{
|
||||
LLChatHistoryHeader* header = LLChatHistoryHeader::createInstance(mMessageHeaderFilename);
|
||||
header->setup(chat, style_params, args);
|
||||
if (header)
|
||||
header->setup(chat, style_params, args);
|
||||
return header;
|
||||
}
|
||||
|
||||
|
|
@ -1364,6 +1365,12 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
view = getSeparator();
|
||||
p.top_pad = mTopSeparatorPad;
|
||||
p.bottom_pad = mBottomSeparatorPad;
|
||||
if (!view)
|
||||
{
|
||||
// Might be wiser to make this LL_ERRS, getSeparator() should work in case of correct instalation.
|
||||
LL_WARNS() << "Failed to create separator from " << mMessageSeparatorFilename << ": can't append to history" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1372,7 +1379,12 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
p.top_pad = 0;
|
||||
else
|
||||
p.top_pad = mTopHeaderPad;
|
||||
p.bottom_pad = mBottomHeaderPad;
|
||||
p.bottom_pad = mBottomHeaderPad;
|
||||
if (!view)
|
||||
{
|
||||
LL_WARNS() << "Failed to create header from " << mMessageHeaderFilename << ": can't append to history" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
p.view = view;
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ struct symbol_info
|
|||
|
||||
#define ent(SYMBOL) \
|
||||
{ \
|
||||
#SYMBOL + 28, /* skip "LLCommandHandler::UNTRUSTED_" prefix */ \
|
||||
&#SYMBOL[28], /* skip "LLCommandHandler::UNTRUSTED_" prefix */ \
|
||||
SYMBOL \
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -500,6 +500,10 @@ bool LLConversationLog::saveToFile(const std::string& filename)
|
|||
conv_it->getSessionID().toString(conversation_id);
|
||||
conv_it->getParticipantID().toString(participant_id);
|
||||
|
||||
bool is_adhoc = (conv_it->getConversationType() == LLIMModel::LLIMSession::ADHOC_SESSION);
|
||||
std::string conv_name = is_adhoc ? conv_it->getConversationName() : LLURI::escape(conv_it->getConversationName());
|
||||
std::string file_name = is_adhoc ? conv_it->getHistoryFileName() : LLURI::escape(conv_it->getHistoryFileName());
|
||||
|
||||
// examples of two file entries
|
||||
// [1343221177] 0 1 0 John Doe| 7e4ec5be-783f-49f5-71dz-16c58c64c145 4ec62a74-c246-0d25-2af6-846beac2aa55 john.doe|
|
||||
// [1343222639] 2 0 0 Ad-hoc Conference| c3g67c89-c479-4c97-b21d-32869bcfe8rc 68f1c33e-4135-3e3e-a897-8c9b23115c09 Ad-hoc Conference hash597394a0-9982-766d-27b8-c75560213b9a|
|
||||
|
|
@ -508,10 +512,10 @@ bool LLConversationLog::saveToFile(const std::string& filename)
|
|||
(S32)conv_it->getConversationType(),
|
||||
(S32)0,
|
||||
(S32)conv_it->hasOfflineMessages(),
|
||||
LLURI::escape(conv_it->getConversationName()).c_str(),
|
||||
conv_name.c_str(),
|
||||
participant_id.c_str(),
|
||||
conversation_id.c_str(),
|
||||
LLURI::escape(conv_it->getHistoryFileName()).c_str());
|
||||
file_name.c_str());
|
||||
}
|
||||
fclose(fp);
|
||||
return true;
|
||||
|
|
@ -567,14 +571,18 @@ bool LLConversationLog::loadFromFile(const std::string& filename)
|
|||
conv_id_buffer,
|
||||
history_file_name);
|
||||
|
||||
bool is_adhoc = ((SessionType)stype == LLIMModel::LLIMSession::ADHOC_SESSION);
|
||||
std::string conv_name = is_adhoc ? conv_name_buffer : LLURI::unescape(conv_name_buffer);
|
||||
std::string file_name = is_adhoc ? history_file_name : LLURI::unescape(history_file_name);
|
||||
|
||||
ConversationParams params;
|
||||
params.time(LLUnits::Seconds::fromValue(time))
|
||||
.conversation_type((SessionType)stype)
|
||||
.has_offline_ims(has_offline_ims)
|
||||
.conversation_name(LLURI::unescape(conv_name_buffer))
|
||||
.conversation_name(conv_name)
|
||||
.participant_id(LLUUID(part_id_buffer))
|
||||
.session_id(LLUUID(conv_id_buffer))
|
||||
.history_filename(LLURI::unescape(history_file_name));
|
||||
.history_filename(file_name);
|
||||
|
||||
LLConversation conversation(params);
|
||||
|
||||
|
|
|
|||
|
|
@ -1283,12 +1283,33 @@ void LLEnvironment::setEnvironment(EnvSelection_t env, const LLUUID &assetId, S3
|
|||
setEnvironment(env, assetId, LLSettingsDay::DEFAULT_DAYLENGTH, LLSettingsDay::DEFAULT_DAYOFFSET);
|
||||
}
|
||||
|
||||
|
||||
void LLEnvironment::setEnvironment(EnvSelection_t env,
|
||||
const LLUUID &assetId,
|
||||
LLSettingsDay::Seconds daylength,
|
||||
LLSettingsDay::Seconds dayoffset,
|
||||
S32 env_version)
|
||||
// <FS:Beq> FIRE-29926 - allow manually selected environments to have a user defined transition time.
|
||||
void LLEnvironment::setManualEnvironment(EnvSelection_t env, const LLUUID &assetId, S32 env_version)
|
||||
{
|
||||
LLSettingsBase::Seconds transitionTime(static_cast<F64>(gSavedSettings.getF32("FSEnvironmentManualTransitionTime")));
|
||||
setEnvironmentWithTransition(env, assetId, LLSettingsDay::DEFAULT_DAYLENGTH, LLSettingsDay::DEFAULT_DAYOFFSET, transitionTime);
|
||||
}
|
||||
void LLEnvironment::setEnvironmentWithTransition(
|
||||
EnvSelection_t env,
|
||||
const LLUUID &assetId,
|
||||
LLSettingsDay::Seconds daylength,
|
||||
LLSettingsDay::Seconds dayoffset,
|
||||
LLSettingsBase::Seconds transition,
|
||||
S32 env_version)
|
||||
{
|
||||
LLSettingsVOBase::getSettingsAsset(assetId,
|
||||
[this, env, daylength, dayoffset, transition, env_version](LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, LLExtStat)
|
||||
{
|
||||
onSetEnvAssetLoaded(env, asset_id, settings, daylength, dayoffset, transition, status, env_version);
|
||||
});
|
||||
}
|
||||
// </FS:Beq>
|
||||
void LLEnvironment::setEnvironment(
|
||||
EnvSelection_t env,
|
||||
const LLUUID &assetId,
|
||||
LLSettingsDay::Seconds daylength,
|
||||
LLSettingsDay::Seconds dayoffset,
|
||||
S32 env_version)
|
||||
{
|
||||
LLSettingsVOBase::getSettingsAsset(assetId,
|
||||
[this, env, daylength, dayoffset, env_version](LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, LLExtStat)
|
||||
|
|
|
|||
|
|
@ -145,6 +145,10 @@ public:
|
|||
void setEnvironment(EnvSelection_t env, const LLSettingsWater::ptr_t & fixed, S32 env_version = NO_VERSION) { setEnvironment(env, fixedEnvironment_t(LLSettingsSky::ptr_t(), fixed), env_version); }
|
||||
void setEnvironment(EnvSelection_t env, const LLSettingsSky::ptr_t & fixeds, const LLSettingsWater::ptr_t & fixedw, S32 env_version = NO_VERSION) { setEnvironment(env, fixedEnvironment_t(fixeds, fixedw), env_version); }
|
||||
void setEnvironment(EnvSelection_t env, const LLUUID &assetId, LLSettingsDay::Seconds daylength, LLSettingsDay::Seconds dayoffset, S32 env_version = NO_VERSION);
|
||||
// <FS:Beq> FIRE-29926 - Allow configurable transition times
|
||||
void setEnvironmentWithTransition(EnvSelection_t env, const LLUUID &assetId, LLSettingsDay::Seconds daylength, LLSettingsDay::Seconds dayoffset, LLSettingsBase::Seconds transition, S32 env_version = NO_VERSION);
|
||||
void setManualEnvironment(EnvSelection_t env, const LLUUID &assetId, S32 env_version = NO_VERSION);
|
||||
// </FS:Beq>
|
||||
void setEnvironment(EnvSelection_t env, const LLUUID &assetId, S32 env_version = NO_VERSION);
|
||||
|
||||
void setSharedEnvironment();
|
||||
|
|
|
|||
|
|
@ -1768,19 +1768,35 @@ void LLFavoritesOrderStorage::load()
|
|||
<< LL_ENDL;
|
||||
in_file.close();
|
||||
// <FS:Ansariel> FIRE-10122 - User@grid stored_favorites.xml
|
||||
//user_llsd = fav_llsd[gAgentUsername];
|
||||
user_llsd = fav_llsd[gAgentUsername + " @ " + LLGridManager::getInstance()->getGridLabel()];
|
||||
//if (fav_llsd.isMap() && fav_llsd.has(gAgentUsername))
|
||||
//{
|
||||
// user_llsd = fav_llsd[gAgentUsername];
|
||||
if (fav_llsd.isMap() && fav_llsd.has(gAgentUsername + " @ " + LLGridManager::getInstance()->getGridLabel()))
|
||||
{
|
||||
user_llsd = fav_llsd[gAgentUsername + " @ " + LLGridManager::getInstance()->getGridLabel()];
|
||||
// </FS:Ansariel>
|
||||
|
||||
S32 index = 0;
|
||||
for (LLSD::array_iterator iter = user_llsd.beginArray();
|
||||
S32 index = 0;
|
||||
bool needs_validation = gSavedPerAccountSettings.getBOOL("ShowFavoritesOnLogin");
|
||||
for (LLSD::array_iterator iter = user_llsd.beginArray();
|
||||
iter != user_llsd.endArray(); ++iter)
|
||||
{
|
||||
mSortIndexes.insert(std::make_pair(iter->get("id").asUUID(), index));
|
||||
index++;
|
||||
{
|
||||
// Validation
|
||||
LLUUID fv_id = iter->get("id").asUUID();
|
||||
if (needs_validation
|
||||
&& (fv_id.isNull()
|
||||
|| iter->get("asset_id").asUUID().isNull()
|
||||
|| iter->get("name").asString().empty()
|
||||
|| iter->get("slurl").asString().empty()))
|
||||
{
|
||||
mRecreateFavoriteStorage = true;
|
||||
}
|
||||
|
||||
mSortIndexes.insert(std::make_pair(fv_id, index));
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
LL_WARNS("FavoritesBar") << "unable to open favorites from '" << filename << "'" << LL_ENDL;
|
||||
|
|
@ -2035,6 +2051,8 @@ void LLFavoritesOrderStorage::rearrangeFavoriteLandmarks(const LLUUID& source_it
|
|||
|
||||
BOOL LLFavoritesOrderStorage::saveFavoritesRecord(bool pref_changed)
|
||||
{
|
||||
pref_changed |= mRecreateFavoriteStorage;
|
||||
mRecreateFavoriteStorage = false;
|
||||
|
||||
LLUUID favorite_folder= gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
|
||||
if (favorite_folder.isNull())
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ private:
|
|||
slurls_map_t mSLURLs;
|
||||
std::set<LLUUID> mMissingSLURLs;
|
||||
bool mIsDirty;
|
||||
bool mRecreateFavoriteStorage;
|
||||
|
||||
struct IsNotInFavorites
|
||||
{
|
||||
|
|
@ -285,7 +286,9 @@ private:
|
|||
|
||||
inline
|
||||
LLFavoritesOrderStorage::LLFavoritesOrderStorage() :
|
||||
mIsDirty(false), mUpdateRequired(false)
|
||||
mIsDirty(false),
|
||||
mUpdateRequired(false),
|
||||
mRecreateFavoriteStorage(false)
|
||||
{ load(); }
|
||||
|
||||
#endif // LL_LLFAVORITESBARCTRL_H
|
||||
|
|
|
|||
|
|
@ -185,8 +185,11 @@ void LLFloaterAuction::onClickSnapshot(void* data)
|
|||
BOOL success = gViewerWindow->rawSnapshot(raw,
|
||||
gViewerWindow->getWindowWidthScaled(),
|
||||
gViewerWindow->getWindowHeightScaled(),
|
||||
TRUE, FALSE,
|
||||
FALSE, FALSE);
|
||||
TRUE,
|
||||
FALSE,
|
||||
FALSE, //UI
|
||||
FALSE, //HUD
|
||||
FALSE);
|
||||
gForceRenderLandFence = FALSE;
|
||||
|
||||
if (success)
|
||||
|
|
|
|||
|
|
@ -202,7 +202,6 @@ class LLFloaterColorPicker
|
|||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
|
||||
|
||||
// <FS:Zi> Add float LSL color entry widgets
|
||||
protected:
|
||||
static void onClickCopyLSL ( void* data );
|
||||
|
|
|
|||
|
|
@ -61,6 +61,11 @@ static LLTrace::SampleStatHandle<>* sJoystickAxes[6] =
|
|||
LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
|
||||
: LLFloater(data)
|
||||
{
|
||||
if (!LLViewerJoystick::getInstance()->isJoystickInitialized())
|
||||
{
|
||||
LLViewerJoystick::getInstance()->init(false);
|
||||
}
|
||||
|
||||
initFromSettings();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,11 @@ void LLFloaterLoadPrefPreset::onOpen(const LLSD& key)
|
|||
|
||||
EDefaultOptions option = DEFAULT_TOP;
|
||||
LLPresetsManager::getInstance()->setPresetNamesInComboBox(mSubdirectory, combo, option);
|
||||
std::string preset_graphic_active = gSavedSettings.getString("PresetGraphicActive");
|
||||
if (!preset_graphic_active.empty())
|
||||
{
|
||||
combo->setSimple(preset_graphic_active);
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterLoadPrefPreset::onPresetsListChange()
|
||||
|
|
@ -74,6 +79,11 @@ void LLFloaterLoadPrefPreset::onPresetsListChange()
|
|||
|
||||
EDefaultOptions option = DEFAULT_TOP;
|
||||
LLPresetsManager::getInstance()->setPresetNamesInComboBox(mSubdirectory, combo, option);
|
||||
std::string preset_graphic_active = gSavedSettings.getString("PresetGraphicActive");
|
||||
if (!preset_graphic_active.empty())
|
||||
{
|
||||
combo->setSimple(preset_graphic_active);
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterLoadPrefPreset::onBtnCancel()
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@
|
|||
#include "llviewermenufile.h" // <FS:LO> FIRE-23606 Reveal path to external script editor in prefernces
|
||||
#include "lldiriterator.h" // <Kadah> for populating the fonts combo
|
||||
#include "llline.h"
|
||||
#include "lllocationhistory.h"
|
||||
#include "llpanelblockedlist.h"
|
||||
#include "llpanelmaininventory.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
|
@ -393,6 +394,11 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response
|
|||
LLNavigationBar::instance().clearHistory();
|
||||
// </FS:Zi>
|
||||
|
||||
// <FS:Ansariel> FIRE-29761: Clear Location History does not clear Typed Locations history
|
||||
LLLocationHistory::getInstance()->removeItems();
|
||||
LLLocationHistory::getInstance()->save();
|
||||
// </FS:Ansariel>
|
||||
|
||||
LLTeleportHistoryStorage::getInstance()->purgeItems();
|
||||
LLTeleportHistoryStorage::getInstance()->save();
|
||||
}
|
||||
|
|
@ -589,8 +595,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
|
|||
|
||||
mCommitCallbackRegistrar.add("Pref.ClickActionChange", boost::bind(&LLFloaterPreference::onClickActionChange, this));
|
||||
|
||||
gSavedSettings.getControl("NameTagShowUsernames")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2));
|
||||
gSavedSettings.getControl("NameTagShowFriends")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2));
|
||||
gSavedSettings.getControl("NameTagShowUsernames")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2));
|
||||
gSavedSettings.getControl("NameTagShowFriends")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2));
|
||||
gSavedSettings.getControl("UseDisplayNames")->getCommitSignal()->connect(boost::bind(&handleDisplayNamesOptionChanged, _2));
|
||||
|
||||
gSavedSettings.getControl("AppearanceCameraMovement")->getCommitSignal()->connect(boost::bind(&handleAppearanceCameraMovementChanged, _2));
|
||||
|
|
@ -2084,12 +2090,12 @@ void LLFloaterPreference::buildPopupLists()
|
|||
if (it->second.asBoolean())
|
||||
{
|
||||
row["columns"][1]["value"] = formp->getElement(it->first)["ignore"].asString();
|
||||
row["columns"][1]["font"] = "SANSSERIF_SMALL";
|
||||
row["columns"][1]["width"] = 360;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
row["columns"][1]["font"] = "SANSSERIF_SMALL";
|
||||
row["columns"][1]["width"] = 360;
|
||||
}
|
||||
#endif
|
||||
item = disabled_popups.addElement(row);
|
||||
|
|
@ -3109,6 +3115,9 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im
|
|||
|
||||
// <FS:Ansariel> FIRE-22564: Route llOwnerSay to scipt debug window
|
||||
getChildView("FSllOwnerSayToScriptDebugWindow_checkbox")->setEnabled(TRUE);
|
||||
|
||||
// <FS:Ansariel> Clear Cache button actually clears per-account cache items
|
||||
getChildView("clear_webcache")->setEnabled(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -4359,7 +4368,7 @@ void LLPanelPreferenceGraphics::setPresetText()
|
|||
// </FS:Ansariel>
|
||||
|
||||
// <FS:Ansariel> Graphic preset controls independent from XUI
|
||||
//if (hasDirtyChilds() && !preset_graphic_active.empty())
|
||||
//if (hasDirtyChilds() && !preset_graphic_active.empty())
|
||||
//{
|
||||
// gSavedSettings.setString("PresetGraphicActive", "");
|
||||
// preset_graphic_active.clear();
|
||||
|
|
|
|||
|
|
@ -948,7 +948,7 @@ void LLFloaterReporter::takeNewSnapshot(bool refresh)
|
|||
|
||||
// Take a screenshot, but don't draw this floater.
|
||||
setVisible(FALSE);
|
||||
if( !gViewerWindow->rawSnapshot(mImageRaw, IMAGE_WIDTH, IMAGE_HEIGHT, TRUE, FALSE, TRUE, FALSE))
|
||||
if (!gViewerWindow->rawSnapshot(mImageRaw, IMAGE_WIDTH, IMAGE_HEIGHT, TRUE, FALSE, gSavedSettings.getBOOL("RenderHUDInSnapshot"), TRUE, FALSE))
|
||||
{
|
||||
LL_WARNS() << "Unable to take screenshot" << LL_ENDL;
|
||||
setVisible(TRUE);
|
||||
|
|
|
|||
|
|
@ -96,7 +96,10 @@ void LLFloaterSavePrefPreset::onBtnSave()
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
if ((name == LLTrans::getString(PRESETS_DEFAULT)) || (name == PRESETS_DEFAULT))
|
||||
std::string upper_name(name);
|
||||
LLStringUtil::toUpper(upper_name);
|
||||
|
||||
if ((name == LLTrans::getString(PRESETS_DEFAULT)) || (upper_name == PRESETS_DEFAULT_UPPER))
|
||||
{
|
||||
LLNotificationsUtil::add("DefaultPresetNotSaved");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,21 +305,34 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
|
|||
// Pass if this item's type is of the correct filter type
|
||||
if (filterTypes & FILTERTYPE_OBJECT)
|
||||
{
|
||||
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object_type == LLInventoryType::IT_NONE)
|
||||
{
|
||||
if (object && object->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
switch (object_type)
|
||||
{
|
||||
case LLInventoryType::IT_NONE:
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object && object->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case LLInventoryType::IT_UNKNOWN:
|
||||
{
|
||||
// Unknows are only shown when we show every type.
|
||||
// Unknows are 255 and won't fit in 64 bits.
|
||||
if (mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <FS>
|
||||
//if(filterTypes & FILTERTYPE_WORN)
|
||||
//{
|
||||
|
|
@ -475,18 +488,32 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLInventoryItem* item) cons
|
|||
// Pass if this item's type is of the correct filter type
|
||||
if (filterTypes & FILTERTYPE_OBJECT)
|
||||
{
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object_type == LLInventoryType::IT_NONE)
|
||||
{
|
||||
if (item && item->getIsLinkType())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
switch (object_type)
|
||||
{
|
||||
case LLInventoryType::IT_NONE:
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (item && item->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case LLInventoryType::IT_UNKNOWN:
|
||||
{
|
||||
// Unknows are only shown when we show every type.
|
||||
// Unknows are 255 and won't fit in 64 bits.
|
||||
if (mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
{
|
||||
data["certificate"] = response["certificate"];
|
||||
}
|
||||
|
||||
|
||||
if (gViewerWindow)
|
||||
gViewerWindow->setShowProgress(FALSE, FALSE);
|
||||
LLFloaterReg::showInstance("message_critical", data);
|
||||
|
|
@ -363,31 +363,13 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
// login.cgi is insisting on a required update. We were called with an
|
||||
// event that bundles both the login.cgi 'response' and the
|
||||
// synchronization event from the 'updater'.
|
||||
std::string login_version = response["message_args"]["VERSION"];
|
||||
std::string vvm_version = updater["VERSION"];
|
||||
std::string relnotes = updater["URL"];
|
||||
LL_WARNS("LLLogin") << "Login failed because an update to version " << login_version << " is required." << LL_ENDL;
|
||||
// vvm_version might be empty because we might not have gotten
|
||||
// SLVersionChecker's LoginSync handshake. But if it IS populated, it
|
||||
// should (!) be the same as the version we got from login.cgi.
|
||||
if ((! vvm_version.empty()) && vvm_version != login_version)
|
||||
{
|
||||
LL_WARNS("LLLogin") << "VVM update version " << vvm_version
|
||||
<< " differs from login version " << login_version
|
||||
<< "; presenting VVM version to match release notes URL"
|
||||
<< LL_ENDL;
|
||||
login_version = vvm_version;
|
||||
}
|
||||
if (relnotes.empty())
|
||||
{
|
||||
// I thought this would be available in strings.xml or some such
|
||||
relnotes = "https://secondlife.com/support/downloads/";
|
||||
}
|
||||
std::string required_version = response["message_args"]["VERSION"];
|
||||
LL_WARNS("LLLogin") << "Login failed because an update to version " << required_version << " is required." << LL_ENDL;
|
||||
|
||||
if (gViewerWindow)
|
||||
gViewerWindow->setShowProgress(FALSE, FALSE);
|
||||
|
||||
LLSD args(LLSDMap("VERSION", login_version)("URL", relnotes));
|
||||
LLSD args(LLSDMap("VERSION", required_version));
|
||||
if (updater.isUndefined())
|
||||
{
|
||||
// If the updater failed to shake hands, better advise the user to
|
||||
|
|
|
|||
|
|
@ -902,7 +902,7 @@ LLMeshRepoThread::~LLMeshRepoThread()
|
|||
void LLMeshRepoThread::run()
|
||||
{
|
||||
LLCDResult res = LLConvexDecomposition::initThread();
|
||||
if (res != LLCD_OK)
|
||||
if (res != LLCD_OK && LLConvexDecomposition::isFunctional())
|
||||
{
|
||||
LL_WARNS(LOG_MESH) << "Convex decomposition unable to be loaded. Expect severe problems." << LL_ENDL;
|
||||
}
|
||||
|
|
@ -1168,7 +1168,7 @@ void LLMeshRepoThread::run()
|
|||
}
|
||||
|
||||
res = LLConvexDecomposition::quitThread();
|
||||
if (res != LLCD_OK)
|
||||
if (res != LLCD_OK && LLConvexDecomposition::isFunctional())
|
||||
{
|
||||
LL_WARNS(LOG_MESH) << "Convex decomposition unable to be quit." << LL_ENDL;
|
||||
}
|
||||
|
|
@ -3575,6 +3575,11 @@ void LLMeshRepository::init()
|
|||
|
||||
LLConvexDecomposition::getInstance()->initSystem();
|
||||
|
||||
if (!LLConvexDecomposition::isFunctional())
|
||||
{
|
||||
LL_INFOS(LOG_MESH) << "Using STUB for LLConvexDecomposition" << LL_ENDL;
|
||||
}
|
||||
|
||||
mDecompThread = new LLPhysicsDecomp();
|
||||
mDecompThread->start();
|
||||
|
||||
|
|
|
|||
|
|
@ -1050,6 +1050,7 @@ void LLOutfitGallery::updateSnapshotFolderObserver()
|
|||
void LLOutfitGallery::refreshOutfit(const LLUUID& category_id)
|
||||
{
|
||||
LLViewerInventoryCategory* category = gInventory.getCategory(category_id);
|
||||
if (category)
|
||||
{
|
||||
bool photo_loaded = false;
|
||||
LLInventoryModel::cat_array_t sub_cat_array;
|
||||
|
|
@ -1367,6 +1368,7 @@ void LLOutfitGallery::onSelectPhoto(LLUUID selected_outfit_id)
|
|||
texture_floaterp->setOnFloaterCommitCallback(boost::bind(&LLOutfitGallery::onTexturePickerCommit, this, _1, _2));
|
||||
texture_floaterp->setOnUpdateImageStatsCallback(boost::bind(&LLOutfitGallery::onTexturePickerUpdateImageStats, this, _1));
|
||||
texture_floaterp->setLocalTextureEnabled(FALSE);
|
||||
texture_floaterp->setCanApply(false, true);
|
||||
}
|
||||
|
||||
floaterp->openFloater();
|
||||
|
|
|
|||
|
|
@ -1192,6 +1192,7 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
|
|||
|
||||
bool enabled = (editable && isIdenticalPlanarTexgen());
|
||||
childSetValue("checkbox planar align", align_planar && enabled);
|
||||
childSetVisible("checkbox planar align", enabled);
|
||||
childSetEnabled("checkbox planar align", enabled);
|
||||
childSetEnabled("button align textures", enabled && LLSelectMgr::getInstance()->getSelection()->getObjectCount() > 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@
|
|||
#include "llcommandhandler.h" // for secondlife:///app/login/
|
||||
#include "llcombobox.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llfloaterpreference.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
|
@ -458,6 +457,10 @@ void LLPanelLogin::addFavoritesToStartLocation()
|
|||
}
|
||||
break;
|
||||
}
|
||||
if (combo->getValue().asString().empty())
|
||||
{
|
||||
combo->selectFirstItem();
|
||||
}
|
||||
}
|
||||
|
||||
LLPanelLogin::~LLPanelLogin()
|
||||
|
|
@ -1332,13 +1335,13 @@ void LLPanelLogin::onSelectServer()
|
|||
{
|
||||
std::string location = location_combo->getValue().asString();
|
||||
LLSLURL slurl(location); // generata a slurl from the location combo contents
|
||||
if ( slurl.getType() == LLSLURL::LOCATION
|
||||
&& slurl.getGrid() != LLGridManager::getInstance()->getGrid()
|
||||
)
|
||||
if (location.empty()
|
||||
|| (slurl.getType() == LLSLURL::LOCATION
|
||||
&& slurl.getGrid() != LLGridManager::getInstance()->getGrid())
|
||||
)
|
||||
{
|
||||
// the grid specified by the location is not this one, so clear the combo
|
||||
location_combo->setCurrentByIndex(0); // last location on the new grid
|
||||
location_combo->setTextEntry(LLStringUtil::null);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
|
|||
mMyOutfitsPanel(NULL),
|
||||
mCurrentOutfitPanel(NULL),
|
||||
mActivePanel(NULL),
|
||||
mAppearanceTabs(NULL),
|
||||
mInitialized(false)
|
||||
{
|
||||
gAgentWearables.addLoadedCallback(boost::bind(&LLPanelOutfitsInventory::onWearablesLoaded, this));
|
||||
|
|
@ -352,6 +353,7 @@ void LLPanelOutfitsInventory::initTabPanels()
|
|||
|
||||
void LLPanelOutfitsInventory::onTabChange()
|
||||
{
|
||||
if (!mAppearanceTabs) return;
|
||||
mActivePanel = dynamic_cast<LLPanelAppearanceTab*>(mAppearanceTabs->getCurrentPanel());
|
||||
if (!mActivePanel) return;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@
|
|||
|
||||
#include "llbutton.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "llfloater.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloaterpreference.h"
|
||||
#include "llpresetsmanager.h"
|
||||
#include "llsliderctrl.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include <map>
|
||||
|
||||
static const std::string PRESETS_DEFAULT = "Default";
|
||||
static const std::string PRESETS_DEFAULT_UPPER = "DEFAULT";
|
||||
static const std::string PRESETS_DIR = "presets";
|
||||
static const std::string PRESETS_GRAPHIC = "graphic";
|
||||
static const std::string PRESETS_CAMERA = "camera";
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
#include "llfloatersearchreplace.h"
|
||||
// [/SL:KB]
|
||||
#include "llautoreplace.h"
|
||||
#include "llscrollcontainer.h"
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
/// Class LLPreviewNotecard
|
||||
|
|
@ -72,6 +73,9 @@
|
|||
LLPreviewNotecard::LLPreviewNotecard(const LLSD& key) //const LLUUID& item_id,
|
||||
: LLPreview( key ),
|
||||
mLiveFile(NULL)
|
||||
// <FS:Ansariel> FIRE-24306: Retain cursor position when saving notecards
|
||||
,mCursorPos(0)
|
||||
,mScrollPos(0)
|
||||
{
|
||||
const LLInventoryItem *item = getItem();
|
||||
if (item)
|
||||
|
|
@ -407,6 +411,10 @@ void LLPreviewNotecard::onLoadComplete(LLVFS *vfs,
|
|||
preview->setEnabled(modifiable);
|
||||
preview->syncExternal();
|
||||
preview->mAssetStatus = PREVIEW_ASSET_LOADED;
|
||||
|
||||
// <FS:Ansariel> FIRE-24306: Retain cursor position when saving notecards
|
||||
preview->mEditor->setCursorPos(preview->mCursorPos);
|
||||
preview->mEditor->getScrollContainer()->getScrollbar(LLScrollContainer::VERTICAL)->setDocPos(preview->mScrollPos);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -545,6 +553,10 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem, bool sync)
|
|||
return false;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-24306: Retain cursor position when saving notecards
|
||||
mCursorPos = editor->getCursorPos();
|
||||
mScrollPos = editor->getScrollContainer()->getScrollbar(LLScrollContainer::VERTICAL)->getDocPos();
|
||||
|
||||
editor->makePristine();
|
||||
const LLInventoryItem* item = getItem();
|
||||
// save it out to database
|
||||
|
|
|
|||
|
|
@ -133,6 +133,10 @@ protected:
|
|||
LLUUID mObjectID;
|
||||
|
||||
LLLiveLSLFile* mLiveFile;
|
||||
|
||||
// <FS:Ansariel> FIRE-24306: Retain cursor position when saving notecards
|
||||
S32 mCursorPos;
|
||||
S32 mScrollPos;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -634,6 +634,7 @@ void LLProgressView::onCancelButtonClicked(void*)
|
|||
// cancel is pressed while teleporting inside region (EXT-4911)
|
||||
if (LLStartUp::getStartupState() < STATE_STARTED)
|
||||
{
|
||||
LL_INFOS() << "User requesting quit during login" << LL_ENDL;
|
||||
LLAppViewer::instance()->requestQuit();
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ void LLSettingsVOBase::onAssetDownloadComplete(LLVFS *vfs, const LLUUID &asset_i
|
|||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Error retrieving asset " << asset_id << ". Status code=" << status << "(" << LLAssetStorage::getErrorString(status) << ") ext_status=" << ext_status << LL_ENDL;
|
||||
LL_WARNS("SETTINGS") << "Error retrieving asset " << asset_id << ". Status code=" << status << "(" << LLAssetStorage::getErrorString(status) << ") ext_status=" << (U32)ext_status << LL_ENDL;
|
||||
}
|
||||
if (callback)
|
||||
callback(asset_id, settings, status, ext_status);
|
||||
|
|
|
|||
|
|
@ -671,6 +671,7 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
|
|||
width, height,
|
||||
// </FS:Ansariel>
|
||||
mAllowRenderUI && gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
mSnapshotBufferType) )
|
||||
{
|
||||
|
|
@ -829,6 +830,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
|
|||
previewp->mKeepAspectRatio,//gSavedSettings.getBOOL("KeepAspectForSnapshot"),
|
||||
previewp->getSnapshotType() == LLSnapshotModel::SNAPSHOT_TEXTURE,
|
||||
previewp->mAllowRenderUI && gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
previewp->mSnapshotBufferType,
|
||||
previewp->getMaxImageSize()))
|
||||
|
|
|
|||
|
|
@ -108,7 +108,6 @@
|
|||
//#include "llfirstuse.h"
|
||||
#include "llfloaterhud.h"
|
||||
#include "llfloaterland.h"
|
||||
#include "llfloaterpreference.h"
|
||||
#include "llfloatertopobjects.h"
|
||||
#include "llfloaterworldmap.h"
|
||||
#include "llgesturemgr.h"
|
||||
|
|
@ -1252,6 +1251,7 @@ bool idle_startup()
|
|||
show_debug_menus();
|
||||
|
||||
// Hide the splash screen
|
||||
LL_DEBUGS("AppInit") << "Hide the splash screen and show window" << LL_ENDL;
|
||||
LLSplashScreen::hide();
|
||||
// Push our window frontmost
|
||||
gViewerWindow->getWindow()->show();
|
||||
|
|
@ -1259,9 +1259,12 @@ bool idle_startup()
|
|||
// DEV-16927. The following code removes errant keystrokes that happen while the window is being
|
||||
// first made visible.
|
||||
#ifdef _WIN32
|
||||
LL_DEBUGS("AppInit") << "Processing PeekMessage" << LL_ENDL;
|
||||
MSG msg;
|
||||
while( PeekMessage( &msg, /*All hWnds owned by this thread */ NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE ) )
|
||||
{ }
|
||||
{
|
||||
}
|
||||
LL_DEBUGS("AppInit") << "PeekMessage processed" << LL_ENDL;
|
||||
#endif
|
||||
display_startup();
|
||||
timeout.reset();
|
||||
|
|
@ -1712,6 +1715,8 @@ bool idle_startup()
|
|||
// Its either downloading or declined.
|
||||
// If optional was skipped this case shouldn't
|
||||
// be reached.
|
||||
|
||||
LL_INFOS() << "Forcing a quit due to update." << LL_ENDL;
|
||||
LLLoginInstance::getInstance()->disconnect();
|
||||
LLAppViewer::instance()->forceQuit();
|
||||
}
|
||||
|
|
@ -3851,6 +3856,9 @@ void LLStartUp::setStartSLURL(const LLSLURL& slurl)
|
|||
LLGridManager::getInstance()->setGridChoice(slurl.getGrid());
|
||||
break;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-29994: Start location doesn't get updated when selection a destination from the login splash screen
|
||||
FSPanelLogin::onUpdateStartSLURL(sStartSLURL);
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -145,8 +145,9 @@ BOOL LLToolGrabBase::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
|
||||
// call the base class to propogate info to sim
|
||||
LLTool::handleMouseDown(x, y, mask);
|
||||
|
||||
if (!gAgent.leftButtonGrabbed())
|
||||
|
||||
// leftButtonGrabbed() checks if controls are reserved by scripts, but does not take masks into account
|
||||
if (!gAgent.leftButtonGrabbed() || ((mask & DEFAULT_GRAB_MASK) != 0 && !gAgentCamera.cameraMouselook()))
|
||||
{
|
||||
// can grab transparent objects (how touch event propagates, scripters rely on this)
|
||||
gViewerWindow->pickAsync(x, y, mask, pickCallback, /*BOOL pick_transparent*/ TRUE);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ class LLPickInfo;
|
|||
void send_ObjectGrab_message(LLViewerObject* object, const LLPickInfo & pick, const LLVector3 &grab_offset);
|
||||
void send_ObjectDeGrab_message(LLViewerObject* object, const LLPickInfo & pick);
|
||||
|
||||
const MASK DEFAULT_GRAB_MASK = MASK_CONTROL;
|
||||
|
||||
/**
|
||||
* LLToolGrabBase contains most of the semantics of LLToolGrab. It's just that
|
||||
|
|
|
|||
|
|
@ -1773,7 +1773,7 @@ LLTool* LLToolPie::getOverrideTool(MASK mask)
|
|||
if (enableGrab)
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
if (mask == MASK_CONTROL)
|
||||
if (mask == DEFAULT_GRAB_MASK)
|
||||
{
|
||||
return LLToolGrab::getInstance();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,6 +116,8 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
|
|||
mCountSucceeded(0),
|
||||
mTotalBytesFetched(0)
|
||||
{
|
||||
// <FS:Ansariel> Explicitly create the VAAssetStorage pool
|
||||
LLCoprocedureManager::instance().createPool(VIEWER_ASSET_STORAGE_CORO_POOL);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -129,6 +131,8 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
|
|||
mCountSucceeded(0),
|
||||
mTotalBytesFetched(0)
|
||||
{
|
||||
// <FS:Ansariel> Explicitly create the VAAssetStorage pool
|
||||
LLCoprocedureManager::instance().createPool(VIEWER_ASSET_STORAGE_CORO_POOL);
|
||||
}
|
||||
|
||||
LLViewerAssetStorage::~LLViewerAssetStorage()
|
||||
|
|
@ -181,7 +185,7 @@ void LLViewerAssetStorage::storeAssetData(
|
|||
delete req;
|
||||
if (callback)
|
||||
{
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_FAILED, LL_EXSTAT_VFS_CORRUPT);
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_FAILED, LLExtStat::VFS_CORRUPT);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -222,7 +226,7 @@ void LLViewerAssetStorage::storeAssetData(
|
|||
|
||||
if (callback)
|
||||
{
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LL_EXSTAT_VFS_CORRUPT);
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LLExtStat::VFS_CORRUPT);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -249,7 +253,7 @@ void LLViewerAssetStorage::storeAssetData(
|
|||
reportMetric( asset_id, asset_type, LLStringUtil::null, LLUUID::null, 0, MR_ZERO_SIZE, __FILE__, __LINE__, "The file didn't exist or was zero length (VFS - can't tell which)" );
|
||||
if (callback)
|
||||
{
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LL_EXSTAT_NONEXISTENT_FILE);
|
||||
callback(asset_id, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LLExtStat::NONEXISTENT_FILE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -260,7 +264,7 @@ void LLViewerAssetStorage::storeAssetData(
|
|||
reportMetric( asset_id, asset_type, LLStringUtil::null, LLUUID::null, 0, MR_NO_UPSTREAM, __FILE__, __LINE__, "No upstream provider" );
|
||||
if (callback)
|
||||
{
|
||||
callback(asset_id, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
|
||||
callback(asset_id, user_data, LL_ERR_CIRCUIT_GONE, LLExtStat::NO_UPSTREAM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -347,7 +351,7 @@ void LLViewerAssetStorage::storeAssetData(
|
|||
}
|
||||
if (callback)
|
||||
{
|
||||
callback(asset_id, user_data, LL_ERR_CANNOT_OPEN_FILE, LL_EXSTAT_BLOCKED_FILE);
|
||||
callback(asset_id, user_data, LL_ERR_CANNOT_OPEN_FILE, LLExtStat::BLOCKED_FILE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -460,13 +464,18 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
mCountStarted++;
|
||||
|
||||
S32 result_code = LL_ERR_NOERR;
|
||||
LLExtStat ext_status = LL_EXSTAT_NONE;
|
||||
LLExtStat ext_status = LLExtStat::NONE;
|
||||
|
||||
if (!gAssetStorage)
|
||||
{
|
||||
LL_WARNS_ONCE("ViewerAsset") << "Asset request fails: asset storage no longer exists" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
if (!gAgent.getRegion())
|
||||
{
|
||||
LL_WARNS_ONCE("ViewerAsset") << "Asset request fails: no region set" << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_NONE;
|
||||
ext_status = LLExtStat::NONE;
|
||||
removeAndCallbackPendingDownloads(uuid, atype, uuid, atype, result_code, ext_status);
|
||||
return;
|
||||
}
|
||||
|
|
@ -520,7 +529,7 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
// </FS:Ansariel> [UDP Assets]
|
||||
LL_WARNS_ONCE("ViewerAsset") << "asset request fails: caps received but no viewer asset cap found" << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_NONE;
|
||||
ext_status = LLExtStat::NONE;
|
||||
removeAndCallbackPendingDownloads(uuid, atype, uuid, atype, result_code, ext_status);
|
||||
// <FS:Ansariel> [UDP Assets]
|
||||
}
|
||||
|
|
@ -547,7 +556,7 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
|
||||
LLSD result = httpAdapter->getRawAndSuspend(httpRequest, url, httpOpts);
|
||||
|
||||
if (LLApp::isQuitting())
|
||||
if (LLApp::isQuitting() || !gAssetStorage)
|
||||
{
|
||||
// Bail out if result arrives after shutdown has been started.
|
||||
return;
|
||||
|
|
@ -561,7 +570,7 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
{
|
||||
LL_DEBUGS("ViewerAsset") << "request failed, status " << status.toTerseString() << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_NONE;
|
||||
ext_status = LLExtStat::NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -587,13 +596,13 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
// TODO asset-http: handle error
|
||||
LL_WARNS("ViewerAsset") << "Failure in vf.write()" << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_VFS_CORRUPT;
|
||||
ext_status = LLExtStat::VFS_CORRUPT;
|
||||
}
|
||||
else if (!vf.rename(uuid, atype))
|
||||
{
|
||||
LL_WARNS("ViewerAsset") << "rename failed" << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_VFS_CORRUPT;
|
||||
ext_status = LLExtStat::VFS_CORRUPT;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -605,7 +614,7 @@ void LLViewerAssetStorage::assetRequestCoro(
|
|||
// TODO asset-http: handle invalid size case
|
||||
LL_WARNS("ViewerAsset") << "bad size" << LL_ENDL;
|
||||
result_code = LL_ERR_ASSET_REQUEST_FAILED;
|
||||
ext_status = LL_EXSTAT_NONE;
|
||||
ext_status = LLExtStat::NONE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -162,6 +162,10 @@ void display_startup()
|
|||
{
|
||||
LLViewerDynamicTexture::updateAllInstances();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("Window") << "First display_startup frame" << LL_ENDL;
|
||||
}
|
||||
|
||||
LLGLState::checkStates();
|
||||
LLGLState::checkTextureChannels();
|
||||
|
|
@ -279,6 +283,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
|
|||
|
||||
if (gWindowResized)
|
||||
{ //skip render on frames where window has been resized
|
||||
LL_DEBUGS("Window") << "Resizing window" << LL_ENDL;
|
||||
LL_RECORD_BLOCK_TIME(FTM_RESIZE_WINDOW);
|
||||
gGL.flush();
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
|
|
|||
|
|
@ -329,10 +329,13 @@ void LLViewerJoystick::init(bool autoenable)
|
|||
void LLViewerJoystick::terminate()
|
||||
{
|
||||
#if LIB_NDOF
|
||||
|
||||
ndof_libcleanup();
|
||||
LL_INFOS("joystick") << "Terminated connection with NDOF device." << LL_ENDL;
|
||||
mDriverState = JDS_UNINITIALIZED;
|
||||
if (mNdofDev != NULL)
|
||||
{
|
||||
ndof_libcleanup(); // frees alocated memory in mNdofDev
|
||||
mDriverState = JDS_UNINITIALIZED;
|
||||
mNdofDev = NULL;
|
||||
LL_INFOS("joystick") << "Terminated connection with NDOF device." << LL_ENDL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class LLViewerMedia: public LLSingleton<LLViewerMedia>
|
|||
|
||||
public:
|
||||
// String to get/set media autoplay in gSavedSettings
|
||||
static const char* AUTO_PLAY_MEDIA_SETTING;
|
||||
static const char* AUTO_PLAY_MEDIA_SETTING;
|
||||
static const char* SHOW_MEDIA_ON_OTHERS_SETTING;
|
||||
static const char* SHOW_MEDIA_WITHIN_PARCEL_SETTING;
|
||||
static const char* SHOW_MEDIA_OUTSIDE_PARCEL_SETTING;
|
||||
|
|
|
|||
|
|
@ -10804,28 +10804,40 @@ class LLWorldEnvSettings : public view_listener_t
|
|||
|
||||
if (event_name == "sunrise")
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNRISE);
|
||||
// <FS:Beq> FIRE-29926 - allow manually selected environments to have a user defined transition time.
|
||||
// LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNRISE);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNRISE);
|
||||
// </FS:Beq>
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment();
|
||||
defocusEnvFloaters();
|
||||
}
|
||||
else if (event_name == "noon")
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDDAY);
|
||||
// <FS:Beq> FIRE-29926 - allow manually selected environments to have a user defined transition time.
|
||||
// LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDDAY);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDDAY);
|
||||
// </FS:Beq>
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment();
|
||||
defocusEnvFloaters();
|
||||
}
|
||||
else if (event_name == "sunset")
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNSET);
|
||||
// <FS:Beq> FIRE-29926 - allow manually selected environments to have a user defined transition time.
|
||||
// LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNSET);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_SUNSET);
|
||||
// </FS:Beq>
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment();
|
||||
defocusEnvFloaters();
|
||||
}
|
||||
else if (event_name == "midnight")
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDNIGHT);
|
||||
// <FS:Beq> FIRE-29926 - allow manually selected environments to have a user defined transition time.
|
||||
// LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDNIGHT);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, LLEnvironment::KNOWN_SKY_MIDNIGHT);
|
||||
// </FS:Beq>
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment();
|
||||
defocusEnvFloaters();
|
||||
|
|
|
|||
|
|
@ -718,10 +718,16 @@ class LLFileTakeSnapshotToDisk : public view_listener_t
|
|||
S32 width = gViewerWindow->getWindowWidthRaw();
|
||||
S32 height = gViewerWindow->getWindowHeightRaw();
|
||||
|
||||
bool render_ui = gSavedSettings.getBOOL("RenderUIInSnapshot");
|
||||
bool render_hud = gSavedSettings.getBOOL("RenderHUDInSnapshot");
|
||||
|
||||
if (gSavedSettings.getBOOL("HighResSnapshot"))
|
||||
{
|
||||
width *= 2;
|
||||
height *= 2;
|
||||
// not compatible wirh UI/HUD
|
||||
render_ui = false;
|
||||
render_hud = false;
|
||||
}
|
||||
|
||||
if (gViewerWindow->rawSnapshot(raw,
|
||||
|
|
@ -729,7 +735,8 @@ class LLFileTakeSnapshotToDisk : public view_listener_t
|
|||
height,
|
||||
TRUE,
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
render_ui,
|
||||
render_hud,
|
||||
FALSE))
|
||||
{
|
||||
LLPointer<LLImageFormatted> formatted;
|
||||
|
|
|
|||
|
|
@ -2863,10 +2863,29 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||
chat.mChatType = (EChatType)type_temp;
|
||||
|
||||
// NaCL - Antispam Registry
|
||||
if (chat.mChatType != CHAT_TYPE_START && chat.mChatType != CHAT_TYPE_STOP)
|
||||
static LLCachedControl<bool> useAntiSpam(gSavedSettings, "UseAntiSpam");
|
||||
static LLCachedControl<bool> useAntiSpamMine(gSavedSettings, "FSUseAntiSpamMine");
|
||||
bool deferred_spam_check = false;
|
||||
if (useAntiSpam && chat.mChatType != CHAT_TYPE_START && chat.mChatType != CHAT_TYPE_STOP)
|
||||
{
|
||||
if (chat.mSourceType == CHAT_SOURCE_OBJECT)
|
||||
{
|
||||
LLViewerObject* source = gObjectList.findObject(from_id);
|
||||
if (source)
|
||||
{
|
||||
if (source->permYouOwner() && useAntiSpamMine)
|
||||
{
|
||||
// Only check if not a debug message
|
||||
deferred_spam_check = chat.mChatType != CHAT_TYPE_DEBUG_MSG;
|
||||
}
|
||||
else if (!source->permYouOwner() && chat.mChatType != CHAT_TYPE_DEBUG_MSG && NACLAntiSpamRegistry::instance().checkQueue(ANTISPAM_QUEUE_CHAT, from_id, ANTISPAM_SOURCE_OBJECT))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
// owner_id = from_id for agents
|
||||
if (NACLAntiSpamRegistry::instance().checkQueue(ANTISPAM_QUEUE_CHAT, owner_id, ANTISPAM_SOURCE_AGENT))
|
||||
else if (NACLAntiSpamRegistry::instance().checkQueue(ANTISPAM_QUEUE_CHAT, owner_id, ANTISPAM_SOURCE_AGENT))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -2994,8 +3013,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||
// NaCl - Newline flood protection
|
||||
static LLCachedControl<bool> useAntiSpam(gSavedSettings, "UseAntiSpam");
|
||||
// <FS:TS> FIRE-23138: Add option to antispam user's own objects
|
||||
bool deferred_spam_check = false;
|
||||
static LLCachedControl<bool> useAntiSpamMine(gSavedSettings, "FSUseAntiSpamMine");
|
||||
bool deferred_newline_spam_check = false;
|
||||
if (useAntiSpam)
|
||||
{
|
||||
bool doCheck = true;
|
||||
|
|
@ -3021,7 +3039,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||
if (doCheck && useAntiSpamMine)
|
||||
{
|
||||
// If it's the user's object, defer the check so RLV commands still work
|
||||
deferred_spam_check = true;
|
||||
deferred_newline_spam_check = true;
|
||||
}
|
||||
// </FS:TS> FIRE-23138
|
||||
}
|
||||
|
|
@ -3292,7 +3310,11 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||
break;
|
||||
}
|
||||
// <FS:TS> FIRE-23138: Enable spam checking for user's own objects
|
||||
if (deferred_spam_check && NACLAntiSpamRegistry::instance().checkNewlineFlood(ANTISPAM_QUEUE_CHAT, from_id, mesg))
|
||||
if (deferred_spam_check && NACLAntiSpamRegistry::instance().checkQueue(ANTISPAM_QUEUE_CHAT, from_id, ANTISPAM_SOURCE_OBJECT))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (deferred_newline_spam_check && NACLAntiSpamRegistry::instance().checkNewlineFlood(ANTISPAM_QUEUE_CHAT, from_id, mesg))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -6348,7 +6370,14 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
|||
std::string snap_filename = gDirUtilp->getLindenUserDir();
|
||||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenHomeFilename();
|
||||
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
gViewerWindow->saveSnapshot(snap_filename,
|
||||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE, //UI
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
}
|
||||
|
||||
if (notificationID == "RegionRestartMinutes" ||
|
||||
|
|
@ -6410,7 +6439,7 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
|||
std::string snap_filename = gDirUtilp->getLindenUserDir();
|
||||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenHomeFilename();
|
||||
if (gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG))
|
||||
if (gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, gSavedSettings.getBOOL("RenderHUDInSnapshot"), FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG))
|
||||
{
|
||||
LL_INFOS() << LLStartUp::getScreenHomeFilename() << " saved successfully." << LL_ENDL;
|
||||
}
|
||||
|
|
@ -6482,7 +6511,14 @@ static void process_special_alert_messages(const std::string & message)
|
|||
std::string snap_filename = gDirUtilp->getLindenUserDir();
|
||||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenHomeFilename();
|
||||
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
gViewerWindow->saveSnapshot(snap_filename,
|
||||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4953,7 +4953,9 @@ LLViewerTexture* LLViewerObject::getBakedTextureForMagicId(const LLUUID& id)
|
|||
}
|
||||
|
||||
LLVOAvatar* avatar = getAvatar();
|
||||
if (avatar)
|
||||
if (avatar && !isHUDAttachment()
|
||||
&& isMesh()
|
||||
&& getVolume() && getVolume()->getParams().getSculptID().notNull()) // checking for the rigged mesh by params instead of using isRiggedMesh() to avoid false negatives when skin info isn't ready
|
||||
{
|
||||
LLAvatarAppearanceDefines::EBakedTextureIndex texIndex = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::assetIdToBakedTextureIndex(id);
|
||||
LLViewerTexture* bakedTexture = avatar->getBakedTexture(texIndex);
|
||||
|
|
|
|||
|
|
@ -78,6 +78,8 @@ void LLViewerParcelAskPlay::askToPlay(const LLUUID ®ion_id, const S32 &parcel
|
|||
default:
|
||||
{
|
||||
// create or re-create notification
|
||||
// Note: will create and immediately cancel one notification if region has both media and music
|
||||
// since ask play does not distinguish media from music and media can be used as music
|
||||
cancelNotification();
|
||||
|
||||
if (LLStartUp::getStartupState() > STATE_PRECACHE)
|
||||
|
|
|
|||
|
|
@ -81,6 +81,11 @@ mMediaParcelLocalID(0)
|
|||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->setHandlerFunc("ParcelMediaCommandMessage", parcelMediaCommandMessageHandler );
|
||||
msg->setHandlerFunc("ParcelMediaUpdate", parcelMediaUpdateHandler );
|
||||
|
||||
// LLViewerParcelMediaAutoPlay will regularly check and autoplay media,
|
||||
// might be good idea to just integrate it into LLViewerParcelMedia
|
||||
LLSingleton<LLViewerParcelMediaAutoPlay>::getInstance();
|
||||
|
||||
loadDomainFilterList();
|
||||
}
|
||||
|
||||
|
|
@ -110,11 +115,13 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
|
|||
S32 parcelid = parcel->getLocalID();
|
||||
|
||||
LLUUID regionid = gAgent.getRegion()->getRegionID();
|
||||
bool location_changed = false;
|
||||
if (parcelid != mMediaParcelLocalID || regionid != mMediaRegionID)
|
||||
{
|
||||
LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL;
|
||||
mMediaParcelLocalID = parcelid;
|
||||
mMediaRegionID = regionid;
|
||||
location_changed = true;
|
||||
}
|
||||
|
||||
std::string mediaUrl = std::string ( parcel->getMediaURL () );
|
||||
|
|
@ -140,7 +147,7 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
|
|||
if(mMediaImpl.isNull())
|
||||
|
||||
{
|
||||
play(parcel);
|
||||
// media will be autoplayed by LLViewerParcelMediaAutoPlay
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -149,8 +156,9 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
|
|||
|| ( mMediaImpl->getMediaTextureID() != parcel->getMediaID() )
|
||||
|| ( mMediaImpl->getMimeType() != parcel->getMediaType() ))
|
||||
{
|
||||
// Only play if the media types are the same.
|
||||
if(mMediaImpl->getMimeType() == parcel->getMediaType())
|
||||
// Only play if the media types are the same and parcel stays same.
|
||||
if(mMediaImpl->getMimeType() == parcel->getMediaType()
|
||||
&& !location_changed)
|
||||
{
|
||||
if (gSavedSettings.getBOOL("MediaEnableFilter"))
|
||||
{
|
||||
|
|
@ -174,25 +182,6 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
|
|||
stop();
|
||||
}
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
// no audio player, do a first use dialog if there is media here
|
||||
if (parcel)
|
||||
{
|
||||
std::string mediaUrl = std::string ( parcel->getMediaURL () );
|
||||
if (!mediaUrl.empty ())
|
||||
{
|
||||
if (gWarningSettings.getBOOL("QuickTimeInstalled"))
|
||||
{
|
||||
gWarningSettings.setBOOL("QuickTimeInstalled", FALSE);
|
||||
|
||||
LLNotificationsUtil::add("NoQuickTime" );
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -205,12 +194,6 @@ void LLViewerParcelMedia::play(LLParcel* parcel)
|
|||
if (!gSavedSettings.getBOOL("AudioStreamingMedia"))
|
||||
return;
|
||||
|
||||
// This test appears all over the code and really should be facotred out into a single
|
||||
// call that returns true/false (with option ask dialog) but that is outside of scope
|
||||
// for this work so we'll just directly.
|
||||
if (gSavedSettings.getS32("ParcelMediaAutoPlayEnable") == 0 )
|
||||
return;
|
||||
|
||||
std::string media_url = parcel->getMediaURL();
|
||||
std::string media_current_url = parcel->getMediaCurrentURL();
|
||||
std::string mime_type = parcel->getMediaType();
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
|
|||
LLViewerParcelAskPlay::getInstance()->askToPlay(this_region->getRegionID(),
|
||||
this_parcel->getLocalID(),
|
||||
this_parcel->getMediaURL(),
|
||||
onStartMusicResponse);
|
||||
onStartMediaResponse);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -167,7 +167,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick()
|
|||
}
|
||||
|
||||
//static
|
||||
void LLViewerParcelMediaAutoPlay::onStartMusicResponse(const LLUUID ®ion_id, const S32 &parcel_id, const std::string &url, const bool &play)
|
||||
void LLViewerParcelMediaAutoPlay::onStartMediaResponse(const LLUUID ®ion_id, const S32 &parcel_id, const std::string &url, const bool &play)
|
||||
{
|
||||
if (play)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,7 +39,8 @@ public:
|
|||
static void playStarted();
|
||||
|
||||
private:
|
||||
static void onStartMusicResponse(const LLUUID ®ion_id, const S32 &parcel_id, const std::string &url, const bool &play);
|
||||
// for askToPlay
|
||||
static void onStartMediaResponse(const LLUUID ®ion_id, const S32 &parcel_id, const std::string &url, const bool &play);
|
||||
|
||||
private:
|
||||
S32 mLastParcelID;
|
||||
|
|
|
|||
|
|
@ -304,7 +304,8 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
|
|||
regionp = NULL;
|
||||
result = httpAdapter->postAndSuspend(httpRequest, url, capabilityNames);
|
||||
|
||||
++mSeedCapAttempts;
|
||||
// <FS:Ansariel> Fix seed cap retry count
|
||||
//++mSeedCapAttempts;
|
||||
|
||||
regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle);
|
||||
if (!regionp) //region was removed
|
||||
|
|
@ -317,6 +318,7 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
|
|||
{
|
||||
LL_WARNS("AppInit", "Capabilities") << "Received results for a stale capabilities request!" << LL_ENDL;
|
||||
// setup for retry.
|
||||
++mSeedCapAttempts; // <FS:Ansariel> Fix seed cap retry count
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -324,6 +326,7 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
|
|||
{
|
||||
LL_WARNS("AppInit", "Capabilities") << "Malformed response" << LL_ENDL;
|
||||
// setup for retry.
|
||||
++mSeedCapAttempts; // <FS:Ansariel> Fix seed cap retry count
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -333,6 +336,7 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
|
|||
{
|
||||
LL_WARNS("AppInit", "Capabilities") << "HttpStatus error " << LL_ENDL;
|
||||
// setup for retry.
|
||||
++mSeedCapAttempts; // <FS:Ansariel> Fix seed cap retry count
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -592,12 +592,12 @@ public:
|
|||
if (result == "complete"
|
||||
&& mBakdedUploadData != NULL)
|
||||
{// Invoke
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(newAssetId, (void*) mBakdedUploadData, 0, LL_EXSTAT_NONE);
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(newAssetId, (void*) mBakdedUploadData, 0, LLExtStat::NONE);
|
||||
mBakdedUploadData = NULL;// deleted in onTextureUploadComplete()
|
||||
}
|
||||
else
|
||||
{// Invoke the original callback with an error result
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(newAssetId, (void*) mBakdedUploadData, -1, LL_EXSTAT_NONE);
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(newAssetId, (void*) mBakdedUploadData, -1, LLExtStat::NONE);
|
||||
mBakdedUploadData = NULL;// deleted in onTextureUploadComplete()
|
||||
}
|
||||
}
|
||||
|
|
@ -605,7 +605,7 @@ public:
|
|||
{
|
||||
LL_WARNS() << "Uploading baked texture resulted in http " << status.getType() << ll_pretty_print_sd( aResult ) << LL_ENDL;
|
||||
// Invoke the original callback with an error result
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(LLUUID(), (void*) mBakdedUploadData, -1, LL_EXSTAT_NONE);
|
||||
LLViewerTexLayerSetBuffer::onTextureUploadComplete(LLUUID(), (void*) mBakdedUploadData, -1, LLExtStat::NONE);
|
||||
mBakdedUploadData = NULL;// deleted in onTextureUploadComplete()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1482,6 +1482,7 @@ BOOL LLViewerWindow::handleCloseRequest(LLWindow *window)
|
|||
|
||||
void LLViewerWindow::handleQuit(LLWindow *window)
|
||||
{
|
||||
LL_INFOS() << "Window forced quit" << LL_ENDL;
|
||||
LLAppViewer::instance()->forceQuit();
|
||||
}
|
||||
|
||||
|
|
@ -5759,12 +5760,12 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height)
|
|||
|
||||
}
|
||||
|
||||
BOOL LLViewerWindow::saveSnapshot(const std::string& filepath, S32 image_width, S32 image_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, LLSnapshotModel::ESnapshotFormat format)
|
||||
BOOL LLViewerWindow::saveSnapshot(const std::string& filepath, S32 image_width, S32 image_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, LLSnapshotModel::ESnapshotFormat format)
|
||||
{
|
||||
LL_INFOS() << "Saving snapshot to: " << filepath << LL_ENDL;
|
||||
|
||||
LLPointer<LLImageRaw> raw = new LLImageRaw;
|
||||
BOOL success = rawSnapshot(raw, image_width, image_height, TRUE, FALSE, show_ui, do_rebuild);
|
||||
BOOL success = rawSnapshot(raw, image_width, image_height, TRUE, FALSE, show_ui, show_hud, do_rebuild);
|
||||
|
||||
if (success)
|
||||
{
|
||||
|
|
@ -5826,16 +5827,16 @@ void LLViewerWindow::resetSnapshotLoc() const
|
|||
gSavedPerAccountSettings.setString("SnapshotBaseDir", std::string());
|
||||
}
|
||||
|
||||
BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type)
|
||||
BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type)
|
||||
{
|
||||
return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, do_rebuild, type);
|
||||
return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, show_hud, do_rebuild, type);
|
||||
}
|
||||
|
||||
// Saves the image from the screen to a raw image
|
||||
// Since the required size might be bigger than the available screen, this method rerenders the scene in parts (called subimages) and copy
|
||||
// the results over to the final raw image.
|
||||
BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_height,
|
||||
BOOL keep_window_aspect, BOOL is_texture, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, S32 max_size)
|
||||
BOOL keep_window_aspect, BOOL is_texture, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, S32 max_size)
|
||||
{
|
||||
if (!raw)
|
||||
{
|
||||
|
|
@ -5869,7 +5870,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
LLPipeline::toggleRenderDebugFeature(LLPipeline::RENDER_DEBUG_FEATURE_UI);
|
||||
}
|
||||
|
||||
BOOL hide_hud = !gSavedSettings.getBOOL("RenderHUDInSnapshot") && LLPipeline::sShowHUDAttachments;
|
||||
BOOL hide_hud = !show_hud && LLPipeline::sShowHUDAttachments;
|
||||
if (hide_hud)
|
||||
{
|
||||
LLPipeline::sShowHUDAttachments = FALSE;
|
||||
|
|
|
|||
|
|
@ -354,10 +354,10 @@ public:
|
|||
// snapshot functionality.
|
||||
// perhaps some of this should move to llfloatershapshot? -MG
|
||||
|
||||
BOOL saveSnapshot(const std::string& filename, S32 image_width, S32 image_height, BOOL show_ui = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::ESnapshotFormat format = LLSnapshotModel::SNAPSHOT_FORMAT_BMP);
|
||||
BOOL saveSnapshot(const std::string& filename, S32 image_width, S32 image_height, BOOL show_ui = TRUE, BOOL show_hud = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::ESnapshotFormat format = LLSnapshotModel::SNAPSHOT_FORMAT_BMP);
|
||||
BOOL rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_height, BOOL keep_window_aspect = TRUE, BOOL is_texture = FALSE,
|
||||
BOOL show_ui = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, S32 max_size = MAX_SNAPSHOT_IMAGE_SIZE);
|
||||
BOOL thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type);
|
||||
BOOL show_ui = TRUE, BOOL show_hud = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, S32 max_size = MAX_SNAPSHOT_IMAGE_SIZE);
|
||||
BOOL thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type);
|
||||
BOOL isSnapshotLocSet() const;
|
||||
void resetSnapshotLoc() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,10 +50,11 @@ LLViewerWindowListener::LLViewerWindowListener(LLViewerWindow* llviewerwindow):
|
|||
// saveSnapshotArgs["width"] = LLSD::Integer();
|
||||
// saveSnapshotArgs["height"] = LLSD::Integer();
|
||||
// saveSnapshotArgs["showui"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["showhud"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["rebuild"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["type"] = LLSD::String();
|
||||
add("saveSnapshot",
|
||||
"Save screenshot: [\"filename\"], [\"width\"], [\"height\"], [\"showui\"], [\"rebuild\"], [\"type\"]\n"
|
||||
"Save screenshot: [\"filename\"], [\"width\"], [\"height\"], [\"showui\"], [\"showhud\"], [\"rebuild\"], [\"type\"]\n"
|
||||
"type: \"COLOR\", \"DEPTH\"\n"
|
||||
"Post on [\"reply\"] an event containing [\"ok\"]",
|
||||
&LLViewerWindowListener::saveSnapshot,
|
||||
|
|
@ -83,6 +84,9 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
|
|||
bool showui = true;
|
||||
if (event.has("showui"))
|
||||
showui = event["showui"].asBoolean();
|
||||
bool showhud = true;
|
||||
if (event.has("showhud"))
|
||||
showhud = event["showhud"].asBoolean();
|
||||
bool rebuild(event["rebuild"]); // defaults to false
|
||||
LLSnapshotModel::ESnapshotLayerType type(LLSnapshotModel::SNAPSHOT_TYPE_COLOR);
|
||||
if (event.has("type"))
|
||||
|
|
@ -96,7 +100,7 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
|
|||
}
|
||||
type = found->second;
|
||||
}
|
||||
bool ok = mViewerWindow->saveSnapshot(event["filename"], width, height, showui, rebuild, type);
|
||||
bool ok = mViewerWindow->saveSnapshot(event["filename"], width, height, showui, showhud, rebuild, type);
|
||||
sendReply(LLSDMap("ok", ok), event);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -277,8 +277,10 @@ void LLVOVolume::markDead()
|
|||
{
|
||||
if (!mDead)
|
||||
{
|
||||
if( getVolume() ) // <FS:ND/> Check for corrupted volume.
|
||||
LLSculptIDSize::instance().rem(getVolume()->getParams().getSculptID());
|
||||
if (getVolume())
|
||||
{
|
||||
LLSculptIDSize::instance().rem(getVolume()->getParams().getSculptID());
|
||||
}
|
||||
|
||||
if(getMDCImplCount() > 0)
|
||||
{
|
||||
|
|
@ -4818,8 +4820,9 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
|
|||
{
|
||||
U8 mode = mat->getDiffuseAlphaMode();
|
||||
|
||||
if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE ||
|
||||
mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE)
|
||||
if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE
|
||||
|| mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE
|
||||
|| (mode == LLMaterial::DIFFUSE_ALPHA_MODE_MASK && mat->getAlphaMaskCutoff() == 0))
|
||||
{
|
||||
ignore_alpha = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public:
|
|||
{
|
||||
// from curl.h
|
||||
// skip the "CURLE_" prefix for each of these strings
|
||||
#define def(sym) (mMap[sym] = #sym + 6)
|
||||
#define def(sym) (mMap[sym] = &#sym[6])
|
||||
def(CURLE_OK);
|
||||
def(CURLE_UNSUPPORTED_PROTOCOL); /* 1 */
|
||||
def(CURLE_FAILED_INIT); /* 2 */
|
||||
|
|
|
|||
|
|
@ -827,6 +827,8 @@ void FloaterQuickPrefs::selectSkyPreset(const LLSD& preset)
|
|||
// Need to preserve current sky manually in this case in contrast to asset-based settings
|
||||
LLSettingsWater::ptr_t current_water = LLEnvironment::instance().getCurrentWater();
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, legacy_sky, current_water);
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(static_cast<LLSettingsBase::Seconds>(gSavedSettings.getF32("FSEnvironmentManualTransitionTime")));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -837,10 +839,10 @@ void FloaterQuickPrefs::selectSkyPreset(const LLSD& preset)
|
|||
else // note the else here bridges the endif
|
||||
#endif
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
}
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_FAST, true);
|
||||
// LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_FAST);
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::selectWaterPreset(const LLSD& preset)
|
||||
|
|
@ -856,6 +858,8 @@ void FloaterQuickPrefs::selectWaterPreset(const LLSD& preset)
|
|||
// Need to preserve current sky manually in this case in contrast to asset-based settings
|
||||
LLSettingsSky::ptr_t current_sky = LLEnvironment::instance().getCurrentSky();
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, current_sky, legacy_water);
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(static_cast<LLSettingsBase::Seconds>(gSavedSettings.getF32("FSEnvironmentManualTransitionTime")));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -866,10 +870,9 @@ void FloaterQuickPrefs::selectWaterPreset(const LLSD& preset)
|
|||
else // beware the trailing else here.
|
||||
#endif
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
}
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_FAST, true);
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::selectDayCyclePreset(const LLSD& preset)
|
||||
|
|
@ -883,6 +886,8 @@ void FloaterQuickPrefs::selectDayCyclePreset(const LLSD& preset)
|
|||
if (legacyday)
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, legacyday);
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(static_cast<LLSettingsBase::Seconds>(gSavedSettings.getF32("FSEnvironmentManualTransitionTime")));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -893,10 +898,9 @@ void FloaterQuickPrefs::selectDayCyclePreset(const LLSD& preset)
|
|||
else // beware trailing else that bridges the endif
|
||||
#endif
|
||||
{
|
||||
LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().setManualEnvironment(LLEnvironment::ENV_LOCAL, preset.asUUID());
|
||||
}
|
||||
LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
|
||||
LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_FAST, true);
|
||||
}
|
||||
|
||||
void FloaterQuickPrefs::onChangeWaterPreset()
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
Gå til 'Verden' > 'Om land' eller vælg en anden parcel for at se detaljer.
|
||||
</panel.string>
|
||||
<panel.string name="time_stamp_template">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</panel.string>
|
||||
<text name="Name:">
|
||||
Navn:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="inspect" title="UNDERSØG OBJEKT">
|
||||
<floater.string name="timeStamp">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</floater.string>
|
||||
<scroll_list name="object_list" tool_tip="Vælg et objekt fra listen for at markere det">
|
||||
<scroll_list.columns label="Objekt navn" name="object_name"/>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue