diff options
author | Jacek Antonelli | 2008-08-15 23:44:59 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:44:59 -0500 |
commit | a408bac29378072fbf36864164149458c978cfcc (patch) | |
tree | 67feccf1a5d3816611ba48d6762f86f0f7f4b1f6 /linden/indra/newview | |
parent | Second Life viewer sources 1.17.0.12 (diff) | |
download | meta-impy-a408bac29378072fbf36864164149458c978cfcc.zip meta-impy-a408bac29378072fbf36864164149458c978cfcc.tar.gz meta-impy-a408bac29378072fbf36864164149458c978cfcc.tar.bz2 meta-impy-a408bac29378072fbf36864164149458c978cfcc.tar.xz |
Second Life viewer sources 1.17.1.0
Diffstat (limited to '')
145 files changed, 2623 insertions, 711 deletions
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index 9df6a82..318a129 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings | |||
@@ -1,5 +1,5 @@ | |||
1 | /* Localized versions of Info.plist keys */ | 1 | /* Localized versions of Info.plist keys */ |
2 | 2 | ||
3 | CFBundleName = "Second Life"; | 3 | CFBundleName = "Second Life"; |
4 | CFBundleShortVersionString = "Second Life version 1.17.0.12"; | 4 | CFBundleShortVersionString = "Second Life version 1.17.1.0"; |
5 | CFBundleGetInfoString = "Second Life version 1.17.0.12, Copyright 2004-2007 Linden Research, Inc."; | 5 | CFBundleGetInfoString = "Second Life version 1.17.1.0, Copyright 2004-2007 Linden Research, Inc."; |
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index a02f664..080f898 100644 --- a/linden/indra/newview/Info-SecondLife.plist +++ b/linden/indra/newview/Info-SecondLife.plist | |||
@@ -32,7 +32,7 @@ | |||
32 | </dict> | 32 | </dict> |
33 | </array> | 33 | </array> |
34 | <key>CFBundleVersion</key> | 34 | <key>CFBundleVersion</key> |
35 | <string>1.17.0.12</string> | 35 | <string>1.17.1.0</string> |
36 | <key>CSResourcesFileMapped</key> | 36 | <key>CSResourcesFileMapped</key> |
37 | <true/> | 37 | <true/> |
38 | </dict> | 38 | </dict> |
diff --git a/linden/indra/newview/app_settings/colors_base.xml b/linden/indra/newview/app_settings/colors_base.xml index 2ef8908..5a9261b 100644 --- a/linden/indra/newview/app_settings/colors_base.xml +++ b/linden/indra/newview/app_settings/colors_base.xml | |||
@@ -10,6 +10,8 @@ | |||
10 | <!-- usually be left as opaque white. --> | 10 | <!-- usually be left as opaque white. --> |
11 | <ButtonColor value="255, 255, 255, 255"/> | 11 | <ButtonColor value="255, 255, 255, 255"/> |
12 | <ButtonImageColor value="255, 255, 255, 255"/> | 12 | <ButtonImageColor value="255, 255, 255, 255"/> |
13 | <!-- Match the caution dialog buttons to the default --> | ||
14 | <ButtonCautionImageColor value="255, 255, 255, 255"/> | ||
13 | 15 | ||
14 | <!-- Text labels for buttons, like the "OK" text --> | 16 | <!-- Text labels for buttons, like the "OK" text --> |
15 | <ButtonLabelColor value="220, 220, 220, 255"/> | 17 | <ButtonLabelColor value="220, 220, 220, 255"/> |
@@ -95,6 +97,10 @@ | |||
95 | <!-- top-right of the screen. --> | 97 | <!-- top-right of the screen. --> |
96 | <NotifyBoxColor value="58, 147, 242, 255"/> | 98 | <NotifyBoxColor value="58, 147, 242, 255"/> |
97 | <NotifyTextColor value="0, 0, 0, 255"/> | 99 | <NotifyTextColor value="0, 0, 0, 255"/> |
100 | <!-- the background color of caution permissions prompts --> | ||
101 | <NotifyCautionBoxColor value="254, 209, 118, 255"/> | ||
102 | <!-- the foreground color of the special title text in caution permissions prompts --> | ||
103 | <NotifyCautionWarnColor value="0, 0, 0, 255"/> | ||
98 | <!-- Background color of focused floaters --> | 104 | <!-- Background color of focused floaters --> |
99 | <FocusBackgroundColor value="62, 62, 62, 255"/> | 105 | <FocusBackgroundColor value="62, 62, 62, 255"/> |
100 | <GroupNotifyBoxColor value="70, 170, 255, 255"/> | 106 | <GroupNotifyBoxColor value="70, 170, 255, 255"/> |
diff --git a/linden/indra/newview/files.lst b/linden/indra/newview/files.lst index 2967bed..d6794d7 100644 --- a/linden/indra/newview/files.lst +++ b/linden/indra/newview/files.lst | |||
@@ -225,6 +225,7 @@ newview/llsky.cpp | |||
225 | newview/llspatialpartition.cpp | 225 | newview/llspatialpartition.cpp |
226 | newview/llsphere.cpp | 226 | newview/llsphere.cpp |
227 | newview/llsprite.cpp | 227 | newview/llsprite.cpp |
228 | newview/llsrv.cpp | ||
228 | newview/llstartup.cpp | 229 | newview/llstartup.cpp |
229 | newview/llstatbar.cpp | 230 | newview/llstatbar.cpp |
230 | newview/llstatgraph.cpp | 231 | newview/llstatgraph.cpp |
diff --git a/linden/indra/newview/fmodwrapper.cpp b/linden/indra/newview/fmodwrapper.cpp index 6d74325..b6f1dc7 100644 --- a/linden/indra/newview/fmodwrapper.cpp +++ b/linden/indra/newview/fmodwrapper.cpp | |||
@@ -36,4 +36,4 @@ void* fmodwrapper(void) | |||
36 | // When building the fmodwrapper library, the linker doesn't seem to want to bring in libfmod.a unless I explicitly | 36 | // When building the fmodwrapper library, the linker doesn't seem to want to bring in libfmod.a unless I explicitly |
37 | // reference at least one symbol in the library. This seemed like the simplest way. | 37 | // reference at least one symbol in the library. This seemed like the simplest way. |
38 | return (void*)&FSOUND_Init; | 38 | return (void*)&FSOUND_Init; |
39 | } \ No newline at end of file | 39 | } |
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi index 1b5226c..7a225fa 100644 --- a/linden/indra/newview/installers/windows/installer_template.nsi +++ b/linden/indra/newview/installers/windows/installer_template.nsi | |||
@@ -37,9 +37,9 @@ XPStyle on ; add an XP manifest to the installer | |||
37 | ;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the | 37 | ;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the |
38 | ;; application directory so we have to add a path to these include files) | 38 | ;; application directory so we have to add a path to these include files) |
39 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 39 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
40 | #!include "installers\windows\lang_de.nsi" | 40 | !include "installers\windows\lang_de.nsi" |
41 | !include "installers\windows\lang_en-us.nsi" | 41 | !include "installers\windows\lang_en-us.nsi" |
42 | #!include "installers\windows\lang_ja.nsi" | 42 | !include "installers\windows\lang_ja.nsi" |
43 | !include "installers\windows\lang_ko.nsi" | 43 | !include "installers\windows\lang_ko.nsi" |
44 | 44 | ||
45 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 45 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
@@ -890,10 +890,10 @@ Function .onInit | |||
890 | Push "" | 890 | Push "" |
891 | Push ${LANG_ENGLISH} | 891 | Push ${LANG_ENGLISH} |
892 | Push English | 892 | Push English |
893 | # Push ${LANG_GERMAN} | 893 | Push ${LANG_GERMAN} |
894 | # Push German | 894 | Push German |
895 | # Push ${LANG_JAPANESE} | 895 | Push ${LANG_JAPANESE} |
896 | # Push Japanese | 896 | Push Japanese |
897 | Push ${LANG_KOREAN} | 897 | Push ${LANG_KOREAN} |
898 | Push Korean | 898 | Push Korean |
899 | Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain | 899 | Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain |
@@ -909,12 +909,15 @@ Function .onInit | |||
909 | StrCmp $LANGUAGE "1042" 0 +3 | 909 | StrCmp $LANGUAGE "1042" 0 +3 |
910 | StrCpy $LANGFLAGS " -set SystemLanguage ko" | 910 | StrCpy $LANGFLAGS " -set SystemLanguage ko" |
911 | Goto EndOfFunc | 911 | Goto EndOfFunc |
912 | # StrCmp $LANGUAGE "1041" 0 +3 | 912 | |
913 | # StrCpy $LANGFLAGS " -set SystemLanguage ja" | 913 | StrCmp $LANGUAGE "1041" 0 +3 |
914 | # Goto EndOfFunc | 914 | StrCpy $LANGFLAGS " -set SystemLanguage ja" |
915 | # StrCmp $LANGUAGE "1031" 0 +3 | 915 | Goto EndOfFunc |
916 | # StrCpy $LANGFLAGS " -set SystemLanguage de" | 916 | |
917 | # Goto EndOfFunc | 917 | StrCmp $LANGUAGE "1031" 0 +3 |
918 | StrCpy $LANGFLAGS " -set SystemLanguage de" | ||
919 | Goto EndOfFunc | ||
920 | |||
918 | StrCmp $LANGUAGE "1033" 0 +3 | 921 | StrCmp $LANGUAGE "1033" 0 +3 |
919 | StrCpy $LANGFLAGS " -set SystemLanguage en-us" | 922 | StrCpy $LANGFLAGS " -set SystemLanguage en-us" |
920 | Goto EndOfFunc | 923 | Goto EndOfFunc |
diff --git a/linden/indra/newview/licenses-linux.txt b/linden/indra/newview/licenses-linux.txt index 1892b81..826e044 100644 --- a/linden/indra/newview/licenses-linux.txt +++ b/linden/indra/newview/licenses-linux.txt | |||
@@ -547,3 +547,96 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||
547 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 547 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
548 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 548 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
549 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 549 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
550 | |||
551 | ============== | ||
552 | libpng license | ||
553 | ============== | ||
554 | |||
555 | COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: | ||
556 | |||
557 | If you modify libpng you may insert additional notices immediately following | ||
558 | this sentence. | ||
559 | |||
560 | libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are | ||
561 | Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are | ||
562 | distributed according to the same disclaimer and license as libpng-1.2.5 | ||
563 | with the following individual added to the list of Contributing Authors: | ||
564 | |||
565 | Cosmin Truta | ||
566 | |||
567 | libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are | ||
568 | Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are | ||
569 | distributed according to the same disclaimer and license as libpng-1.0.6 | ||
570 | with the following individuals added to the list of Contributing Authors: | ||
571 | |||
572 | Simon-Pierre Cadieux | ||
573 | Eric S. Raymond | ||
574 | Gilles Vollant | ||
575 | |||
576 | and with the following additions to the disclaimer: | ||
577 | |||
578 | There is no warranty against interference with your enjoyment of the | ||
579 | library or against infringement. There is no warranty that our | ||
580 | efforts or the library will fulfill any of your particular purposes | ||
581 | or needs. This library is provided with all faults, and the entire | ||
582 | risk of satisfactory quality, performance, accuracy, and effort is with | ||
583 | the user. | ||
584 | |||
585 | libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are | ||
586 | Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are | ||
587 | distributed according to the same disclaimer and license as libpng-0.96, | ||
588 | with the following individuals added to the list of Contributing Authors: | ||
589 | |||
590 | Tom Lane | ||
591 | Glenn Randers-Pehrson | ||
592 | Willem van Schaik | ||
593 | |||
594 | libpng versions 0.89, June 1996, through 0.96, May 1997, are | ||
595 | Copyright (c) 1996, 1997 Andreas Dilger | ||
596 | Distributed according to the same disclaimer and license as libpng-0.88, | ||
597 | with the following individuals added to the list of Contributing Authors: | ||
598 | |||
599 | John Bowler | ||
600 | Kevin Bracey | ||
601 | Sam Bushell | ||
602 | Magnus Holmgren | ||
603 | Greg Roelofs | ||
604 | Tom Tanner | ||
605 | |||
606 | libpng versions 0.5, May 1995, through 0.88, January 1996, are | ||
607 | Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. | ||
608 | |||
609 | For the purposes of this copyright and license, "Contributing Authors" | ||
610 | is defined as the following set of individuals: | ||
611 | |||
612 | Andreas Dilger | ||
613 | Dave Martindale | ||
614 | Guy Eric Schalnat | ||
615 | Paul Schmidt | ||
616 | Tim Wegner | ||
617 | |||
618 | The PNG Reference Library is supplied "AS IS". The Contributing Authors | ||
619 | and Group 42, Inc. disclaim all warranties, expressed or implied, | ||
620 | including, without limitation, the warranties of merchantability and of | ||
621 | fitness for any purpose. The Contributing Authors and Group 42, Inc. | ||
622 | assume no liability for direct, indirect, incidental, special, exemplary, | ||
623 | or consequential damages, which may result from the use of the PNG | ||
624 | Reference Library, even if advised of the possibility of such damage. | ||
625 | |||
626 | Permission is hereby granted to use, copy, modify, and distribute this | ||
627 | source code, or portions hereof, for any purpose, without fee, subject | ||
628 | to the following restrictions: | ||
629 | |||
630 | 1. The origin of this source code must not be misrepresented. | ||
631 | |||
632 | 2. Altered versions must be plainly marked as such and | ||
633 | must not be misrepresented as being the original source. | ||
634 | |||
635 | 3. This Copyright notice may not be removed or altered from | ||
636 | any source or altered source distribution. | ||
637 | |||
638 | The Contributing Authors and Group 42, Inc. specifically permit, without | ||
639 | fee, and encourage the use of this source code as a component to | ||
640 | supporting the PNG file format in commercial products. If you use this | ||
641 | source code in a product, acknowledgment is not required but would be | ||
642 | appreciated. | ||
diff --git a/linden/indra/newview/licenses-mac.txt b/linden/indra/newview/licenses-mac.txt index 6fcf461..24539e5 100644 --- a/linden/indra/newview/licenses-mac.txt +++ b/linden/indra/newview/licenses-mac.txt | |||
@@ -432,3 +432,96 @@ jloup@gzip.org | |||
432 | 432 | ||
433 | Mark Adler | 433 | Mark Adler |
434 | madler@alumni.caltech.edu | 434 | madler@alumni.caltech.edu |
435 | |||
436 | ============== | ||
437 | libpng license | ||
438 | ============== | ||
439 | |||
440 | COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: | ||
441 | |||
442 | If you modify libpng you may insert additional notices immediately following | ||
443 | this sentence. | ||
444 | |||
445 | libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are | ||
446 | Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are | ||
447 | distributed according to the same disclaimer and license as libpng-1.2.5 | ||
448 | with the following individual added to the list of Contributing Authors: | ||
449 | |||
450 | Cosmin Truta | ||
451 | |||
452 | libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are | ||
453 | Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are | ||
454 | distributed according to the same disclaimer and license as libpng-1.0.6 | ||
455 | with the following individuals added to the list of Contributing Authors: | ||
456 | |||
457 | Simon-Pierre Cadieux | ||
458 | Eric S. Raymond | ||
459 | Gilles Vollant | ||
460 | |||
461 | and with the following additions to the disclaimer: | ||
462 | |||
463 | There is no warranty against interference with your enjoyment of the | ||
464 | library or against infringement. There is no warranty that our | ||
465 | efforts or the library will fulfill any of your particular purposes | ||
466 | or needs. This library is provided with all faults, and the entire | ||
467 | risk of satisfactory quality, performance, accuracy, and effort is with | ||
468 | the user. | ||
469 | |||
470 | libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are | ||
471 | Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are | ||
472 | distributed according to the same disclaimer and license as libpng-0.96, | ||
473 | with the following individuals added to the list of Contributing Authors: | ||
474 | |||
475 | Tom Lane | ||
476 | Glenn Randers-Pehrson | ||
477 | Willem van Schaik | ||
478 | |||
479 | libpng versions 0.89, June 1996, through 0.96, May 1997, are | ||
480 | Copyright (c) 1996, 1997 Andreas Dilger | ||
481 | Distributed according to the same disclaimer and license as libpng-0.88, | ||
482 | with the following individuals added to the list of Contributing Authors: | ||
483 | |||
484 | John Bowler | ||
485 | Kevin Bracey | ||
486 | Sam Bushell | ||
487 | Magnus Holmgren | ||
488 | Greg Roelofs | ||
489 | Tom Tanner | ||
490 | |||
491 | libpng versions 0.5, May 1995, through 0.88, January 1996, are | ||
492 | Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. | ||
493 | |||
494 | For the purposes of this copyright and license, "Contributing Authors" | ||
495 | is defined as the following set of individuals: | ||
496 | |||
497 | Andreas Dilger | ||
498 | Dave Martindale | ||
499 | Guy Eric Schalnat | ||
500 | Paul Schmidt | ||
501 | Tim Wegner | ||
502 | |||
503 | The PNG Reference Library is supplied "AS IS". The Contributing Authors | ||
504 | and Group 42, Inc. disclaim all warranties, expressed or implied, | ||
505 | including, without limitation, the warranties of merchantability and of | ||
506 | fitness for any purpose. The Contributing Authors and Group 42, Inc. | ||
507 | assume no liability for direct, indirect, incidental, special, exemplary, | ||
508 | or consequential damages, which may result from the use of the PNG | ||
509 | Reference Library, even if advised of the possibility of such damage. | ||
510 | |||
511 | Permission is hereby granted to use, copy, modify, and distribute this | ||
512 | source code, or portions hereof, for any purpose, without fee, subject | ||
513 | to the following restrictions: | ||
514 | |||
515 | 1. The origin of this source code must not be misrepresented. | ||
516 | |||
517 | 2. Altered versions must be plainly marked as such and | ||
518 | must not be misrepresented as being the original source. | ||
519 | |||
520 | 3. This Copyright notice may not be removed or altered from | ||
521 | any source or altered source distribution. | ||
522 | |||
523 | The Contributing Authors and Group 42, Inc. specifically permit, without | ||
524 | fee, and encourage the use of this source code as a component to | ||
525 | supporting the PNG file format in commercial products. If you use this | ||
526 | source code in a product, acknowledgment is not required but would be | ||
527 | appreciated. | ||
diff --git a/linden/indra/newview/licenses-win32.txt b/linden/indra/newview/licenses-win32.txt index 6fcf461..24539e5 100644 --- a/linden/indra/newview/licenses-win32.txt +++ b/linden/indra/newview/licenses-win32.txt | |||
@@ -432,3 +432,96 @@ jloup@gzip.org | |||
432 | 432 | ||
433 | Mark Adler | 433 | Mark Adler |
434 | madler@alumni.caltech.edu | 434 | madler@alumni.caltech.edu |
435 | |||
436 | ============== | ||
437 | libpng license | ||
438 | ============== | ||
439 | |||
440 | COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: | ||
441 | |||
442 | If you modify libpng you may insert additional notices immediately following | ||
443 | this sentence. | ||
444 | |||
445 | libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are | ||
446 | Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are | ||
447 | distributed according to the same disclaimer and license as libpng-1.2.5 | ||
448 | with the following individual added to the list of Contributing Authors: | ||
449 | |||
450 | Cosmin Truta | ||
451 | |||
452 | libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are | ||
453 | Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are | ||
454 | distributed according to the same disclaimer and license as libpng-1.0.6 | ||
455 | with the following individuals added to the list of Contributing Authors: | ||
456 | |||
457 | Simon-Pierre Cadieux | ||
458 | Eric S. Raymond | ||
459 | Gilles Vollant | ||
460 | |||
461 | and with the following additions to the disclaimer: | ||
462 | |||
463 | There is no warranty against interference with your enjoyment of the | ||
464 | library or against infringement. There is no warranty that our | ||
465 | efforts or the library will fulfill any of your particular purposes | ||
466 | or needs. This library is provided with all faults, and the entire | ||
467 | risk of satisfactory quality, performance, accuracy, and effort is with | ||
468 | the user. | ||
469 | |||
470 | libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are | ||
471 | Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are | ||
472 | distributed according to the same disclaimer and license as libpng-0.96, | ||
473 | with the following individuals added to the list of Contributing Authors: | ||
474 | |||
475 | Tom Lane | ||
476 | Glenn Randers-Pehrson | ||
477 | Willem van Schaik | ||
478 | |||
479 | libpng versions 0.89, June 1996, through 0.96, May 1997, are | ||
480 | Copyright (c) 1996, 1997 Andreas Dilger | ||
481 | Distributed according to the same disclaimer and license as libpng-0.88, | ||
482 | with the following individuals added to the list of Contributing Authors: | ||
483 | |||
484 | John Bowler | ||
485 | Kevin Bracey | ||
486 | Sam Bushell | ||
487 | Magnus Holmgren | ||
488 | Greg Roelofs | ||
489 | Tom Tanner | ||
490 | |||
491 | libpng versions 0.5, May 1995, through 0.88, January 1996, are | ||
492 | Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. | ||
493 | |||
494 | For the purposes of this copyright and license, "Contributing Authors" | ||
495 | is defined as the following set of individuals: | ||
496 | |||
497 | Andreas Dilger | ||
498 | Dave Martindale | ||
499 | Guy Eric Schalnat | ||
500 | Paul Schmidt | ||
501 | Tim Wegner | ||
502 | |||
503 | The PNG Reference Library is supplied "AS IS". The Contributing Authors | ||
504 | and Group 42, Inc. disclaim all warranties, expressed or implied, | ||
505 | including, without limitation, the warranties of merchantability and of | ||
506 | fitness for any purpose. The Contributing Authors and Group 42, Inc. | ||
507 | assume no liability for direct, indirect, incidental, special, exemplary, | ||
508 | or consequential damages, which may result from the use of the PNG | ||
509 | Reference Library, even if advised of the possibility of such damage. | ||
510 | |||
511 | Permission is hereby granted to use, copy, modify, and distribute this | ||
512 | source code, or portions hereof, for any purpose, without fee, subject | ||
513 | to the following restrictions: | ||
514 | |||
515 | 1. The origin of this source code must not be misrepresented. | ||
516 | |||
517 | 2. Altered versions must be plainly marked as such and | ||
518 | must not be misrepresented as being the original source. | ||
519 | |||
520 | 3. This Copyright notice may not be removed or altered from | ||
521 | any source or altered source distribution. | ||
522 | |||
523 | The Contributing Authors and Group 42, Inc. specifically permit, without | ||
524 | fee, and encourage the use of this source code as a component to | ||
525 | supporting the PNG file format in commercial products. If you use this | ||
526 | source code in a product, acknowledgment is not required but would be | ||
527 | appreciated. | ||
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 048aaf6..d77da88 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh | |||
@@ -38,7 +38,7 @@ export LL_GL_BASICEXT=x | |||
38 | ## you're building your own viewer, bear in mind that the executable | 38 | ## you're building your own viewer, bear in mind that the executable |
39 | ## in the bin directory will be stripped: you should replace it with | 39 | ## in the bin directory will be stripped: you should replace it with |
40 | ## an unstripped binary before you run. | 40 | ## an unstripped binary before you run. |
41 | #export LL_WRAPPER='valgrind --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp' | 41 | #export LL_WRAPPER='valgrind --smc-check=all --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp' |
42 | 42 | ||
43 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. | 43 | ## - Avoids an often-buggy X feature that doesn't really benefit us anyway. |
44 | export SDL_VIDEO_X11_DGAMOUSE=0 | 44 | export SDL_VIDEO_X11_DGAMOUSE=0 |
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 83b8c0c..150e35f 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp | |||
@@ -2019,11 +2019,6 @@ void LLAgent::setAFK() | |||
2019 | return; | 2019 | return; |
2020 | } | 2020 | } |
2021 | 2021 | ||
2022 | if (!gAllowAFK) | ||
2023 | { | ||
2024 | return; | ||
2025 | } | ||
2026 | |||
2027 | if (!gAgent.getRegion()) | 2022 | if (!gAgent.getRegion()) |
2028 | { | 2023 | { |
2029 | // Don't set AFK if we're not talking to a region yet. | 2024 | // Don't set AFK if we're not talking to a region yet. |
@@ -4983,7 +4978,7 @@ BOOL LLAgent::allowOperation(PermissionBit op, | |||
4983 | const LLPermissions& perm, | 4978 | const LLPermissions& perm, |
4984 | U64 group_proxy_power, | 4979 | U64 group_proxy_power, |
4985 | U8 god_minimum) | 4980 | U8 god_minimum) |
4986 | { | 4981 | { |
4987 | // Check god level. | 4982 | // Check god level. |
4988 | if (getGodLevel() >= god_minimum) return TRUE; | 4983 | if (getGodLevel() >= god_minimum) return TRUE; |
4989 | 4984 | ||
diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h index e375227..0ca9f22 100644 --- a/linden/indra/newview/llagent.h +++ b/linden/indra/newview/llagent.h | |||
@@ -240,7 +240,7 @@ public: | |||
240 | const LLUUID &getGroupID() const { return mGroupID; } | 240 | const LLUUID &getGroupID() const { return mGroupID; } |
241 | ECameraMode getCameraMode() const { return mCameraMode; } | 241 | ECameraMode getCameraMode() const { return mCameraMode; } |
242 | BOOL getFocusOnAvatar() const { return mFocusOnAvatar; } | 242 | BOOL getFocusOnAvatar() const { return mFocusOnAvatar; } |
243 | LLViewerObject* getFocusObject() const { return mFocusObject; } | 243 | LLPointer<LLViewerObject>& getFocusObject() { return mFocusObject; } |
244 | F32 getFocusObjectDist() const { return mFocusObjectDist; } | 244 | F32 getFocusObjectDist() const { return mFocusObjectDist; } |
245 | BOOL inPrelude(); | 245 | BOOL inPrelude(); |
246 | BOOL canManageEstate() const; | 246 | BOOL canManageEstate() const; |
diff --git a/linden/indra/newview/llassetuploadresponders.cpp b/linden/indra/newview/llassetuploadresponders.cpp index 789beaa..79faec1 100644 --- a/linden/indra/newview/llassetuploadresponders.cpp +++ b/linden/indra/newview/llassetuploadresponders.cpp | |||
@@ -122,7 +122,7 @@ void LLAssetUploadResponder::uploadUpload(const LLSD& content) | |||
122 | else | 122 | else |
123 | { | 123 | { |
124 | LLHTTPClient::postFile(uploader, mFileName, this); | 124 | LLHTTPClient::postFile(uploader, mFileName, this); |
125 | } | 125 | } |
126 | } | 126 | } |
127 | 127 | ||
128 | void LLAssetUploadResponder::uploadFailure(const LLSD& content) | 128 | void LLAssetUploadResponder::uploadFailure(const LLSD& content) |
diff --git a/linden/indra/newview/llcape.h b/linden/indra/newview/llcape.h index 64cf2c4..1ccdc9c 100644 --- a/linden/indra/newview/llcape.h +++ b/linden/indra/newview/llcape.h | |||
@@ -211,7 +211,7 @@ class LLVOCloth : public LLViewerObject | |||
211 | //-------------------------------------- | 211 | //-------------------------------------- |
212 | LLClothAttributes mAttributes; // these determine the characteristics of the cloth | 212 | LLClothAttributes mAttributes; // these determine the characteristics of the cloth |
213 | LLVector3 mAvatarCollisionSpherePosition; // derived from the avatar | 213 | LLVector3 mAvatarCollisionSpherePosition; // derived from the avatar |
214 | LLViewerObject* mDummyVO [ CLOTH_MAX_STRANDS ]; | 214 | LLPointer<LLViewerObject> mDummyVO [ CLOTH_MAX_STRANDS ]; |
215 | LLVolumeImplFlexible* mStrand [ CLOTH_MAX_STRANDS ]; // the array of strands that make up the cloth | 215 | LLVolumeImplFlexible* mStrand [ CLOTH_MAX_STRANDS ]; // the array of strands that make up the cloth |
216 | 216 | ||
217 | 217 | ||
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp index 539c935..66ffdc4 100644 --- a/linden/indra/newview/llchatbar.cpp +++ b/linden/indra/newview/llchatbar.cpp | |||
@@ -447,7 +447,7 @@ void LLChatBar::sendChat( EChatType type ) | |||
447 | if (!text.empty()) | 447 | if (!text.empty()) |
448 | { | 448 | { |
449 | // store sent line in history, duplicates will get filtered | 449 | // store sent line in history, duplicates will get filtered |
450 | mInputEditor->updateHistory(); | 450 | if (mInputEditor) mInputEditor->updateHistory(); |
451 | // Check if this is destined for another channel | 451 | // Check if this is destined for another channel |
452 | S32 channel = 0; | 452 | S32 channel = 0; |
453 | stripChannelNumber(text, &channel); | 453 | stripChannelNumber(text, &channel); |
diff --git a/linden/indra/newview/llcontroldef.cpp b/linden/indra/newview/llcontroldef.cpp index 2b394e9..7481d99 100644 --- a/linden/indra/newview/llcontroldef.cpp +++ b/linden/indra/newview/llcontroldef.cpp | |||
@@ -61,6 +61,7 @@ void declare_settings() | |||
61 | gSavedSettings.declareColor4("SystemChatColor", LLColor4(0.8f, 1.f, 1.f, 1.f), "Color of chat messages from SL System"); | 61 | gSavedSettings.declareColor4("SystemChatColor", LLColor4(0.8f, 1.f, 1.f, 1.f), "Color of chat messages from SL System"); |
62 | gSavedSettings.declareColor4("AgentChatColor", LLColor4(1.0f, 1.0f, 1.0f, 1.0f), "Color of chat messages from other residents"); | 62 | gSavedSettings.declareColor4("AgentChatColor", LLColor4(1.0f, 1.0f, 1.0f, 1.0f), "Color of chat messages from other residents"); |
63 | gSavedSettings.declareColor4("ObjectChatColor", LLColor4(0.7f, 0.9f, 0.7f, 1.0f), "Color of chat messages from objects"); | 63 | gSavedSettings.declareColor4("ObjectChatColor", LLColor4(0.7f, 0.9f, 0.7f, 1.0f), "Color of chat messages from objects"); |
64 | gSavedSettings.declareColor4("llOwnerSayChatColor", LLColor4(0.7f, 0.0f, 0.7f, 1.0f), "Color of chat messages from objects only visible to the owner"); | ||
64 | gSavedSettings.declareColor4("BackgroundChatColor", LLColor4(0.f, 0.f, 0.f, 1.0f), "Color of chat bubble background"); | 65 | gSavedSettings.declareColor4("BackgroundChatColor", LLColor4(0.f, 0.f, 0.f, 1.0f), "Color of chat bubble background"); |
65 | gSavedSettings.declareColor4("ScriptErrorColor", LLColor4(0.82f, 0.82f, 0.99f, 1.0f), "Color of script error messages"); | 66 | gSavedSettings.declareColor4("ScriptErrorColor", LLColor4(0.82f, 0.82f, 0.99f, 1.0f), "Color of script error messages"); |
66 | gSavedSettings.declareColor4("HTMLLinkColor", LLColor4(0.6f, 0.6f, 1.0f, 1.0f), "Color of hyperlinks"); | 67 | gSavedSettings.declareColor4("HTMLLinkColor", LLColor4(0.6f, 0.6f, 1.0f, 1.0f), "Color of hyperlinks"); |
@@ -228,7 +229,7 @@ void declare_settings() | |||
228 | gSavedSettings.declareBOOL("UseChatBubbles", FALSE, "Show chat above avatars head in chat bubbles"); | 229 | gSavedSettings.declareBOOL("UseChatBubbles", FALSE, "Show chat above avatars head in chat bubbles"); |
229 | gSavedSettings.declareF32("ChatBubbleOpacity", 0.5f, "Opacity of chat bubble background (0.0 = completely transparent, 1.0 = completely opaque)"); | 230 | gSavedSettings.declareF32("ChatBubbleOpacity", 0.5f, "Opacity of chat bubble background (0.0 = completely transparent, 1.0 = completely opaque)"); |
230 | 231 | ||
231 | gSavedSettings.declareBOOL("AllowAFK", TRUE, "Automatically set AFK (away from keyboard) mode when idle"); | 232 | gSavedSettings.declareBOOL("AllowIdleAFK", TRUE, "Automatically set AFK (away from keyboard) mode when idle"); |
232 | gSavedSettings.declareF32("AFKTimeout", 300.f, "Time before automatically setting AFK (away from keyboard) mode (seconds)"); // 5 minutes | 233 | gSavedSettings.declareF32("AFKTimeout", 300.f, "Time before automatically setting AFK (away from keyboard) mode (seconds)"); // 5 minutes |
233 | 234 | ||
234 | gSavedSettings.declareBOOL("SmallAvatarNames", TRUE, "Display avatar name text in smaller font"); | 235 | gSavedSettings.declareBOOL("SmallAvatarNames", TRUE, "Display avatar name text in smaller font"); |
@@ -237,6 +238,13 @@ void declare_settings() | |||
237 | gSavedSettings.declareBOOL("ChatShowTimestamps", TRUE, "Show timestamps in chat"); | 238 | gSavedSettings.declareBOOL("ChatShowTimestamps", TRUE, "Show timestamps in chat"); |
238 | 239 | ||
239 | //------------------------------------------------------------------------ | 240 | //------------------------------------------------------------------------ |
241 | // Caution Script Permission Prompts | ||
242 | //------------------------------------------------------------------------ | ||
243 | |||
244 | gSavedSettings.declareBOOL("PermissionsCautionEnabled", TRUE, "When enabled, changes the handling of script permission requests to help avoid accidental granting of certain permissions, such as the debit permission", NO_PERSIST); | ||
245 | gSavedSettings.declareS32("PermissionsCautionNotifyBoxHeight", 344, "Height of caution-style notification messages", NO_PERSIST); | ||
246 | |||
247 | //------------------------------------------------------------------------ | ||
240 | // Other.... | 248 | // Other.... |
241 | //------------------------------------------------------------------------ | 249 | //------------------------------------------------------------------------ |
242 | 250 | ||
@@ -624,8 +632,10 @@ void declare_settings() | |||
624 | LLFirstUse::addConfigVariable("FirstInventory"); | 632 | LLFirstUse::addConfigVariable("FirstInventory"); |
625 | LLFirstUse::addConfigVariable("FirstSandbox"); | 633 | LLFirstUse::addConfigVariable("FirstSandbox"); |
626 | LLFirstUse::addConfigVariable("FirstFlexible"); | 634 | LLFirstUse::addConfigVariable("FirstFlexible"); |
635 | LLFirstUse::addConfigVariable("FirstDebugMenus"); | ||
627 | LLFirstUse::addConfigVariable("FirstStreamingMusic"); | 636 | LLFirstUse::addConfigVariable("FirstStreamingMusic"); |
628 | LLFirstUse::addConfigVariable("FirstStreamingVideo"); | 637 | LLFirstUse::addConfigVariable("FirstStreamingVideo"); |
638 | LLFirstUse::addConfigVariable("FirstSculptedPrim"); | ||
629 | 639 | ||
630 | gSavedSettings.declareBOOL("ShowDebugConsole", FALSE, "Show log in SL window"); | 640 | gSavedSettings.declareBOOL("ShowDebugConsole", FALSE, "Show log in SL window"); |
631 | gSavedSettings.declareBOOL("ShowDebugStats", FALSE, "Show performance stats display"); | 641 | gSavedSettings.declareBOOL("ShowDebugStats", FALSE, "Show performance stats display"); |
@@ -826,6 +836,10 @@ void declare_settings() | |||
826 | gSavedPerAccountSettings.declareBOOL("LogInstantMessages", FALSE, "Log Instant Messages"); | 836 | gSavedPerAccountSettings.declareBOOL("LogInstantMessages", FALSE, "Log Instant Messages"); |
827 | gSavedPerAccountSettings.declareBOOL("LogChat", FALSE, "Log Chat"); | 837 | gSavedPerAccountSettings.declareBOOL("LogChat", FALSE, "Log Chat"); |
828 | gSavedPerAccountSettings.declareBOOL("LogShowHistory", FALSE, "Log Show History"); | 838 | gSavedPerAccountSettings.declareBOOL("LogShowHistory", FALSE, "Log Show History"); |
839 | gSavedPerAccountSettings.declareBOOL("IMLogTimestamp", FALSE, "Log Timestamp of Instant Messages"); | ||
840 | gSavedPerAccountSettings.declareBOOL("LogChatTimestamp", FALSE, "Log Timestamp of Chat"); | ||
841 | gSavedPerAccountSettings.declareBOOL("LogChatIM", FALSE, "Log Incoming Instant Messages with Chat"); | ||
842 | gSavedPerAccountSettings.declareBOOL("LogTimestampDate", FALSE, "Include Date with Timestamp"); | ||
829 | 843 | ||
830 | // Inventory | 844 | // Inventory |
831 | gSavedSettings.declareRect("FloaterInventoryRect", LLRect(0, 400, 300, 0), "Rectangle for inventory window" ); | 845 | gSavedSettings.declareRect("FloaterInventoryRect", LLRect(0, 400, 300, 0), "Rectangle for inventory window" ); |
@@ -973,7 +987,7 @@ void declare_settings() | |||
973 | gSavedSettings.declareU32("RegionTextureSize", 256, "Terrain texture dimensions (power of 2)"); | 987 | gSavedSettings.declareU32("RegionTextureSize", 256, "Terrain texture dimensions (power of 2)"); |
974 | 988 | ||
975 | // Selection option | 989 | // Selection option |
976 | gSavedSettings.declareBOOL("SelectLinkedSet", TRUE, "", NO_PERSIST); | 990 | gSavedSettings.declareBOOL("EditLinkedParts", FALSE, "Select individual parts of linked objects", NO_PERSIST); |
977 | 991 | ||
978 | // Selection beam | 992 | // Selection beam |
979 | gSavedSettings.declareBOOL("ShowSelectionBeam", TRUE, "Show selection particle beam when selecting or interacting with objects."); | 993 | gSavedSettings.declareBOOL("ShowSelectionBeam", TRUE, "Show selection particle beam when selecting or interacting with objects."); |
diff --git a/linden/indra/newview/lldebugmessagebox.cpp b/linden/indra/newview/lldebugmessagebox.cpp index e238800..948b96a 100644 --- a/linden/indra/newview/lldebugmessagebox.cpp +++ b/linden/indra/newview/lldebugmessagebox.cpp | |||
@@ -77,6 +77,9 @@ LLDebugVarMessageBox::LLDebugVarMessageBox(const std::string& title, EDebugVarTy | |||
77 | addChild(mSlider2); | 77 | addChild(mSlider2); |
78 | addChild(mSlider3); | 78 | addChild(mSlider3); |
79 | break; | 79 | break; |
80 | default: | ||
81 | llwarns << "Unhandled var type " << var_type << llendl; | ||
82 | break; | ||
80 | } | 83 | } |
81 | 84 | ||
82 | mAnimateButton = new LLButton("Animate", LLRect(20, 45, 180, 25), "", onAnimateClicked, this); | 85 | mAnimateButton = new LLButton("Animate", LLRect(20, 45, 180, 25), "", onAnimateClicked, this); |
@@ -185,12 +188,17 @@ void LLDebugVarMessageBox::slider_changed(LLUICtrl* ctrl, void* user_data) | |||
185 | *((S32*)msg_box->mVarData) = (S32)msg_box->mSlider1->getValue().asInteger(); | 188 | *((S32*)msg_box->mVarData) = (S32)msg_box->mSlider1->getValue().asInteger(); |
186 | break; | 189 | break; |
187 | case VAR_TYPE_VEC3: | 190 | case VAR_TYPE_VEC3: |
191 | { | ||
188 | LLVector3* vec_p = (LLVector3*)msg_box->mVarData; | 192 | LLVector3* vec_p = (LLVector3*)msg_box->mVarData; |
189 | vec_p->setVec((F32)msg_box->mSlider1->getValue().asReal(), | 193 | vec_p->setVec((F32)msg_box->mSlider1->getValue().asReal(), |
190 | (F32)msg_box->mSlider2->getValue().asReal(), | 194 | (F32)msg_box->mSlider2->getValue().asReal(), |
191 | (F32)msg_box->mSlider3->getValue().asReal()); | 195 | (F32)msg_box->mSlider3->getValue().asReal()); |
192 | break; | 196 | break; |
193 | } | 197 | } |
198 | default: | ||
199 | llwarns << "Unhandled var type " << msg_box->mVarType << llendl; | ||
200 | break; | ||
201 | } | ||
194 | } | 202 | } |
195 | 203 | ||
196 | void LLDebugVarMessageBox::onAnimateClicked(void* user_data) | 204 | void LLDebugVarMessageBox::onAnimateClicked(void* user_data) |
@@ -217,10 +225,15 @@ void LLDebugVarMessageBox::draw() | |||
217 | snprintf(text, sizeof(text), "%d", *((S32*)mVarData)); /* Flawfinder: ignore */ | 225 | snprintf(text, sizeof(text), "%d", *((S32*)mVarData)); /* Flawfinder: ignore */ |
218 | break; | 226 | break; |
219 | case VAR_TYPE_VEC3: | 227 | case VAR_TYPE_VEC3: |
228 | { | ||
220 | LLVector3* vec_p = (LLVector3*)mVarData; | 229 | LLVector3* vec_p = (LLVector3*)mVarData; |
221 | snprintf(text, sizeof(text), "%.3f %.3f %.3f", vec_p->mV[VX], vec_p->mV[VY], vec_p->mV[VZ]); /* Flawfinder: ignore */ | 230 | snprintf(text, sizeof(text), "%.3f %.3f %.3f", vec_p->mV[VX], vec_p->mV[VY], vec_p->mV[VZ]); /* Flawfinder: ignore */ |
222 | break; | 231 | break; |
223 | } | 232 | } |
233 | default: | ||
234 | llwarns << "Unhandled var type " << mVarType << llendl; | ||
235 | break; | ||
236 | } | ||
224 | mText->setText(text); | 237 | mText->setText(text); |
225 | 238 | ||
226 | if(mAnimate) | 239 | if(mAnimate) |
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index a39416c..f5f69ea 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp | |||
@@ -1324,7 +1324,7 @@ void LLSpatialBridge::setVisible(LLCamera& camera_in, std::vector<LLDrawable*>* | |||
1324 | 1324 | ||
1325 | if (parent) | 1325 | if (parent) |
1326 | { | 1326 | { |
1327 | av = (LLVOAvatar*) parent->getVObj(); | 1327 | av = (LLVOAvatar*) parent->getVObj().get(); |
1328 | 1328 | ||
1329 | if (!av->isVisible()) | 1329 | if (!av->isVisible()) |
1330 | { | 1330 | { |
diff --git a/linden/indra/newview/lldrawable.h b/linden/indra/newview/lldrawable.h index 7429292..97e512f 100644 --- a/linden/indra/newview/lldrawable.h +++ b/linden/indra/newview/lldrawable.h | |||
@@ -82,8 +82,8 @@ public: | |||
82 | 82 | ||
83 | const LLViewerRegion* getRegion() const { return mVObjp->getRegion(); } | 83 | const LLViewerRegion* getRegion() const { return mVObjp->getRegion(); } |
84 | const LLTextureEntry* getTextureEntry(U8 which) const { return mVObjp->getTE(which); } | 84 | const LLTextureEntry* getTextureEntry(U8 which) const { return mVObjp->getTE(which); } |
85 | LLViewerObject* getVObj() { return mVObjp; } | 85 | LLPointer<LLViewerObject>& getVObj() { return mVObjp; } |
86 | const LLViewerObject* getVObj() const { return mVObjp; } | 86 | const LLViewerObject *getVObj() const { return mVObjp; } |
87 | LLVOVolume* getVOVolume() const; // cast mVObjp tp LLVOVolume if OK | 87 | LLVOVolume* getVOVolume() const; // cast mVObjp tp LLVOVolume if OK |
88 | 88 | ||
89 | const LLMatrix4& getWorldMatrix() const { return mXform.getWorldMatrix(); } | 89 | const LLMatrix4& getWorldMatrix() const { return mXform.getWorldMatrix(); } |
diff --git a/linden/indra/newview/lldrawpool.cpp b/linden/indra/newview/lldrawpool.cpp index 4a1794e..0ab5b54 100644 --- a/linden/indra/newview/lldrawpool.cpp +++ b/linden/indra/newview/lldrawpool.cpp | |||
@@ -486,15 +486,20 @@ void LLRenderPass::renderInvisible(U32 mask) | |||
486 | 486 | ||
487 | std::vector<LLDrawInfo*>& draw_info = gPipeline.mRenderMap[LLRenderPass::PASS_INVISIBLE]; | 487 | std::vector<LLDrawInfo*>& draw_info = gPipeline.mRenderMap[LLRenderPass::PASS_INVISIBLE]; |
488 | 488 | ||
489 | U32* indices_pointer = NULL; | ||
490 | for (std::vector<LLDrawInfo*>::iterator i = draw_info.begin(); i != draw_info.end(); ++i) | 489 | for (std::vector<LLDrawInfo*>::iterator i = draw_info.begin(); i != draw_info.end(); ++i) |
491 | { | 490 | { |
492 | LLDrawInfo& params = **i; | 491 | LLDrawInfo& params = **i; |
493 | params.mVertexBuffer->setBuffer(mask); | 492 | |
494 | indices_pointer = (U32*) params.mVertexBuffer->getIndicesPointer(); | 493 | if (params.mVertexBuffer) |
495 | glDrawRangeElements(GL_TRIANGLES, params.mStart, params.mEnd, params.mCount, | 494 | { |
496 | GL_UNSIGNED_INT, indices_pointer+params.mOffset); | 495 | params.mVertexBuffer->setBuffer(mask); |
497 | gPipeline.mTrianglesDrawn += params.mCount/3; | 496 | U32 *indices_pointer = |
497 | (U32 *) params.mVertexBuffer->getIndicesPointer(); | ||
498 | glDrawRangeElements(GL_TRIANGLES, params.mStart, params.mEnd, | ||
499 | params.mCount, GL_UNSIGNED_INT, | ||
500 | indices_pointer + params.mOffset); | ||
501 | gPipeline.mTrianglesDrawn += params.mCount / 3; | ||
502 | } | ||
498 | } | 503 | } |
499 | } | 504 | } |
500 | 505 | ||
diff --git a/linden/indra/newview/lldrawpoolavatar.cpp b/linden/indra/newview/lldrawpoolavatar.cpp index b864449..ae76aeb 100644 --- a/linden/indra/newview/lldrawpoolavatar.cpp +++ b/linden/indra/newview/lldrawpoolavatar.cpp | |||
@@ -319,7 +319,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass) | |||
319 | { | 319 | { |
320 | return; | 320 | return; |
321 | } | 321 | } |
322 | avatarp = (LLVOAvatar *)(facep->getDrawable()->getVObj()); | 322 | avatarp = (LLVOAvatar *)facep->getDrawable()->getVObj().get(); |
323 | } | 323 | } |
324 | 324 | ||
325 | if (avatarp->isDead() || avatarp->mDrawable.isNull()) | 325 | if (avatarp->isDead() || avatarp->mDrawable.isNull()) |
@@ -525,7 +525,7 @@ void LLDrawPoolAvatar::renderForSelect() | |||
525 | { | 525 | { |
526 | return; | 526 | return; |
527 | } | 527 | } |
528 | LLVOAvatar *avatarp = (LLVOAvatar *)(facep->getDrawable()->getVObj()); | 528 | LLVOAvatar *avatarp = (LLVOAvatar *)facep->getDrawable()->getVObj().get(); |
529 | 529 | ||
530 | if (avatarp->isDead() || avatarp->mIsDummy || avatarp->mDrawable.isNull()) | 530 | if (avatarp->isDead() || avatarp->mIsDummy || avatarp->mDrawable.isNull()) |
531 | { | 531 | { |
diff --git a/linden/indra/newview/lldrawpooltree.cpp b/linden/indra/newview/lldrawpooltree.cpp index 2f380f8..6749178 100644 --- a/linden/indra/newview/lldrawpooltree.cpp +++ b/linden/indra/newview/lldrawpooltree.cpp | |||
@@ -164,7 +164,7 @@ void LLDrawPoolTree::renderTree(BOOL selecting) | |||
164 | U32* indicesp = (U32*) face->mVertexBuffer->getIndicesPointer(); | 164 | U32* indicesp = (U32*) face->mVertexBuffer->getIndicesPointer(); |
165 | 165 | ||
166 | // Render each of the trees | 166 | // Render each of the trees |
167 | LLVOTree *treep = (LLVOTree *)drawablep->getVObj(); | 167 | LLVOTree *treep = (LLVOTree *)drawablep->getVObj().get(); |
168 | 168 | ||
169 | LLColor4U color(255,255,255,255); | 169 | LLColor4U color(255,255,255,255); |
170 | 170 | ||
diff --git a/linden/indra/newview/lldriverparam.h b/linden/indra/newview/lldriverparam.h index e96d5ce..f7b0819 100644 --- a/linden/indra/newview/lldriverparam.h +++ b/linden/indra/newview/lldriverparam.h | |||
@@ -104,7 +104,7 @@ protected: | |||
104 | typedef std::vector<LLDrivenEntry> entry_list_t; | 104 | typedef std::vector<LLDrivenEntry> entry_list_t; |
105 | entry_list_t mDriven; | 105 | entry_list_t mDriven; |
106 | LLViewerVisualParam* mCurrentDistortionParam; | 106 | LLViewerVisualParam* mCurrentDistortionParam; |
107 | LLVOAvatar* mAvatarp; | 107 | LLPointer<LLVOAvatar> mAvatarp; |
108 | }; | 108 | }; |
109 | 109 | ||
110 | #endif // LL_LLDRIVERPARAM_H | 110 | #endif // LL_LLDRIVERPARAM_H |
diff --git a/linden/indra/newview/lleventpoll.cpp b/linden/indra/newview/lleventpoll.cpp index 7430fc3..dd59a06 100644 --- a/linden/indra/newview/lleventpoll.cpp +++ b/linden/indra/newview/lleventpoll.cpp | |||
@@ -1,8 +1,8 @@ | |||
1 | /** | 1 | /** |
2 | * @file lleventpoll.cpp | 2 | * @file lleventpoll.cpp |
3 | * @brief Implementation of the LLEventPoll class. | 3 | * @brief Implementation of the LLEventPoll class. |
4 | * | 4 | * |
5 | * Copyright (c) 2006-2007, Linden Research, Inc. | 5 | * Copyright (c) 2006-2007, Linden Research, Inc. |
6 | * | 6 | * |
7 | * Second Life Viewer Source Code | 7 | * Second Life Viewer Source Code |
8 | * The source code in this file ("Source Code") is provided by Linden Lab | 8 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index 342c76e..782048c 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp | |||
@@ -1398,7 +1398,7 @@ void LLFace::enableLights() const | |||
1398 | } | 1398 | } |
1399 | if (isState(LIGHT)) | 1399 | if (isState(LIGHT)) |
1400 | { | 1400 | { |
1401 | const LLVOVolume* vovolume = (const LLVOVolume*)(mDrawablep->getVObj()); | 1401 | const LLVOVolume* vovolume = (const LLVOVolume*)mDrawablep->getVObj(); |
1402 | gPipeline.setAmbient(vovolume->getLightColor()); | 1402 | gPipeline.setAmbient(vovolume->getLightColor()); |
1403 | } | 1403 | } |
1404 | } | 1404 | } |
diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp index 24d3932..3620c05 100644 --- a/linden/indra/newview/llfilepicker.cpp +++ b/linden/indra/newview/llfilepicker.cpp | |||
@@ -49,7 +49,7 @@ LLFilePicker LLFilePicker::sInstance; | |||
49 | 49 | ||
50 | #if LL_WINDOWS | 50 | #if LL_WINDOWS |
51 | #define SOUND_FILTER L"Sounds (*.wav)\0*.wav\0" | 51 | #define SOUND_FILTER L"Sounds (*.wav)\0*.wav\0" |
52 | #define IMAGE_FILTER L"Images (*.tga; *.bmp; *.jpg; *.jpeg)\0*.tga;*.bmp;*.jpg;*.jpeg\0" | 52 | #define IMAGE_FILTER L"Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png)\0*.tga;*.bmp;*.jpg;*.jpeg;*.png\0" |
53 | #define ANIM_FILTER L"Animations (*.bvh)\0*.bvh\0" | 53 | #define ANIM_FILTER L"Animations (*.bvh)\0*.bvh\0" |
54 | #ifdef _CORY_TESTING | 54 | #ifdef _CORY_TESTING |
55 | #define GEOMETRY_FILTER L"SL Geometry (*.slg)\0*.slg\0" | 55 | #define GEOMETRY_FILTER L"SL Geometry (*.slg)\0*.slg\0" |
@@ -511,10 +511,12 @@ Boolean LLFilePicker::navOpenFilterProc(AEDesc *theItem, void *info, void *callB | |||
511 | if (fileInfo.filetype != 'JPEG' && fileInfo.filetype != 'JPG ' && | 511 | if (fileInfo.filetype != 'JPEG' && fileInfo.filetype != 'JPG ' && |
512 | fileInfo.filetype != 'BMP ' && fileInfo.filetype != 'TGA ' && | 512 | fileInfo.filetype != 'BMP ' && fileInfo.filetype != 'TGA ' && |
513 | fileInfo.filetype != 'BMPf' && fileInfo.filetype != 'TPIC' && | 513 | fileInfo.filetype != 'BMPf' && fileInfo.filetype != 'TPIC' && |
514 | fileInfo.filetype != 'PNG ' && | ||
514 | (fileInfo.extension && (CFStringCompare(fileInfo.extension, CFSTR("jpeg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && | 515 | (fileInfo.extension && (CFStringCompare(fileInfo.extension, CFSTR("jpeg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && |
515 | CFStringCompare(fileInfo.extension, CFSTR("jpg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && | 516 | CFStringCompare(fileInfo.extension, CFSTR("jpg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && |
516 | CFStringCompare(fileInfo.extension, CFSTR("bmp"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && | 517 | CFStringCompare(fileInfo.extension, CFSTR("bmp"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && |
517 | CFStringCompare(fileInfo.extension, CFSTR("tga"), kCFCompareCaseInsensitive) != kCFCompareEqualTo)) | 518 | CFStringCompare(fileInfo.extension, CFSTR("tga"), kCFCompareCaseInsensitive) != kCFCompareEqualTo && |
519 | CFStringCompare(fileInfo.extension, CFSTR("png"), kCFCompareCaseInsensitive) != kCFCompareEqualTo)) | ||
518 | ) | 520 | ) |
519 | { | 521 | { |
520 | result = false; | 522 | result = false; |
@@ -1169,7 +1171,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter ) | |||
1169 | case FFLOAD_ANIM: | 1171 | case FFLOAD_ANIM: |
1170 | caption += "Animations (*.bvh)"; break; | 1172 | caption += "Animations (*.bvh)"; break; |
1171 | case FFLOAD_IMAGE: | 1173 | case FFLOAD_IMAGE: |
1172 | caption += "Images (*.tga; *.bmp; *.jpg; *.jpeg)"; break; | 1174 | caption += "Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png)"; break; |
1173 | default:; | 1175 | default:; |
1174 | break; | 1176 | break; |
1175 | } | 1177 | } |
diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp index 74381dc..1ddac8e 100644 --- a/linden/indra/newview/llfirstuse.cpp +++ b/linden/indra/newview/llfirstuse.cpp | |||
@@ -60,6 +60,18 @@ void LLFirstUse::disableFirstUse() | |||
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | // static | ||
64 | void LLFirstUse::resetFirstUse() | ||
65 | { | ||
66 | // Set all first-use warnings to disabled | ||
67 | for (std::set<LLString>::iterator iter = sConfigVariables.begin(); | ||
68 | iter != sConfigVariables.end(); ++iter) | ||
69 | { | ||
70 | gSavedSettings.setWarning(*iter, TRUE); | ||
71 | } | ||
72 | } | ||
73 | |||
74 | |||
63 | // Called whenever the viewer detects that your balance went up | 75 | // Called whenever the viewer detects that your balance went up |
64 | void LLFirstUse::useBalanceIncrease(S32 delta) | 76 | void LLFirstUse::useBalanceIncrease(S32 delta) |
65 | { | 77 | { |
@@ -214,3 +226,25 @@ void LLFirstUse::useFlexible() | |||
214 | } | 226 | } |
215 | } | 227 | } |
216 | 228 | ||
229 | // static | ||
230 | void LLFirstUse::useDebugMenus() | ||
231 | { | ||
232 | if (gSavedSettings.getWarning("FirstDebugMenus")) | ||
233 | { | ||
234 | gSavedSettings.setWarning("FirstDebugMenus", FALSE); | ||
235 | |||
236 | LLNotifyBox::showXml("FirstDebugMenus"); | ||
237 | } | ||
238 | } | ||
239 | |||
240 | // static | ||
241 | void LLFirstUse::useSculptedPrim() | ||
242 | { | ||
243 | if (gSavedSettings.getWarning("FirstSculptedPrim")) | ||
244 | { | ||
245 | gSavedSettings.setWarning("FirstSculptedPrim", FALSE); | ||
246 | |||
247 | LLNotifyBox::showXml("FirstSculptedPrim"); | ||
248 | |||
249 | } | ||
250 | } | ||
diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h index 4d0e754..d48ae96 100644 --- a/linden/indra/newview/llfirstuse.h +++ b/linden/indra/newview/llfirstuse.h | |||
@@ -66,6 +66,10 @@ object or from inventory. | |||
66 | 11. FIrst time you run the client on a system without QuickTime installed. | 66 | 11. FIrst time you run the client on a system without QuickTime installed. |
67 | 67 | ||
68 | 12. First time you create a flexible object. | 68 | 12. First time you create a flexible object. |
69 | |||
70 | 13. First time you open the debug menus (ctrl-alt-shift D) | ||
71 | |||
72 | 14. First time you create/edit a sculpted prim. | ||
69 | */ | 73 | */ |
70 | 74 | ||
71 | class LLFirstUse | 75 | class LLFirstUse |
@@ -76,6 +80,7 @@ public: | |||
76 | 80 | ||
77 | // Sets all controls back to show the dialogs. | 81 | // Sets all controls back to show the dialogs. |
78 | static void disableFirstUse(); | 82 | static void disableFirstUse(); |
83 | static void resetFirstUse(); | ||
79 | 84 | ||
80 | // These methods are called each time the appropriate action is | 85 | // These methods are called each time the appropriate action is |
81 | // taken. The functions themselves handle only showing the dialog | 86 | // taken. The functions themselves handle only showing the dialog |
@@ -94,6 +99,8 @@ public: | |||
94 | static void useInventory(); | 99 | static void useInventory(); |
95 | static void useSandbox(); | 100 | static void useSandbox(); |
96 | static void useFlexible(); | 101 | static void useFlexible(); |
102 | static void useDebugMenus(); | ||
103 | static void useSculptedPrim(); | ||
97 | 104 | ||
98 | protected: | 105 | protected: |
99 | static std::set<LLString> sConfigVariables; | 106 | static std::set<LLString> sConfigVariables; |
diff --git a/linden/indra/newview/llflexibleobject.cpp b/linden/indra/newview/llflexibleobject.cpp index 0dce348..8e4fe91 100644 --- a/linden/indra/newview/llflexibleobject.cpp +++ b/linden/indra/newview/llflexibleobject.cpp | |||
@@ -252,12 +252,6 @@ void LLVolumeImplFlexible::onSetVolume(const LLVolumeParams &volume_params, cons | |||
252 | //--------------------------------------------------------------------------------- | 252 | //--------------------------------------------------------------------------------- |
253 | BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) | 253 | BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) |
254 | { | 254 | { |
255 | if (!gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE)) | ||
256 | { | ||
257 | return FALSE; // (we are not initialized or updated) | ||
258 | } | ||
259 | |||
260 | LLFastTimer ftm(LLFastTimer::FTM_FLEXIBLE_UPDATE); | ||
261 | 255 | ||
262 | if (mVO->mDrawable.isNull()) | 256 | if (mVO->mDrawable.isNull()) |
263 | { | 257 | { |
@@ -272,6 +266,8 @@ BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F6 | |||
272 | LLViewerObject* parent = (LLViewerObject*) mVO->getParent(); | 266 | LLViewerObject* parent = (LLViewerObject*) mVO->getParent(); |
273 | parent->mDrawable->mQuietCount = 0; | 267 | parent->mDrawable->mQuietCount = 0; |
274 | } | 268 | } |
269 | |||
270 | LLFastTimer ftm(LLFastTimer::FTM_FLEXIBLE_UPDATE); | ||
275 | 271 | ||
276 | S32 new_res = mAttributes->getSimulateLOD(); | 272 | S32 new_res = mAttributes->getSimulateLOD(); |
277 | 273 | ||
@@ -284,6 +280,8 @@ BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F6 | |||
284 | { | 280 | { |
285 | mRenderRes = FLEXIBLE_OBJECT_MAX_SECTIONS; | 281 | mRenderRes = FLEXIBLE_OBJECT_MAX_SECTIONS; |
286 | } | 282 | } |
283 | |||
284 | |||
287 | // Bottom cap at 1/4 the original number of sections | 285 | // Bottom cap at 1/4 the original number of sections |
288 | if (mRenderRes < mAttributes->getSimulateLOD()-1) | 286 | if (mRenderRes < mAttributes->getSimulateLOD()-1) |
289 | { | 287 | { |
@@ -301,6 +299,10 @@ BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F6 | |||
301 | setAttributesOfAllSections(); | 299 | setAttributesOfAllSections(); |
302 | mInitialized = TRUE; | 300 | mInitialized = TRUE; |
303 | } | 301 | } |
302 | if (!gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE)) | ||
303 | { | ||
304 | return FALSE; // (we are not initialized or updated) | ||
305 | } | ||
304 | 306 | ||
305 | if (mVO->mDrawable->isVisible() && | 307 | if (mVO->mDrawable->isVisible() && |
306 | !mVO->mDrawable->isState(LLDrawable::IN_REBUILD_Q1) && | 308 | !mVO->mDrawable->isState(LLDrawable::IN_REBUILD_Q1) && |
@@ -624,7 +626,7 @@ void LLVolumeImplFlexible::onSetScale(const LLVector3& scale, BOOL damped) | |||
624 | 626 | ||
625 | BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable) | 627 | BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable) |
626 | { | 628 | { |
627 | LLVOVolume *volume = (LLVOVolume*)mVO; | 629 | LLVOVolume *volume = (LLVOVolume*)mVO.get(); |
628 | 630 | ||
629 | if (volume->mDrawable.isNull()) // Not sure why this is happening, but it is... | 631 | if (volume->mDrawable.isNull()) // Not sure why this is happening, but it is... |
630 | { | 632 | { |
@@ -740,7 +742,7 @@ void LLVolumeImplFlexible::updateRelativeXform() | |||
740 | { | 742 | { |
741 | LLQuaternion delta_rot; | 743 | LLQuaternion delta_rot; |
742 | LLVector3 delta_pos, delta_scale; | 744 | LLVector3 delta_pos, delta_scale; |
743 | LLVOVolume* vo = (LLVOVolume*) mVO; | 745 | LLVOVolume* vo = (LLVOVolume*) mVO.get(); |
744 | 746 | ||
745 | //matrix from local space to parent relative/global space | 747 | //matrix from local space to parent relative/global space |
746 | delta_rot = vo->mDrawable->isSpatialRoot() ? LLQuaternion() : vo->mDrawable->getRotation(); | 748 | delta_rot = vo->mDrawable->isSpatialRoot() ? LLQuaternion() : vo->mDrawable->getRotation(); |
diff --git a/linden/indra/newview/llflexibleobject.h b/linden/indra/newview/llflexibleobject.h index 3d35dd2..507073b 100644 --- a/linden/indra/newview/llflexibleobject.h +++ b/linden/indra/newview/llflexibleobject.h | |||
@@ -111,7 +111,7 @@ class LLVolumeImplFlexible : public LLVolumeInterface | |||
111 | //-------------------------------------- | 111 | //-------------------------------------- |
112 | // private members | 112 | // private members |
113 | //-------------------------------------- | 113 | //-------------------------------------- |
114 | LLViewerObject* mVO; | 114 | LLPointer<LLViewerObject> mVO; |
115 | LLTimer mTimer; | 115 | LLTimer mTimer; |
116 | LLVector3 mAnchorPosition; | 116 | LLVector3 mAnchorPosition; |
117 | LLVector3 mParentPosition; | 117 | LLVector3 mParentPosition; |
diff --git a/linden/indra/newview/llfloateranimpreview.h b/linden/indra/newview/llfloateranimpreview.h index f6d9589..c536fb5 100644 --- a/linden/indra/newview/llfloateranimpreview.h +++ b/linden/indra/newview/llfloateranimpreview.h | |||
@@ -61,7 +61,7 @@ protected: | |||
61 | F32 mCameraZoom; | 61 | F32 mCameraZoom; |
62 | LLVector3 mCameraOffset; | 62 | LLVector3 mCameraOffset; |
63 | LLVector3 mCameraRelPos; | 63 | LLVector3 mCameraRelPos; |
64 | LLVOAvatar* mDummyAvatar; | 64 | LLPointer<LLVOAvatar> mDummyAvatar; |
65 | }; | 65 | }; |
66 | 66 | ||
67 | class LLFloaterAnimPreview : public LLFloaterNameDesc | 67 | class LLFloaterAnimPreview : public LLFloaterNameDesc |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index d31532f..5e416d4 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -150,12 +150,22 @@ void add_timestamped_line(LLViewerTextEditor* edit, const LLString& line, const | |||
150 | edit->appendColoredText(line, false, prepend_newline, color); | 150 | edit->appendColoredText(line, false, prepend_newline, color); |
151 | } | 151 | } |
152 | 152 | ||
153 | void log_chat_text(const LLChat& chat) | ||
154 | { | ||
155 | LLString histstr; | ||
156 | if (gSavedPerAccountSettings.getBOOL("LogChatTimestamp")) | ||
157 | histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + chat.mText; | ||
158 | else | ||
159 | histstr = chat.mText; | ||
160 | |||
161 | LLLogChat::saveHistory("chat",histstr); | ||
162 | } | ||
153 | // static | 163 | // static |
154 | void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file) | 164 | void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file) |
155 | { | 165 | { |
156 | if ( gSavedPerAccountSettings.getBOOL("LogChat") && log_to_file) | 166 | if ( gSavedPerAccountSettings.getBOOL("LogChat") && log_to_file) |
157 | { | 167 | { |
158 | LLLogChat::saveHistory("chat",chat.mText); | 168 | log_chat_text(chat); |
159 | } | 169 | } |
160 | 170 | ||
161 | LLColor4 color = get_text_color(chat); | 171 | LLColor4 color = get_text_color(chat); |
@@ -364,10 +374,14 @@ void LLFloaterChat::addChat(const LLChat& chat, | |||
364 | gConsole->addLine(chat.mText, size, text_color); | 374 | gConsole->addLine(chat.mText, size, text_color); |
365 | } | 375 | } |
366 | 376 | ||
367 | if( !from_instant_message || gSavedSettings.getBOOL("IMInChatHistory") ) | 377 | if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) |
368 | { | 378 | log_chat_text(chat); |
379 | |||
380 | if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) | ||
381 | addChatHistory(chat,false); | ||
382 | |||
383 | if(!from_instant_message) | ||
369 | addChatHistory(chat); | 384 | addChatHistory(chat); |
370 | } | ||
371 | } | 385 | } |
372 | 386 | ||
373 | LLColor4 get_text_color(const LLChat& chat) | 387 | LLColor4 get_text_color(const LLChat& chat) |
@@ -400,6 +414,10 @@ LLColor4 get_text_color(const LLChat& chat) | |||
400 | { | 414 | { |
401 | text_color = gSavedSettings.getColor4("ScriptErrorColor"); | 415 | text_color = gSavedSettings.getColor4("ScriptErrorColor"); |
402 | } | 416 | } |
417 | else if ( chat.mChatType == CHAT_TYPE_OWNER ) | ||
418 | { | ||
419 | text_color = gSavedSettings.getColor4("llOwnerSayChatColor"); | ||
420 | } | ||
403 | else | 421 | else |
404 | { | 422 | { |
405 | text_color = gSavedSettings.getColor4("ObjectChatColor"); | 423 | text_color = gSavedSettings.getColor4("ObjectChatColor"); |
diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp index ee83bf9..62ead8f 100644 --- a/linden/indra/newview/llfloatercustomize.cpp +++ b/linden/indra/newview/llfloatercustomize.cpp | |||
@@ -422,6 +422,8 @@ public: | |||
422 | static void onTextureCommit( LLUICtrl* ctrl, void* userdata ); | 422 | static void onTextureCommit( LLUICtrl* ctrl, void* userdata ); |
423 | static void onColorCommit( LLUICtrl* ctrl, void* userdata ); | 423 | static void onColorCommit( LLUICtrl* ctrl, void* userdata ); |
424 | static void onCommitSexChange( LLUICtrl*, void* userdata ); | 424 | static void onCommitSexChange( LLUICtrl*, void* userdata ); |
425 | static void onSelectAutoWearOption(S32 option, void* data); | ||
426 | |||
425 | 427 | ||
426 | 428 | ||
427 | private: | 429 | private: |
@@ -662,6 +664,11 @@ void LLPanelEditWearable::onBtnRevert( void* userdata ) | |||
662 | void LLPanelEditWearable::onBtnCreateNew( void* userdata ) | 664 | void LLPanelEditWearable::onBtnCreateNew( void* userdata ) |
663 | { | 665 | { |
664 | LLPanelEditWearable* self = (LLPanelEditWearable*) userdata; | 666 | LLPanelEditWearable* self = (LLPanelEditWearable*) userdata; |
667 | gViewerWindow->alertXml("AutoWearNewClothing", onSelectAutoWearOption, self); | ||
668 | } | ||
669 | void LLPanelEditWearable::onSelectAutoWearOption(S32 option, void* data) | ||
670 | { | ||
671 | LLPanelEditWearable* self = (LLPanelEditWearable*) data; | ||
665 | LLVOAvatar* avatar = gAgent.getAvatarObject(); | 672 | LLVOAvatar* avatar = gAgent.getAvatarObject(); |
666 | if(avatar) | 673 | if(avatar) |
667 | { | 674 | { |
@@ -673,14 +680,15 @@ void LLPanelEditWearable::onBtnCreateNew( void* userdata ) | |||
673 | // regular UI, items get created in normal folder | 680 | // regular UI, items get created in normal folder |
674 | folder_id = gInventory.findCategoryUUIDForType(asset_type); | 681 | folder_id = gInventory.findCategoryUUIDForType(asset_type); |
675 | 682 | ||
676 | LLPointer<LLInventoryCallback> cb = new WearOnAvatarCallback; | 683 | // Only auto wear the new item if the AutoWearNewClothing checkbox is selected. |
684 | LLPointer<LLInventoryCallback> cb = option == 0 ? | ||
685 | new WearOnAvatarCallback : NULL; | ||
677 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | 686 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), |
678 | folder_id, wearable->getTransactionID(), wearable->getName(), wearable->getDescription(), | 687 | folder_id, wearable->getTransactionID(), wearable->getName(), wearable->getDescription(), |
679 | asset_type, LLInventoryType::IT_WEARABLE, wearable->getType(), | 688 | asset_type, LLInventoryType::IT_WEARABLE, wearable->getType(), |
680 | wearable->getPermissions().getMaskNextOwner(), cb); | 689 | wearable->getPermissions().getMaskNextOwner(), cb); |
681 | } | 690 | } |
682 | } | 691 | } |
683 | |||
684 | void LLPanelEditWearable::addColorSwatch( LLVOAvatar::ETextureIndex te, const LLString& name ) | 692 | void LLPanelEditWearable::addColorSwatch( LLVOAvatar::ETextureIndex te, const LLString& name ) |
685 | { | 693 | { |
686 | childSetCommitCallback(name, LLPanelEditWearable::onColorCommit, this); | 694 | childSetCommitCallback(name, LLPanelEditWearable::onColorCommit, this); |
diff --git a/linden/indra/newview/llfloaterhtmlhelp.cpp b/linden/indra/newview/llfloaterhtmlhelp.cpp index 4612674..9cae4cc 100644 --- a/linden/indra/newview/llfloaterhtmlhelp.cpp +++ b/linden/indra/newview/llfloaterhtmlhelp.cpp | |||
@@ -34,6 +34,8 @@ | |||
34 | #include "llwebbrowserctrl.h" | 34 | #include "llwebbrowserctrl.h" |
35 | #include "llviewerwindow.h" | 35 | #include "llviewerwindow.h" |
36 | #include "llviewercontrol.h" | 36 | #include "llviewercontrol.h" |
37 | #include "llweb.h" | ||
38 | #include "llui.h" | ||
37 | 39 | ||
38 | #if LL_LIBXUL_ENABLED | 40 | #if LL_LIBXUL_ENABLED |
39 | 41 | ||
@@ -63,7 +65,9 @@ public: | |||
63 | 65 | ||
64 | // used for some stats logging - will be removed at some point | 66 | // used for some stats logging - will be removed at some point |
65 | static BOOL sFloaterOpened; | 67 | static BOOL sFloaterOpened; |
66 | 68 | ||
69 | static void onClickF1HelpLoadURL(S32 option, void* userdata); | ||
70 | |||
67 | protected: | 71 | protected: |
68 | LLWebBrowserCtrl* mWebBrowser; | 72 | LLWebBrowserCtrl* mWebBrowser; |
69 | static LLFloaterHtmlHelp* sInstance; | 73 | static LLFloaterHtmlHelp* sInstance; |
@@ -163,24 +167,55 @@ void LLFloaterHtmlHelp::draw() | |||
163 | // | 167 | // |
164 | void LLFloaterHtmlHelp::show(std::string url) | 168 | void LLFloaterHtmlHelp::show(std::string url) |
165 | { | 169 | { |
166 | sFloaterOpened = true; | 170 | gViewerWindow->alertXml("ClickOpenF1Help", onClickF1HelpLoadURL, (void*) NULL); |
167 | 171 | ||
168 | if ( sInstance ) | 172 | // switching this out for the moment - will come back later |
173 | // want it still to be compiled so not using comments of #if 0 | ||
174 | if ( false ) | ||
169 | { | 175 | { |
170 | if (sInstance->mWebBrowser) | 176 | sFloaterOpened = true; |
177 | |||
178 | if ( sInstance ) | ||
171 | { | 179 | { |
172 | sInstance->mWebBrowser->navigateTo(url); | 180 | if (sInstance->mWebBrowser) |
181 | { | ||
182 | sInstance->mWebBrowser->navigateTo(url); | ||
183 | } | ||
184 | sInstance->setVisibleAndFrontmost(); | ||
185 | return; | ||
173 | } | 186 | } |
174 | sInstance->setVisibleAndFrontmost(); | ||
175 | return; | ||
176 | } | ||
177 | 187 | ||
178 | LLFloaterHtmlHelp* self = new LLFloaterHtmlHelp(url); | 188 | LLFloaterHtmlHelp* self = new LLFloaterHtmlHelp(url); |
189 | |||
190 | // reposition floater from saved settings | ||
191 | LLRect rect = gSavedSettings.getRect( "HtmlHelpRect" ); | ||
192 | self->reshape( rect.getWidth(), rect.getHeight(), FALSE ); | ||
193 | self->setRect( rect ); | ||
194 | }; | ||
195 | } | ||
196 | |||
197 | // static | ||
198 | void LLFloaterHtmlHelp::onClickF1HelpLoadURL(S32 option, void* userdata) | ||
199 | { | ||
200 | if (option == 0) | ||
201 | { | ||
202 | // choose HELP url based on selected language - default to english language support page | ||
203 | LLString lang = LLUI::sConfigGroup->getString("Language"); | ||
204 | |||
205 | // this sucks but there isn't a way to grab an arbitrary string from an XML file | ||
206 | // (using llcontroldef strings causes problems if string don't exist) | ||
207 | LLString help_url( "https://support.secondlife.com/" ); | ||
208 | if ( lang == "ja" ) | ||
209 | help_url = "http://help.secondlife.com/jp"; | ||
210 | else | ||
211 | if ( lang == "ko" ) | ||
212 | help_url = "http://help.secondlife.com/kr"; | ||
213 | else | ||
214 | if ( lang == "pt" ) | ||
215 | help_url = "http://help.secondlife.com/pt"; | ||
179 | 216 | ||
180 | // reposition floater from saved settings | 217 | LLWeb::loadURL( help_url ); |
181 | LLRect rect = gSavedSettings.getRect( "HtmlHelpRect" ); | 218 | }; |
182 | self->reshape( rect.getWidth(), rect.getHeight(), FALSE ); | ||
183 | self->setRect( rect ); | ||
184 | } | 219 | } |
185 | 220 | ||
186 | //////////////////////////////////////////////////////////////////////////////// | 221 | //////////////////////////////////////////////////////////////////////////////// |
diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp index 9dfaa49..0a91563 100644 --- a/linden/indra/newview/llfloaterimagepreview.cpp +++ b/linden/indra/newview/llfloaterimagepreview.cpp | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "llimagebmp.h" | 33 | #include "llimagebmp.h" |
34 | #include "llimagetga.h" | 34 | #include "llimagetga.h" |
35 | #include "llimagejpeg.h" | 35 | #include "llimagejpeg.h" |
36 | #include "llimagepng.h" | ||
36 | 37 | ||
37 | #include "llagent.h" | 38 | #include "llagent.h" |
38 | #include "llbutton.h" | 39 | #include "llbutton.h" |
@@ -325,6 +326,10 @@ bool LLFloaterImagePreview::loadImage(const char *src_filename) | |||
325 | { | 326 | { |
326 | codec = IMG_CODEC_JPEG; | 327 | codec = IMG_CODEC_JPEG; |
327 | } | 328 | } |
329 | else if( 0 == strnicmp(ext, ".png", 4) ) | ||
330 | { | ||
331 | codec = IMG_CODEC_PNG; | ||
332 | } | ||
328 | 333 | ||
329 | LLPointer<LLImageRaw> raw_image = new LLImageRaw; | 334 | LLPointer<LLImageRaw> raw_image = new LLImageRaw; |
330 | 335 | ||
@@ -382,6 +387,21 @@ bool LLFloaterImagePreview::loadImage(const char *src_filename) | |||
382 | } | 387 | } |
383 | } | 388 | } |
384 | break; | 389 | break; |
390 | case IMG_CODEC_PNG: | ||
391 | { | ||
392 | LLPointer<LLImagePNG> png_image = new LLImagePNG; | ||
393 | |||
394 | if (!png_image->load(src_filename)) | ||
395 | { | ||
396 | return false; | ||
397 | } | ||
398 | |||
399 | if (!png_image->decode(raw_image)) | ||
400 | { | ||
401 | return false; | ||
402 | } | ||
403 | } | ||
404 | break; | ||
385 | default: | 405 | default: |
386 | return false; | 406 | return false; |
387 | } | 407 | } |
diff --git a/linden/indra/newview/llfloaterinspect.cpp b/linden/indra/newview/llfloaterinspect.cpp index 4899649..85cfc4e 100644 --- a/linden/indra/newview/llfloaterinspect.cpp +++ b/linden/indra/newview/llfloaterinspect.cpp | |||
@@ -2,7 +2,7 @@ | |||
2 | * @file llfloaterinspect.cpp | 2 | * @file llfloaterinspect.cpp |
3 | * @brief Floater for object inspection tool | 3 | * @brief Floater for object inspection tool |
4 | * | 4 | * |
5 | * Copyright (c) 2002-2007, Linden Research, Inc. | 5 | * Copyright (c) 2006-2007, Linden Research, Inc. |
6 | * | 6 | * |
7 | * Second Life Viewer Source Code | 7 | * Second Life Viewer Source Code |
8 | * The source code in this file ("Source Code") is provided by Linden Lab | 8 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/newview/llfloaterinspect.h b/linden/indra/newview/llfloaterinspect.h index ab453b4..ed4ebd1 100644 --- a/linden/indra/newview/llfloaterinspect.h +++ b/linden/indra/newview/llfloaterinspect.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloaterfriends.h | 2 | * @file llfloaterinspect.h |
3 | * @author Cube | 3 | * @author Cube |
4 | * @date 2006-12-16 | 4 | * @date 2006-12-16 |
5 | * @brief Declaration of class for displaying object attributes | 5 | * @brief Declaration of class for displaying object attributes |
6 | * | 6 | * |
7 | * Copyright (c) 2005-2007, Linden Research, Inc. | 7 | * Copyright (c) 2006-2007, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/newview/llfloaterland.cpp b/linden/indra/newview/llfloaterland.cpp index 82b50ec..ee89975 100644 --- a/linden/indra/newview/llfloaterland.cpp +++ b/linden/indra/newview/llfloaterland.cpp | |||
@@ -1557,6 +1557,13 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo | |||
1557 | { | 1557 | { |
1558 | LLPanelLandObjects* self = LLFloaterLand::getCurrentPanelLandObjects(); | 1558 | LLPanelLandObjects* self = LLFloaterLand::getCurrentPanelLandObjects(); |
1559 | 1559 | ||
1560 | if (!self) | ||
1561 | { | ||
1562 | llwarns << "Received message for nonexistent LLPanelLandObject" | ||
1563 | << llendl; | ||
1564 | return; | ||
1565 | } | ||
1566 | |||
1560 | const LLFontGL* FONT = LLFontGL::sSansSerif; | 1567 | const LLFontGL* FONT = LLFontGL::sSansSerif; |
1561 | 1568 | ||
1562 | // Extract all of the owners. | 1569 | // Extract all of the owners. |
diff --git a/linden/indra/newview/llfloaterpostcard.cpp b/linden/indra/newview/llfloaterpostcard.cpp index 2c80300..82bab03 100644 --- a/linden/indra/newview/llfloaterpostcard.cpp +++ b/linden/indra/newview/llfloaterpostcard.cpp | |||
@@ -76,12 +76,12 @@ LLFloaterPostcard::LLFloaterPostcard(LLImageJPEG* jpeg, LLImageGL *img, const LL | |||
76 | mJPEGImage(jpeg), | 76 | mJPEGImage(jpeg), |
77 | mViewerImage(img), | 77 | mViewerImage(img), |
78 | mImageScale(img_scale), | 78 | mImageScale(img_scale), |
79 | mPosTakenGlobal(pos_taken_global) | 79 | mPosTakenGlobal(pos_taken_global), |
80 | mHasFirstMsgFocus(false) | ||
80 | { | 81 | { |
81 | init(); | 82 | init(); |
82 | } | 83 | } |
83 | 84 | ||
84 | |||
85 | void LLFloaterPostcard::init() | 85 | void LLFloaterPostcard::init() |
86 | { | 86 | { |
87 | // pick up the user's up-to-date email address | 87 | // pick up the user's up-to-date email address |
@@ -128,25 +128,24 @@ BOOL LLFloaterPostcard::postBuild() | |||
128 | gAgent.buildFullname(name_string); | 128 | gAgent.buildFullname(name_string); |
129 | 129 | ||
130 | childSetValue("name_form", LLSD(name_string)); | 130 | childSetValue("name_form", LLSD(name_string)); |
131 | |||
132 | // XUI:translate | ||
133 | LLString msg("Postcard from "); | ||
134 | msg += gSecondLife; | ||
135 | childSetValue("subject_form", LLSD(msg)); | ||
136 | 131 | ||
137 | LLTextEditor *MsgField = LLUICtrlFactory::getTextEditorByName(this, "msg_form"); | 132 | LLTextEditor *MsgField = LLUICtrlFactory::getTextEditorByName(this, "msg_form"); |
138 | if (MsgField) | 133 | if (MsgField) |
139 | { | 134 | { |
140 | MsgField->setText("Check this out!"); | ||
141 | MsgField->setWordWrap(TRUE); | 135 | MsgField->setWordWrap(TRUE); |
142 | } | ||
143 | 136 | ||
144 | childSetFocus("to_form", TRUE); | 137 | // For the first time a user focusess to .the msg box, all text will be selected. |
138 | MsgField->setFocusChangedCallback(onMsgFormFocusRecieved); | ||
139 | MsgField->setCallbackUserData(this); | ||
140 | } | ||
145 | 141 | ||
142 | childSetFocus("to_form", TRUE); | ||
143 | |||
146 | return TRUE; | 144 | return TRUE; |
147 | } | 145 | } |
148 | 146 | ||
149 | 147 | ||
148 | |||
150 | // static | 149 | // static |
151 | LLFloaterPostcard* LLFloaterPostcard::showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2 &image_scale, const LLVector3d& pos_taken_global) | 150 | LLFloaterPostcard* LLFloaterPostcard::showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2 &image_scale, const LLVector3d& pos_taken_global) |
152 | { | 151 | { |
@@ -267,46 +266,16 @@ void LLFloaterPostcard::onClickSend(void* data) | |||
267 | return; | 266 | return; |
268 | } | 267 | } |
269 | 268 | ||
270 | if (self->mJPEGImage.notNull()) | 269 | LLString subject(self->childGetValue("subject_form").asString().c_str()); |
270 | if(subject.empty() || !self->mHasFirstMsgFocus) | ||
271 | { | 271 | { |
272 | self->mTransactionID.generate(); | 272 | gViewerWindow->alertXml("PromptMissingSubjMsg", missingSubjMsgAlertCallback, self); |
273 | self->mAssetID = self->mTransactionID.makeAssetID(gAgent.getSecureSessionID()); | 273 | return; |
274 | LLVFile::writeFile(self->mJPEGImage->getData(), self->mJPEGImage->getDataSize(), gVFS, self->mAssetID, LLAssetType::AT_IMAGE_JPEG); | 274 | } |
275 | |||
276 | // upload the image | ||
277 | std::string url = gAgent.getRegion()->getCapability("SendPostcard"); | ||
278 | if(!url.empty()) | ||
279 | { | ||
280 | llinfos << "Send Postcard via capability" << llendl; | ||
281 | LLSD body = LLSD::emptyMap(); | ||
282 | // the capability already encodes: agent ID, region ID | ||
283 | body["pos-global"] = self->mPosTakenGlobal.getValue(); | ||
284 | body["to"] = self->childGetValue("to_form").asString(); | ||
285 | body["from"] = self->childGetValue("from_form").asString(); | ||
286 | body["name"] = self->childGetValue("name_form").asString(); | ||
287 | body["subject"] = self->childGetValue("subject_form").asString(); | ||
288 | body["msg"] = self->childGetValue("msg_form").asString(); | ||
289 | body["allow-publish"] = self->childGetValue("allow_publish_check").asBoolean(); | ||
290 | body["mature-publish"] = self->childGetValue("mature_check").asBoolean(); | ||
291 | LLHTTPClient::post(url, body, new LLSendPostcardResponder(body, self->mAssetID, LLAssetType::AT_IMAGE_JPEG)); | ||
292 | } | ||
293 | else | ||
294 | { | ||
295 | gAssetStorage->storeAssetData(self->mTransactionID, LLAssetType::AT_IMAGE_JPEG, &uploadCallback, (void *)self, FALSE); | ||
296 | } | ||
297 | |||
298 | LLUploadDialog::modalUploadDialog("Uploading...\n\nPostcard"); | ||
299 | |||
300 | // don't destroy the window until the upload is done | ||
301 | // this way we keep the information in the form | ||
302 | self->setVisible(FALSE); | ||
303 | 275 | ||
304 | // also remove any dependency on another floater | 276 | if (self->mJPEGImage.notNull()) |
305 | // so that we can be sure to outlive it while we | 277 | { |
306 | // need to. | 278 | self->sendPostcard(); |
307 | LLFloater* dependee = self->getDependee(); | ||
308 | if (dependee) | ||
309 | dependee->removeDependentFloater(self); | ||
310 | } | 279 | } |
311 | else | 280 | else |
312 | { | 281 | { |
@@ -375,3 +344,86 @@ void LLFloaterPostcard::updateUserInfo(const char *email) | |||
375 | } | 344 | } |
376 | } | 345 | } |
377 | } | 346 | } |
347 | |||
348 | void LLFloaterPostcard::onMsgFormFocusRecieved(LLUICtrl* receiver, void* data) | ||
349 | { | ||
350 | LLFloaterPostcard* self = (LLFloaterPostcard *)data; | ||
351 | if(self) | ||
352 | { | ||
353 | LLTextEditor* msgForm = LLUICtrlFactory::getTextEditorByName(self, "msg_form"); | ||
354 | if(msgForm && msgForm == receiver && msgForm->hasFocus() && !(self->mHasFirstMsgFocus)) | ||
355 | { | ||
356 | self->mHasFirstMsgFocus = true; | ||
357 | msgForm->setText(LLString("")); | ||
358 | } | ||
359 | } | ||
360 | } | ||
361 | |||
362 | void LLFloaterPostcard::missingSubjMsgAlertCallback(S32 option, void* data) | ||
363 | { | ||
364 | if(data) | ||
365 | { | ||
366 | LLFloaterPostcard* self = static_cast<LLFloaterPostcard*>(data); | ||
367 | if(0 == option) | ||
368 | { | ||
369 | // User clicked OK | ||
370 | if((self->childGetValue("subject_form").asString()).empty()) | ||
371 | { | ||
372 | // Stuff the subject back into the form. | ||
373 | self->childSetValue("subject_form", self->childGetText("default_subject")); | ||
374 | } | ||
375 | |||
376 | if(!self->mHasFirstMsgFocus) | ||
377 | { | ||
378 | // The user never switched focus to the messagee window. | ||
379 | // Using the default string. | ||
380 | // XUI: translate | ||
381 | self->childSetValue("msg_form", self->childGetText("default_message")); | ||
382 | } | ||
383 | |||
384 | self->sendPostcard(); | ||
385 | } | ||
386 | } | ||
387 | } | ||
388 | |||
389 | void LLFloaterPostcard::sendPostcard() | ||
390 | { | ||
391 | mTransactionID.generate(); | ||
392 | mAssetID = mTransactionID.makeAssetID(gAgent.getSecureSessionID()); | ||
393 | LLVFile::writeFile(mJPEGImage->getData(), mJPEGImage->getDataSize(), gVFS, mAssetID, LLAssetType::AT_IMAGE_JPEG); | ||
394 | |||
395 | // upload the image | ||
396 | std::string url = gAgent.getRegion()->getCapability("SendPostcard"); | ||
397 | if(!url.empty()) | ||
398 | { | ||
399 | llinfos << "Send Postcard via capability" << llendl; | ||
400 | LLSD body = LLSD::emptyMap(); | ||
401 | // the capability already encodes: agent ID, region ID | ||
402 | body["pos-global"] = mPosTakenGlobal.getValue(); | ||
403 | body["to"] = childGetValue("to_form").asString(); | ||
404 | body["from"] = childGetValue("from_form").asString(); | ||
405 | body["name"] = childGetValue("name_form").asString(); | ||
406 | body["subject"] = childGetValue("subject_form").asString(); | ||
407 | body["msg"] = childGetValue("msg_form").asString(); | ||
408 | body["allow-publish"] = childGetValue("allow_publish_check").asBoolean(); | ||
409 | body["mature-publish"] = childGetValue("mature_check").asBoolean(); | ||
410 | LLHTTPClient::post(url, body, new LLSendPostcardResponder(body, mAssetID, LLAssetType::AT_IMAGE_JPEG)); | ||
411 | } | ||
412 | else | ||
413 | { | ||
414 | gAssetStorage->storeAssetData(mTransactionID, LLAssetType::AT_IMAGE_JPEG, &uploadCallback, (void *)this, FALSE); | ||
415 | } | ||
416 | |||
417 | LLUploadDialog::modalUploadDialog("Uploading...\n\nPostcard"); | ||
418 | |||
419 | // don't destroy the window until the upload is done | ||
420 | // this way we keep the information in the form | ||
421 | setVisible(FALSE); | ||
422 | |||
423 | // also remove any dependency on another floater | ||
424 | // so that we can be sure to outlive it while we | ||
425 | // need to. | ||
426 | LLFloater* dependee = getDependee(); | ||
427 | if (dependee) | ||
428 | dependee->removeDependentFloater(this); | ||
429 | } | ||
diff --git a/linden/indra/newview/llfloaterpostcard.h b/linden/indra/newview/llfloaterpostcard.h index bd44e22..33a5e92 100644 --- a/linden/indra/newview/llfloaterpostcard.h +++ b/linden/indra/newview/llfloaterpostcard.h | |||
@@ -49,7 +49,7 @@ public: | |||
49 | virtual void init(); | 49 | virtual void init(); |
50 | virtual BOOL postBuild(); | 50 | virtual BOOL postBuild(); |
51 | virtual void draw(); | 51 | virtual void draw(); |
52 | 52 | ||
53 | static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global); | 53 | static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global); |
54 | 54 | ||
55 | static void onClickCancel(void* data); | 55 | static void onClickCancel(void* data); |
@@ -62,6 +62,11 @@ public: | |||
62 | 62 | ||
63 | static void updateUserInfo(const char *email); | 63 | static void updateUserInfo(const char *email); |
64 | 64 | ||
65 | static void onMsgFormFocusRecieved(LLUICtrl* receiver, void* data); | ||
66 | static void missingSubjMsgAlertCallback(S32 option, void* data); | ||
67 | |||
68 | void sendPostcard(); | ||
69 | |||
65 | protected: | 70 | protected: |
66 | 71 | ||
67 | LLPointer<LLImageJPEG> mJPEGImage; | 72 | LLPointer<LLImageJPEG> mJPEGImage; |
@@ -70,6 +75,7 @@ protected: | |||
70 | LLAssetID mAssetID; | 75 | LLAssetID mAssetID; |
71 | LLVector2 mImageScale; | 76 | LLVector2 mImageScale; |
72 | LLVector3d mPosTakenGlobal; | 77 | LLVector3d mPosTakenGlobal; |
78 | boolean mHasFirstMsgFocus; | ||
73 | 79 | ||
74 | static LLLinkedList<LLFloaterPostcard> sInstances; | 80 | static LLLinkedList<LLFloaterPostcard> sInstances; |
75 | }; | 81 | }; |
diff --git a/linden/indra/newview/llfloaterreporter.cpp b/linden/indra/newview/llfloaterreporter.cpp index bcbab5b..7e6bf4d 100644 --- a/linden/indra/newview/llfloaterreporter.cpp +++ b/linden/indra/newview/llfloaterreporter.cpp | |||
@@ -325,6 +325,8 @@ void LLFloaterReporter::getObjectInfo(const LLUUID& object_id) | |||
325 | } | 325 | } |
326 | childSetText("object_name", object_owner); | 326 | childSetText("object_name", object_owner); |
327 | childSetText("owner_name", object_owner); | 327 | childSetText("owner_name", object_owner); |
328 | childSetText("abuser_name_edit", object_owner); | ||
329 | mAbuserID = object_id; | ||
328 | } | 330 | } |
329 | else | 331 | else |
330 | { | 332 | { |
@@ -576,10 +578,12 @@ LLFloaterReporter* LLFloaterReporter::createNewBugReporter() | |||
576 | 578 | ||
577 | 579 | ||
578 | 580 | ||
579 | void LLFloaterReporter::setPickedObjectProperties(const char *object_name, const char *owner_name) | 581 | void LLFloaterReporter::setPickedObjectProperties(const char *object_name, const char *owner_name, const LLUUID owner_id) |
580 | { | 582 | { |
581 | childSetText("object_name", object_name); | 583 | childSetText("object_name", object_name); |
582 | childSetText("owner_name", owner_name); | 584 | childSetText("owner_name", owner_name); |
585 | childSetText("abuser_name_edit", owner_name); | ||
586 | mAbuserID = owner_id; | ||
583 | } | 587 | } |
584 | 588 | ||
585 | 589 | ||
diff --git a/linden/indra/newview/llfloaterreporter.h b/linden/indra/newview/llfloaterreporter.h index 4cb72b9..9cb8557 100644 --- a/linden/indra/newview/llfloaterreporter.h +++ b/linden/indra/newview/llfloaterreporter.h | |||
@@ -106,7 +106,7 @@ public: | |||
106 | // static | 106 | // static |
107 | static void processRegionInfo(LLMessageSystem* msg); | 107 | static void processRegionInfo(LLMessageSystem* msg); |
108 | 108 | ||
109 | void setPickedObjectProperties(const char *object_name, const char *owner_name); | 109 | void setPickedObjectProperties(const char *object_name, const char *owner_name, const LLUUID owner_id); |
110 | 110 | ||
111 | private: | 111 | private: |
112 | void takeScreenshot(); | 112 | void takeScreenshot(); |
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 3931acb..3748131 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp | |||
@@ -216,7 +216,7 @@ BOOL LLFloaterTools::postBuild() | |||
216 | mRadioSelectFace = LLUICtrlFactory::getCheckBoxByName(this,"radio select face"); | 216 | mRadioSelectFace = LLUICtrlFactory::getCheckBoxByName(this,"radio select face"); |
217 | childSetCommitCallback("radio select face",commit_select_tool,gToolFace); | 217 | childSetCommitCallback("radio select face",commit_select_tool,gToolFace); |
218 | mCheckSelectIndividual = LLUICtrlFactory::getCheckBoxByName(this,"checkbox edit linked parts"); | 218 | mCheckSelectIndividual = LLUICtrlFactory::getCheckBoxByName(this,"checkbox edit linked parts"); |
219 | childSetValue("checkbox edit linked parts",(BOOL)!gSavedSettings.getBOOL("SelectLinkedSet")); | 219 | childSetValue("checkbox edit linked parts",(BOOL)gSavedSettings.getBOOL("EditLinkedParts")); |
220 | childSetCommitCallback("checkbox edit linked parts",commit_select_component,this); | 220 | childSetCommitCallback("checkbox edit linked parts",commit_select_component,this); |
221 | mCheckSnapToGrid = LLUICtrlFactory::getCheckBoxByName(this,"checkbox snap to grid"); | 221 | mCheckSnapToGrid = LLUICtrlFactory::getCheckBoxByName(this,"checkbox snap to grid"); |
222 | childSetValue("checkbox snap to grid",(BOOL)gSavedSettings.getBOOL("SnapEnabled")); | 222 | childSetValue("checkbox snap to grid",(BOOL)gSavedSettings.getBOOL("SnapEnabled")); |
@@ -456,7 +456,7 @@ void LLFloaterTools::draw() | |||
456 | mDirty = FALSE; | 456 | mDirty = FALSE; |
457 | } | 457 | } |
458 | 458 | ||
459 | mCheckSelectIndividual->set(!gSavedSettings.getBOOL("SelectLinkedSet")); | 459 | // mCheckSelectIndividual->set(gSavedSettings.getBOOL("EditLinkedParts")); |
460 | LLFloater::draw(); | 460 | LLFloater::draw(); |
461 | } | 461 | } |
462 | 462 | ||
@@ -567,7 +567,7 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) | |||
567 | if (mCheckSelectIndividual) | 567 | if (mCheckSelectIndividual) |
568 | { | 568 | { |
569 | mCheckSelectIndividual->setVisible(edit_visible); | 569 | mCheckSelectIndividual->setVisible(edit_visible); |
570 | mCheckSelectIndividual->set(!gSavedSettings.getBOOL("SelectLinkedSet")); | 570 | //mCheckSelectIndividual->set(gSavedSettings.getBOOL("EditLinkedParts")); |
571 | } | 571 | } |
572 | 572 | ||
573 | mRadioPosition ->set( tool == gToolTranslate ); | 573 | mRadioPosition ->set( tool == gToolTranslate ); |
@@ -746,7 +746,7 @@ void LLFloaterTools::onClose(bool app_quitting) | |||
746 | 746 | ||
747 | // exit component selection mode | 747 | // exit component selection mode |
748 | gSelectMgr->promoteSelectionToRoot(); | 748 | gSelectMgr->promoteSelectionToRoot(); |
749 | gSavedSettings.setBOOL("SelectLinkedSet", TRUE); | 749 | gSavedSettings.setBOOL("EditLinkedParts", FALSE); |
750 | 750 | ||
751 | gViewerWindow->showCursor(); | 751 | gViewerWindow->showCursor(); |
752 | 752 | ||
@@ -922,7 +922,7 @@ void commit_select_component(LLUICtrl *ctrl, void *data) | |||
922 | } | 922 | } |
923 | 923 | ||
924 | BOOL select_individuals = floaterp->mCheckSelectIndividual->get(); | 924 | BOOL select_individuals = floaterp->mCheckSelectIndividual->get(); |
925 | gSavedSettings.setBOOL("SelectLinkedSet", !select_individuals); | 925 | gSavedSettings.setBOOL("EditLinkedParts", select_individuals); |
926 | floaterp->dirty(); | 926 | floaterp->dirty(); |
927 | 927 | ||
928 | if (select_individuals) | 928 | if (select_individuals) |
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index bd5be8e..36d0b40 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp | |||
@@ -2522,6 +2522,7 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico | |||
2522 | mLastScrollItem( NULL ), | 2522 | mLastScrollItem( NULL ), |
2523 | mNeedsAutoSelect( FALSE ), | 2523 | mNeedsAutoSelect( FALSE ), |
2524 | mAutoSelectOverride(FALSE), | 2524 | mAutoSelectOverride(FALSE), |
2525 | mNeedsAutoRename(FALSE), | ||
2525 | mDebugFilters(FALSE), | 2526 | mDebugFilters(FALSE), |
2526 | mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME), // This gets overridden by a pref immediately | 2527 | mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME), // This gets overridden by a pref immediately |
2527 | mFilter(name), | 2528 | mFilter(name), |
@@ -4954,3 +4955,39 @@ LLString LLInventoryFilter::getFilterText() | |||
4954 | } | 4955 | } |
4955 | return mFilterText; | 4956 | return mFilterText; |
4956 | } | 4957 | } |
4958 | |||
4959 | void LLInventoryFilter::toLLSD(LLSD& data) | ||
4960 | { | ||
4961 | data["filter_types"] = (LLSD::Integer)getFilterTypes(); | ||
4962 | data["min_date"] = (LLSD::Integer)getMinDate(); | ||
4963 | data["max_date"] = (LLSD::Integer)getMaxDate(); | ||
4964 | data["hours_ago"] = (LLSD::Integer)getHoursAgo(); | ||
4965 | data["show_folder_state"] = (LLSD::Integer)getShowFolderState(); | ||
4966 | data["permissions"] = (LLSD::Integer)getFilterPermissions(); | ||
4967 | data["substring"] = (LLSD::String)getFilterSubString(); | ||
4968 | data["sort_order"] = (LLSD::Integer)getSortOrder(); | ||
4969 | } | ||
4970 | |||
4971 | void LLInventoryFilter::fromLLSD(LLSD& data) | ||
4972 | { | ||
4973 | if(data.has("filter_types")) | ||
4974 | setFilterTypes((U32)data["filter_types"].asInteger()); | ||
4975 | |||
4976 | if(data.has("min_date") && data.has("max_date")) | ||
4977 | setDateRange((U32)data["min_date"].asInteger(), (U32)data["max_date"].asInteger()); | ||
4978 | |||
4979 | if(data.has("hours_ago")) | ||
4980 | setHoursAgo((U32)data["hours_ago"].asInteger()); | ||
4981 | |||
4982 | if(data.has("show_folder_state")) | ||
4983 | setShowFolderState((EFolderShow)data["show_folder_state"].asInteger()); | ||
4984 | |||
4985 | if(data.has("permissions")) | ||
4986 | setFilterPermissions((PermissionMask)data["permissions"].asInteger()); | ||
4987 | |||
4988 | if(data.has("substring")) | ||
4989 | setFilterSubString(LLString(data["substring"].asString())); | ||
4990 | |||
4991 | if(data.has("sort_order")) | ||
4992 | setSortOrder((U32)data["sort_order"].asInteger()); | ||
4993 | } | ||
diff --git a/linden/indra/newview/llfolderview.h b/linden/indra/newview/llfolderview.h index ec70b90..9482b96 100644 --- a/linden/indra/newview/llfolderview.h +++ b/linden/indra/newview/llfolderview.h | |||
@@ -236,6 +236,9 @@ public: | |||
236 | //RN: this is public to allow system to externally force a global refilter | 236 | //RN: this is public to allow system to externally force a global refilter |
237 | void setModified(EFilterBehavior behavior = FILTER_RESTART); | 237 | void setModified(EFilterBehavior behavior = FILTER_RESTART); |
238 | 238 | ||
239 | void toLLSD(LLSD& data); | ||
240 | void fromLLSD(LLSD& data); | ||
241 | |||
239 | protected: | 242 | protected: |
240 | struct filter_ops | 243 | struct filter_ops |
241 | { | 244 | { |
@@ -859,6 +862,9 @@ public: | |||
859 | static void idle(void* user_data); | 862 | static void idle(void* user_data); |
860 | 863 | ||
861 | BOOL needsAutoSelect() { return mNeedsAutoSelect && !mAutoSelectOverride; } | 864 | BOOL needsAutoSelect() { return mNeedsAutoSelect && !mAutoSelectOverride; } |
865 | BOOL needsAutoRename() { return mNeedsAutoRename; } | ||
866 | void setNeedsAutoRename(BOOL val) { mNeedsAutoRename = val; } | ||
867 | |||
862 | BOOL getDebugFilters() { return mDebugFilters; } | 868 | BOOL getDebugFilters() { return mDebugFilters; } |
863 | 869 | ||
864 | // DEBUG only | 870 | // DEBUG only |
@@ -890,6 +896,7 @@ protected: | |||
890 | LLCoordGL mLastScrollOffset; | 896 | LLCoordGL mLastScrollOffset; |
891 | BOOL mNeedsAutoSelect; | 897 | BOOL mNeedsAutoSelect; |
892 | BOOL mAutoSelectOverride; | 898 | BOOL mAutoSelectOverride; |
899 | BOOL mNeedsAutoRename; | ||
893 | 900 | ||
894 | BOOL mDebugFilters; | 901 | BOOL mDebugFilters; |
895 | U32 mSortOrder; | 902 | U32 mSortOrder; |
diff --git a/linden/indra/newview/llgenepool.cpp b/linden/indra/newview/llgenepool.cpp index 3cc57e9..40dd5cd 100644 --- a/linden/indra/newview/llgenepool.cpp +++ b/linden/indra/newview/llgenepool.cpp | |||
@@ -127,6 +127,7 @@ BOOL LLGenePool::loadNodeArchetype( LLXmlTreeNode* node ) | |||
127 | LLVOAvatar* avatar = gAgent.getAvatarObject(); | 127 | LLVOAvatar* avatar = gAgent.getAvatarObject(); |
128 | if( !avatar ) | 128 | if( !avatar ) |
129 | { | 129 | { |
130 | delete archetype; | ||
130 | return FALSE; | 131 | return FALSE; |
131 | } | 132 | } |
132 | 133 | ||
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index 5250b57..813f924 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp | |||
@@ -476,6 +476,7 @@ void LLHUDEffectLookAt::calcTargetPosition() | |||
476 | { | 476 | { |
477 | //sets the lookat point in front of the avatar | 477 | //sets the lookat point in front of the avatar |
478 | mTargetOffsetGlobal.setVec(5.0, 0.0, 0.0); | 478 | mTargetOffsetGlobal.setVec(5.0, 0.0, 0.0); |
479 | local_offset.setVec(mTargetOffsetGlobal); | ||
479 | } | 480 | } |
480 | 481 | ||
481 | mTargetPos = avatarp->mHeadp->getWorldPosition(); | 482 | mTargetPos = avatarp->mHeadp->getWorldPosition(); |
diff --git a/linden/indra/newview/llhudicon.cpp b/linden/indra/newview/llhudicon.cpp index 93e730e..15988fa 100644 --- a/linden/indra/newview/llhudicon.cpp +++ b/linden/indra/newview/llhudicon.cpp | |||
@@ -65,7 +65,8 @@ LLHUDIcon::LLHUDIcon(const U8 type) : | |||
65 | LLHUDObject(type), | 65 | LLHUDObject(type), |
66 | mImagep(NULL), | 66 | mImagep(NULL), |
67 | mPickID(0), | 67 | mPickID(0), |
68 | mScale(0.1f) | 68 | mScale(0.1f), |
69 | mHidden(FALSE) | ||
69 | { | 70 | { |
70 | sIconInstances.push_back(this); | 71 | sIconInstances.push_back(this); |
71 | } | 72 | } |
@@ -81,6 +82,9 @@ void LLHUDIcon::renderIcon(BOOL for_select) | |||
81 | LLGLDepthTest gls_depth(GL_TRUE); | 82 | LLGLDepthTest gls_depth(GL_TRUE); |
82 | LLGLState no_texture(GL_TEXTURE_2D, for_select ? FALSE : TRUE); | 83 | LLGLState no_texture(GL_TEXTURE_2D, for_select ? FALSE : TRUE); |
83 | 84 | ||
85 | if (mHidden) | ||
86 | return; | ||
87 | |||
84 | if (mSourceObject.isNull() || mImagep.isNull()) | 88 | if (mSourceObject.isNull() || mImagep.isNull()) |
85 | { | 89 | { |
86 | markDead(); | 90 | markDead(); |
diff --git a/linden/indra/newview/llhudicon.h b/linden/indra/newview/llhudicon.h index f26abb4..7f8b435 100644 --- a/linden/indra/newview/llhudicon.h +++ b/linden/indra/newview/llhudicon.h | |||
@@ -71,6 +71,9 @@ public: | |||
71 | 71 | ||
72 | static BOOL iconsNearby(); | 72 | static BOOL iconsNearby(); |
73 | 73 | ||
74 | BOOL getHidden() const { return mHidden; } | ||
75 | void setHidden( BOOL hide ) { mHidden = hide; } | ||
76 | |||
74 | protected: | 77 | protected: |
75 | LLHUDIcon(const U8 type); | 78 | LLHUDIcon(const U8 type); |
76 | ~LLHUDIcon(); | 79 | ~LLHUDIcon(); |
@@ -84,6 +87,7 @@ private: | |||
84 | F32 mDistance; | 87 | F32 mDistance; |
85 | S32 mPickID; | 88 | S32 mPickID; |
86 | F32 mScale; | 89 | F32 mScale; |
90 | BOOL mHidden; | ||
87 | 91 | ||
88 | typedef std::vector<LLPointer<LLHUDIcon> > icon_instance_t; | 92 | typedef std::vector<LLPointer<LLHUDIcon> > icon_instance_t; |
89 | static icon_instance_t sIconInstances; | 93 | static icon_instance_t sIconInstances; |
diff --git a/linden/indra/newview/llhudtext.cpp b/linden/indra/newview/llhudtext.cpp index 740cce0..fce52f1 100644 --- a/linden/indra/newview/llhudtext.cpp +++ b/linden/indra/newview/llhudtext.cpp | |||
@@ -93,7 +93,8 @@ LLHUDText::LLHUDText(const U8 type) : | |||
93 | mOffsetY(0), | 93 | mOffsetY(0), |
94 | mTextAlignment(ALIGN_TEXT_CENTER), | 94 | mTextAlignment(ALIGN_TEXT_CENTER), |
95 | mVertAlignment(ALIGN_VERT_CENTER), | 95 | mVertAlignment(ALIGN_VERT_CENTER), |
96 | mLOD(0) | 96 | mLOD(0), |
97 | mHidden(FALSE) | ||
97 | { | 98 | { |
98 | mColor = LLColor4(1.f, 1.f, 1.f, 1.f); | 99 | mColor = LLColor4(1.f, 1.f, 1.f, 1.f); |
99 | mDoFade = TRUE; | 100 | mDoFade = TRUE; |
@@ -133,7 +134,7 @@ void LLHUDText::renderForSelect() | |||
133 | 134 | ||
134 | void LLHUDText::renderText(BOOL for_select) | 135 | void LLHUDText::renderText(BOOL for_select) |
135 | { | 136 | { |
136 | if (!mVisible) | 137 | if (!mVisible || mHidden) |
137 | { | 138 | { |
138 | return; | 139 | return; |
139 | } | 140 | } |
diff --git a/linden/indra/newview/llhudtext.h b/linden/indra/newview/llhudtext.h index 033702b..bd6988b 100644 --- a/linden/indra/newview/llhudtext.h +++ b/linden/indra/newview/llhudtext.h | |||
@@ -115,8 +115,9 @@ public: | |||
115 | void setUseBubble(BOOL use_bubble) { mUseBubble = use_bubble; } | 115 | void setUseBubble(BOOL use_bubble) { mUseBubble = use_bubble; } |
116 | S32 getLOD() { return mLOD; } | 116 | S32 getLOD() { return mLOD; } |
117 | BOOL getVisible() { return mVisible; } | 117 | BOOL getVisible() { return mVisible; } |
118 | BOOL getHidden() const { return mHidden; } | ||
119 | void setHidden( BOOL hide ) { mHidden = hide; } | ||
118 | void setOnHUDAttachment(BOOL on_hud) { mOnHUDAttachment = on_hud; } | 120 | void setOnHUDAttachment(BOOL on_hud) { mOnHUDAttachment = on_hud; } |
119 | |||
120 | static void renderAllHUD(); | 121 | static void renderAllHUD(); |
121 | static void addPickable(std::set<LLViewerObject*> &pick_list); | 122 | static void addPickable(std::set<LLViewerObject*> &pick_list); |
122 | static void reshape(); | 123 | static void reshape(); |
@@ -164,6 +165,7 @@ private: | |||
164 | ETextAlignment mTextAlignment; | 165 | ETextAlignment mTextAlignment; |
165 | EVertAlignment mVertAlignment; | 166 | EVertAlignment mVertAlignment; |
166 | S32 mLOD; | 167 | S32 mLOD; |
168 | BOOL mHidden; | ||
167 | 169 | ||
168 | static std::set<LLPointer<LLHUDText> > sTextObjects; | 170 | static std::set<LLPointer<LLHUDText> > sTextObjects; |
169 | static std::vector<LLPointer<LLHUDText> > sVisibleTextObjects; | 171 | static std::vector<LLPointer<LLHUDText> > sVisibleTextObjects; |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 3c89131..b74fff0 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -174,6 +174,8 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& name, | |||
174 | mInputEditor(NULL), | 174 | mInputEditor(NULL), |
175 | mHistoryEditor(NULL), | 175 | mHistoryEditor(NULL), |
176 | mSessionUUID(session_id), | 176 | mSessionUUID(session_id), |
177 | mSessionInitRequested(FALSE), | ||
178 | mSessionInitialized(FALSE), | ||
177 | mOtherParticipantUUID(other_participant_id), | 179 | mOtherParticipantUUID(other_participant_id), |
178 | mDialog(dialog), | 180 | mDialog(dialog), |
179 | mTyping(FALSE), | 181 | mTyping(FALSE), |
@@ -181,9 +183,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& name, | |||
181 | mTypingLineStartIndex(0), | 183 | mTypingLineStartIndex(0), |
182 | mSentTypingState(TRUE), | 184 | mSentTypingState(TRUE), |
183 | mFirstKeystrokeTimer(), | 185 | mFirstKeystrokeTimer(), |
184 | mLastKeystrokeTimer(), | 186 | mLastKeystrokeTimer() |
185 | mSessionInitialized(FALSE), | ||
186 | mSessionInitRequested(FALSE) | ||
187 | { | 187 | { |
188 | init(session_label); | 188 | init(session_label); |
189 | } | 189 | } |
@@ -199,6 +199,8 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& name, | |||
199 | mInputEditor(NULL), | 199 | mInputEditor(NULL), |
200 | mHistoryEditor(NULL), | 200 | mHistoryEditor(NULL), |
201 | mSessionUUID(session_id), | 201 | mSessionUUID(session_id), |
202 | mSessionInitRequested(FALSE), | ||
203 | mSessionInitialized(FALSE), | ||
202 | mOtherParticipantUUID(other_participant_id), | 204 | mOtherParticipantUUID(other_participant_id), |
203 | mDialog(dialog), | 205 | mDialog(dialog), |
204 | mTyping(FALSE), | 206 | mTyping(FALSE), |
@@ -206,9 +208,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& name, | |||
206 | mTypingLineStartIndex(0), | 208 | mTypingLineStartIndex(0), |
207 | mSentTypingState(TRUE), | 209 | mSentTypingState(TRUE), |
208 | mFirstKeystrokeTimer(), | 210 | mFirstKeystrokeTimer(), |
209 | mLastKeystrokeTimer(), | 211 | mLastKeystrokeTimer() |
210 | mSessionInitialized(FALSE), | ||
211 | mSessionInitRequested(FALSE) | ||
212 | { | 212 | { |
213 | mSessionInitialTargetIDs = ids; | 213 | mSessionInitialTargetIDs = ids; |
214 | init(session_label); | 214 | init(session_label); |
@@ -427,7 +427,11 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
427 | if (log_to_file | 427 | if (log_to_file |
428 | && gSavedPerAccountSettings.getBOOL("LogInstantMessages") ) | 428 | && gSavedPerAccountSettings.getBOOL("LogInstantMessages") ) |
429 | { | 429 | { |
430 | LLString histstr = timestring + utf8msg; | 430 | LLString histstr; |
431 | if (gSavedPerAccountSettings.getBOOL("IMLogTimestamp")) | ||
432 | histstr = LLLogChat::timestamp(gSavedPerAccountSettings.getBOOL("LogTimestampDate")) + utf8msg; | ||
433 | else | ||
434 | histstr = utf8msg; | ||
431 | 435 | ||
432 | LLLogChat::saveHistory(getTitle(),histstr); | 436 | LLLogChat::saveHistory(getTitle(),histstr); |
433 | } | 437 | } |
diff --git a/linden/indra/newview/llinventoryactions.cpp b/linden/indra/newview/llinventoryactions.cpp index 900a729..af4e16b 100644 --- a/linden/indra/newview/llinventoryactions.cpp +++ b/linden/indra/newview/llinventoryactions.cpp | |||
@@ -324,16 +324,18 @@ void do_create(LLInventoryModel *model, LLInventoryPanel *ptr, LLString type, LL | |||
324 | { | 324 | { |
325 | if ("category" == type) | 325 | if ("category" == type) |
326 | { | 326 | { |
327 | LLUUID category; | ||
327 | if (self) | 328 | if (self) |
328 | { | 329 | { |
329 | model->createNewCategory(self->getUUID(), LLAssetType::AT_NONE, NULL); | 330 | category = model->createNewCategory(self->getUUID(), LLAssetType::AT_NONE, NULL); |
330 | } | 331 | } |
331 | else | 332 | else |
332 | { | 333 | { |
333 | model->createNewCategory(gAgent.getInventoryRootID(), | 334 | category = model->createNewCategory(gAgent.getInventoryRootID(), |
334 | LLAssetType::AT_NONE, NULL); | 335 | LLAssetType::AT_NONE, NULL); |
335 | } | 336 | } |
336 | model->notifyObservers(); | 337 | model->notifyObservers(); |
338 | ptr->setSelection(category, TRUE); | ||
337 | } | 339 | } |
338 | else if ("lsl" == type) | 340 | else if ("lsl" == type) |
339 | { | 341 | { |
@@ -427,6 +429,8 @@ void do_create(LLInventoryModel *model, LLInventoryPanel *ptr, LLString type, LL | |||
427 | LLUUID parent_id = self ? self->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART); | 429 | LLUUID parent_id = self ? self->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART); |
428 | LLFolderBridge::createWearable(parent_id, WT_EYES); | 430 | LLFolderBridge::createWearable(parent_id, WT_EYES); |
429 | } | 431 | } |
432 | |||
433 | ptr->getRootFolder()->setNeedsAutoRename(TRUE); | ||
430 | } | 434 | } |
431 | 435 | ||
432 | class LLDoCreate : public inventory_panel_listener_t | 436 | class LLDoCreate : public inventory_panel_listener_t |
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp index 0d5c30e..27be9f6 100644 --- a/linden/indra/newview/llinventorybridge.cpp +++ b/linden/indra/newview/llinventorybridge.cpp | |||
@@ -822,7 +822,7 @@ LLString LLItemBridge::getLabelSuffix() const | |||
822 | if(item) | 822 | if(item) |
823 | { | 823 | { |
824 | // it's a bit confusing to put nocopy/nomod/etc on calling cards. | 824 | // it's a bit confusing to put nocopy/nomod/etc on calling cards. |
825 | if( LLAssetType::AT_CALLINGCARD != item->getType() | 825 | if(LLAssetType::AT_CALLINGCARD != item->getType() |
826 | && item->getPermissions().getOwner() == gAgent.getID()) | 826 | && item->getPermissions().getOwner() == gAgent.getID()) |
827 | { | 827 | { |
828 | BOOL copy = item->getPermissions().allowCopyBy(gAgent.getID()); | 828 | BOOL copy = item->getPermissions().allowCopyBy(gAgent.getID()); |
@@ -834,32 +834,14 @@ LLString LLItemBridge::getLabelSuffix() const | |||
834 | const char* NO_MOD = " (no modify)"; | 834 | const char* NO_MOD = " (no modify)"; |
835 | const char* NO_XFER = " (no transfer)"; | 835 | const char* NO_XFER = " (no transfer)"; |
836 | const char* scopy; | 836 | const char* scopy; |
837 | if(copy) | 837 | if(copy) scopy = EMPTY; |
838 | { | 838 | else scopy = NO_COPY; |
839 | scopy = EMPTY; | ||
840 | } | ||
841 | else | ||
842 | { | ||
843 | scopy = NO_COPY; | ||
844 | }; | ||
845 | const char* smod; | 839 | const char* smod; |
846 | if(mod) | 840 | if(mod) smod = EMPTY; |
847 | { | 841 | else smod = NO_MOD; |
848 | smod = EMPTY; | ||
849 | } | ||
850 | else | ||
851 | { | ||
852 | smod = NO_MOD; | ||
853 | }; | ||
854 | const char* sxfer; | 842 | const char* sxfer; |
855 | if(xfer) | 843 | if(xfer) sxfer = EMPTY; |
856 | { | 844 | else sxfer = NO_XFER; |
857 | sxfer = EMPTY; | ||
858 | } | ||
859 | else | ||
860 | { | ||
861 | sxfer = NO_XFER; | ||
862 | }; | ||
863 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ | 845 | char buffer[MAX_STRING]; /*Flawfinder: ignore*/ |
864 | snprintf( /* Flawfinder: ignore */ | 846 | snprintf( /* Flawfinder: ignore */ |
865 | buffer, | 847 | buffer, |
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp index bb70ea4..8ac5f21 100644 --- a/linden/indra/newview/llinventoryview.cpp +++ b/linden/indra/newview/llinventoryview.cpp | |||
@@ -64,6 +64,7 @@ | |||
64 | #include "llpreviewtexture.h" | 64 | #include "llpreviewtexture.h" |
65 | #include "llresmgr.h" | 65 | #include "llresmgr.h" |
66 | #include "llscrollcontainer.h" | 66 | #include "llscrollcontainer.h" |
67 | #include "llscrollbar.h" | ||
67 | #include "llimview.h" | 68 | #include "llimview.h" |
68 | #include "lltooldraganddrop.h" | 69 | #include "lltooldraganddrop.h" |
69 | #include "llviewerimagelist.h" | 70 | #include "llviewerimagelist.h" |
@@ -78,6 +79,8 @@ | |||
78 | #include "llvieweruictrlfactory.h" | 79 | #include "llvieweruictrlfactory.h" |
79 | #include "llselectmgr.h" | 80 | #include "llselectmgr.h" |
80 | 81 | ||
82 | #include "llsdserialize.h" | ||
83 | |||
81 | LLDynamicArray<LLInventoryView*> LLInventoryView::sActiveViews; | 84 | LLDynamicArray<LLInventoryView*> LLInventoryView::sActiveViews; |
82 | 85 | ||
83 | //BOOL LLInventoryView::sOpenNextNewItem = FALSE; | 86 | //BOOL LLInventoryView::sOpenNextNewItem = FALSE; |
@@ -464,6 +467,9 @@ void LLInventoryView::init(LLInventoryModel* inventory) | |||
464 | 467 | ||
465 | gUICtrlFactory->buildFloater(this, "floater_inventory.xml", NULL); | 468 | gUICtrlFactory->buildFloater(this, "floater_inventory.xml", NULL); |
466 | 469 | ||
470 | mFilterTabs = (LLTabContainer*)LLUICtrlFactory::getTabContainerByName(this, "inventory filter tabs"); | ||
471 | |||
472 | // Set up the default inv. panel/filter settings. | ||
467 | mActivePanel = (LLInventoryPanel*)getCtrlByNameAndType("All Items", WIDGET_TYPE_INVENTORY_PANEL); | 473 | mActivePanel = (LLInventoryPanel*)getCtrlByNameAndType("All Items", WIDGET_TYPE_INVENTORY_PANEL); |
468 | if (mActivePanel) | 474 | if (mActivePanel) |
469 | { | 475 | { |
@@ -471,6 +477,7 @@ void LLInventoryView::init(LLInventoryModel* inventory) | |||
471 | mActivePanel->setSortOrder(gSavedSettings.getU32("InventorySortOrder")); | 477 | mActivePanel->setSortOrder(gSavedSettings.getU32("InventorySortOrder")); |
472 | mActivePanel->getFilter()->markDefault(); | 478 | mActivePanel->getFilter()->markDefault(); |
473 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); | 479 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); |
480 | mActivePanel->setSelectCallback(onSelectionChange, mActivePanel); | ||
474 | } | 481 | } |
475 | LLInventoryPanel* recent_items_panel = (LLInventoryPanel*)getCtrlByNameAndType("Recent Items", WIDGET_TYPE_INVENTORY_PANEL); | 482 | LLInventoryPanel* recent_items_panel = (LLInventoryPanel*)getCtrlByNameAndType("Recent Items", WIDGET_TYPE_INVENTORY_PANEL); |
476 | if (recent_items_panel) | 483 | if (recent_items_panel) |
@@ -479,7 +486,29 @@ void LLInventoryView::init(LLInventoryModel* inventory) | |||
479 | recent_items_panel->setSortOrder(LLInventoryFilter::SO_DATE); | 486 | recent_items_panel->setSortOrder(LLInventoryFilter::SO_DATE); |
480 | recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); | 487 | recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); |
481 | recent_items_panel->getFilter()->markDefault(); | 488 | recent_items_panel->getFilter()->markDefault(); |
482 | } | 489 | recent_items_panel->setSelectCallback(onSelectionChange, recent_items_panel); |
490 | } | ||
491 | |||
492 | // Now load the stored settings from disk, if available. | ||
493 | std::ostringstream filterSaveName; | ||
494 | filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml"); | ||
495 | llinfos << "LLInventoryView::init: reading from " << filterSaveName << llendl; | ||
496 | llifstream file(filterSaveName.str().c_str()); | ||
497 | LLSD savedFilterState; | ||
498 | if (file.is_open()) | ||
499 | { | ||
500 | LLSDSerialize::fromXML(savedFilterState, file); | ||
501 | file.close(); | ||
502 | |||
503 | // Load the persistent "Recent Items" settings. | ||
504 | // Note that the "All Items" settings do not persist. | ||
505 | if(savedFilterState.has(recent_items_panel->getFilter()->getName())) | ||
506 | { | ||
507 | LLSD recent_items = savedFilterState.get(recent_items_panel->getFilter()->getName()); | ||
508 | recent_items_panel->getFilter()->fromLLSD(recent_items); | ||
509 | } | ||
510 | } | ||
511 | |||
483 | 512 | ||
484 | mSearchEditor = (LLSearchEditor*)getCtrlByNameAndType("inventory search editor", WIDGET_TYPE_SEARCH_EDITOR); | 513 | mSearchEditor = (LLSearchEditor*)getCtrlByNameAndType("inventory search editor", WIDGET_TYPE_SEARCH_EDITOR); |
485 | if (mSearchEditor) | 514 | if (mSearchEditor) |
@@ -504,6 +533,36 @@ BOOL LLInventoryView::postBuild() | |||
504 | // Destroys the object | 533 | // Destroys the object |
505 | LLInventoryView::~LLInventoryView( void ) | 534 | LLInventoryView::~LLInventoryView( void ) |
506 | { | 535 | { |
536 | // Save the filters state. | ||
537 | LLSD filterRoot; | ||
538 | LLInventoryPanel* all_items_panel = (LLInventoryPanel*)getCtrlByNameAndType("All Items", WIDGET_TYPE_INVENTORY_PANEL); | ||
539 | if (all_items_panel) | ||
540 | { | ||
541 | LLInventoryFilter* filter = all_items_panel->getFilter(); | ||
542 | LLSD filterState; | ||
543 | filter->toLLSD(filterState); | ||
544 | filterRoot[filter->getName()] = filterState; | ||
545 | } | ||
546 | |||
547 | LLInventoryPanel* recent_items_panel = (LLInventoryPanel*)getCtrlByNameAndType("Recent Items", WIDGET_TYPE_INVENTORY_PANEL); | ||
548 | if (recent_items_panel) | ||
549 | { | ||
550 | LLInventoryFilter* filter = recent_items_panel->getFilter(); | ||
551 | LLSD filterState; | ||
552 | filter->toLLSD(filterState); | ||
553 | filterRoot[filter->getName()] = filterState; | ||
554 | } | ||
555 | |||
556 | std::ostringstream filterSaveName; | ||
557 | filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml"); | ||
558 | llofstream filtersFile(filterSaveName.str().c_str()); | ||
559 | if(!LLSDSerialize::toPrettyXML(filterRoot, filtersFile)) | ||
560 | { | ||
561 | llwarns << "Could not write to filters save file " << filterSaveName << llendl; | ||
562 | } | ||
563 | else | ||
564 | filtersFile.close(); | ||
565 | |||
507 | sActiveViews.removeObj(this); | 566 | sActiveViews.removeObj(this); |
508 | gInventory.removeObserver(this); | 567 | gInventory.removeObserver(this); |
509 | delete mSavedFolderState; | 568 | delete mSavedFolderState; |
@@ -630,7 +689,9 @@ void LLInventoryView::onClose(bool app_quitting) | |||
630 | mSavedFolderState->setApply(FALSE); | 689 | mSavedFolderState->setApply(FALSE); |
631 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); | 690 | mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState); |
632 | } | 691 | } |
633 | onClearSearch(this); | 692 | |
693 | // onClearSearch(this); | ||
694 | |||
634 | // pass up | 695 | // pass up |
635 | LLFloater::setVisible(FALSE); | 696 | LLFloater::setVisible(FALSE); |
636 | } | 697 | } |
@@ -930,6 +991,7 @@ void LLInventoryView::onFilterSelected(void* userdata, bool from_click) | |||
930 | LLInventoryViewFinder *finder = self->getFinder(); | 991 | LLInventoryViewFinder *finder = self->getFinder(); |
931 | // Find my index | 992 | // Find my index |
932 | self->mActivePanel = (LLInventoryPanel*)self->childGetVisibleTab("inventory filter tabs"); | 993 | self->mActivePanel = (LLInventoryPanel*)self->childGetVisibleTab("inventory filter tabs"); |
994 | |||
933 | if (!self->mActivePanel) | 995 | if (!self->mActivePanel) |
934 | { | 996 | { |
935 | return; | 997 | return; |
@@ -947,6 +1009,42 @@ void LLInventoryView::onFilterSelected(void* userdata, bool from_click) | |||
947 | self->setFilterTextFromFilter(); | 1009 | self->setFilterTextFromFilter(); |
948 | } | 1010 | } |
949 | 1011 | ||
1012 | // static | ||
1013 | void LLInventoryView::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action, void* data) | ||
1014 | { | ||
1015 | LLInventoryPanel* panel = (LLInventoryPanel*)data; | ||
1016 | LLFolderView* fv = panel->getRootFolder(); | ||
1017 | if (fv->needsAutoRename()) // auto-selecting a new user-created asset and preparing to rename | ||
1018 | { | ||
1019 | fv->setNeedsAutoRename(FALSE); | ||
1020 | if (items.size()) // new asset is visible and selected | ||
1021 | { | ||
1022 | fv->startRenamingSelectedItem(); | ||
1023 | } | ||
1024 | } | ||
1025 | } | ||
1026 | |||
1027 | BOOL LLInventoryView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
1028 | EDragAndDropType cargo_type, | ||
1029 | void* cargo_data, | ||
1030 | EAcceptance* accept, | ||
1031 | LLString& tooltip_msg) | ||
1032 | { | ||
1033 | // Check to see if we are auto scrolling from the last frame | ||
1034 | LLInventoryPanel* panel = (LLInventoryPanel*)this->getActivePanel(); | ||
1035 | BOOL needsToScroll = panel->getScrollableContainer()->needsToScroll(x, y, LLScrollableContainerView::VERTICAL); | ||
1036 | if(mFilterTabs) | ||
1037 | { | ||
1038 | if(needsToScroll) | ||
1039 | { | ||
1040 | mFilterTabs->setDragAndDropDelayTimer(); | ||
1041 | } | ||
1042 | } | ||
1043 | |||
1044 | BOOL handled = LLFloater::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); | ||
1045 | |||
1046 | return handled; | ||
1047 | } | ||
950 | LLUUID get_item_icon_uuid(LLAssetType::EType asset_type, | 1048 | LLUUID get_item_icon_uuid(LLAssetType::EType asset_type, |
951 | LLInventoryType::EType inventory_type, | 1049 | LLInventoryType::EType inventory_type, |
952 | U32 attachment_point, | 1050 | U32 attachment_point, |
@@ -1142,6 +1240,7 @@ BOOL LLInventoryPanel::postBuild() | |||
1142 | } | 1240 | } |
1143 | mFolders->setSortOrder(mFolders->getFilter()->getSortOrder()); | 1241 | mFolders->setSortOrder(mFolders->getFilter()->getSortOrder()); |
1144 | 1242 | ||
1243 | |||
1145 | return TRUE; | 1244 | return TRUE; |
1146 | } | 1245 | } |
1147 | 1246 | ||
@@ -1302,6 +1401,14 @@ void LLInventoryPanel::modelChanged(U32 mask) | |||
1302 | llwarns << *id_it << " is in model but not in view, but ADD flag not set" << llendl; | 1401 | llwarns << *id_it << " is in model but not in view, but ADD flag not set" << llendl; |
1303 | } | 1402 | } |
1304 | buildNewViews(*id_it); | 1403 | buildNewViews(*id_it); |
1404 | |||
1405 | // select any newly created object | ||
1406 | // that has the auto rename at top of folder | ||
1407 | // root set | ||
1408 | if(mFolders->getRoot()->needsAutoRename()) | ||
1409 | { | ||
1410 | setSelection(*id_it, FALSE); | ||
1411 | } | ||
1305 | } | 1412 | } |
1306 | else | 1413 | else |
1307 | { | 1414 | { |
@@ -1526,6 +1633,7 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | |||
1526 | EAcceptance* accept, | 1633 | EAcceptance* accept, |
1527 | LLString& tooltip_msg) | 1634 | LLString& tooltip_msg) |
1528 | { | 1635 | { |
1636 | |||
1529 | BOOL handled = LLPanel::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); | 1637 | BOOL handled = LLPanel::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); |
1530 | 1638 | ||
1531 | if (handled) | 1639 | if (handled) |
@@ -1586,6 +1694,7 @@ void LLInventoryPanel::createNewItem(const char* name, | |||
1586 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | 1694 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), |
1587 | parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type, | 1695 | parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type, |
1588 | NOT_WEARABLE, next_owner_perm, cb); | 1696 | NOT_WEARABLE, next_owner_perm, cb); |
1697 | |||
1589 | } | 1698 | } |
1590 | 1699 | ||
1591 | // static DEBUG ONLY: | 1700 | // static DEBUG ONLY: |
diff --git a/linden/indra/newview/llinventoryview.h b/linden/indra/newview/llinventoryview.h index 536370b..cba1d16 100644 --- a/linden/indra/newview/llinventoryview.h +++ b/linden/indra/newview/llinventoryview.h | |||
@@ -119,6 +119,7 @@ public: | |||
119 | // This method is called when something has changed about the inventory. | 119 | // This method is called when something has changed about the inventory. |
120 | void modelChanged(U32 mask); | 120 | void modelChanged(U32 mask); |
121 | LLFolderView* getRootFolder() { return mFolders; } | 121 | LLFolderView* getRootFolder() { return mFolders; } |
122 | LLScrollableContainerView* getScrollableContainer() { return mScroller; } | ||
122 | 123 | ||
123 | // DEBUG ONLY: | 124 | // DEBUG ONLY: |
124 | static void dumpSelectionInformation(void* user_data); | 125 | static void dumpSelectionInformation(void* user_data); |
@@ -223,6 +224,13 @@ public: | |||
223 | virtual void draw(); | 224 | virtual void draw(); |
224 | virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); | 225 | virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); |
225 | 226 | ||
227 | BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
228 | EDragAndDropType cargo_type, | ||
229 | void* cargo_data, | ||
230 | EAcceptance* accept, | ||
231 | LLString& tooltip_msg); | ||
232 | |||
233 | |||
226 | LLInventoryPanel* getPanel() { return mActivePanel; } | 234 | LLInventoryPanel* getPanel() { return mActivePanel; } |
227 | LLInventoryPanel* getActivePanel() { return mActivePanel; } | 235 | LLInventoryPanel* getActivePanel() { return mActivePanel; } |
228 | 236 | ||
@@ -233,6 +241,7 @@ public: | |||
233 | static void onSearchEdit(const LLString& search_string, void* user_data ); | 241 | static void onSearchEdit(const LLString& search_string, void* user_data ); |
234 | //static void onSearchCommit(LLUICtrl* caller, void* user_data ); | 242 | //static void onSearchCommit(LLUICtrl* caller, void* user_data ); |
235 | static void onFilterSelected(void* userdata, bool from_click); | 243 | static void onFilterSelected(void* userdata, bool from_click); |
244 | static void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action, void* data); | ||
236 | static BOOL incrementalFind(LLFolderViewItem* first_item, const char* find_text, BOOL backward); | 245 | static BOOL incrementalFind(LLFolderViewItem* first_item, const char* find_text, BOOL backward); |
237 | 246 | ||
238 | const LLString getFilterSubString() { return mActivePanel->getFilterSubString(); } | 247 | const LLString getFilterSubString() { return mActivePanel->getFilterSubString(); } |
diff --git a/linden/indra/newview/lllogchat.cpp b/linden/indra/newview/lllogchat.cpp index aaa19ea..ec9b9f5 100644 --- a/linden/indra/newview/lllogchat.cpp +++ b/linden/indra/newview/lllogchat.cpp | |||
@@ -29,18 +29,40 @@ | |||
29 | #include "llviewerprecompiledheaders.h" | 29 | #include "llviewerprecompiledheaders.h" |
30 | 30 | ||
31 | #include "lllogchat.h" | 31 | #include "lllogchat.h" |
32 | 32 | #include "viewer.h" | |
33 | |||
33 | const S32 LOG_RECALL_SIZE = 2048; | 34 | const S32 LOG_RECALL_SIZE = 2048; |
34 | 35 | ||
35 | //static | 36 | //static |
36 | LLString LLLogChat::makeLogFileName(LLString filename) | 37 | LLString LLLogChat::makeLogFileName(LLString filename) |
37 | { | 38 | { |
38 | |||
39 | filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_ACCOUNT_CHAT_LOGS,filename.c_str()); | 39 | filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_ACCOUNT_CHAT_LOGS,filename.c_str()); |
40 | filename += ".txt"; | 40 | filename += ".txt"; |
41 | return filename; | 41 | return filename; |
42 | } | 42 | } |
43 | 43 | ||
44 | LLString LLLogChat::timestamp(bool withdate) | ||
45 | { | ||
46 | U32 utc_time; | ||
47 | utc_time = time_corrected(); | ||
48 | |||
49 | // There's only one internal tm buffer. | ||
50 | struct tm* timep; | ||
51 | |||
52 | // Convert to Pacific, based on server's opinion of whether | ||
53 | // it's daylight savings time there. | ||
54 | timep = utc_to_pacific_time(utc_time, gPacificDaylightTime); | ||
55 | |||
56 | LLString text; | ||
57 | if (withdate) | ||
58 | text = llformat("[%d/%02d/%02d %d:%02d] ", (timep->tm_year-100)+2000, timep->tm_mon+1, timep->tm_mday, timep->tm_hour, timep->tm_min); | ||
59 | else | ||
60 | text = llformat("[%d:%02d] ", timep->tm_hour, timep->tm_min); | ||
61 | |||
62 | return text; | ||
63 | } | ||
64 | |||
65 | |||
44 | //static | 66 | //static |
45 | void LLLogChat::saveHistory(LLString filename, LLString line) | 67 | void LLLogChat::saveHistory(LLString filename, LLString line) |
46 | { | 68 | { |
diff --git a/linden/indra/newview/lllogchat.h b/linden/indra/newview/lllogchat.h index 56ea04b..c82f04e 100644 --- a/linden/indra/newview/lllogchat.h +++ b/linden/indra/newview/lllogchat.h | |||
@@ -33,6 +33,7 @@ | |||
33 | class LLLogChat | 33 | class LLLogChat |
34 | { | 34 | { |
35 | public: | 35 | public: |
36 | static LLString timestamp(bool withdate = false); | ||
36 | static LLString makeLogFileName(LLString(filename)); | 37 | static LLString makeLogFileName(LLString(filename)); |
37 | static void saveHistory(LLString filename, LLString line); | 38 | static void saveHistory(LLString filename, LLString line); |
38 | static void loadHistory(LLString filename, void (*callback)(LLString,void*),void* userdata); | 39 | static void loadHistory(LLString filename, void (*callback)(LLString,void*),void* userdata); |
diff --git a/linden/indra/newview/llmanip.cpp b/linden/indra/newview/llmanip.cpp index 1db0a6c..3d27256 100644 --- a/linden/indra/newview/llmanip.cpp +++ b/linden/indra/newview/llmanip.cpp | |||
@@ -560,7 +560,7 @@ void LLManip::renderTickValue(const LLVector3& pos, F32 value, const char* suffi | |||
560 | LLGLEnable tex(GL_TEXTURE_2D); | 560 | LLGLEnable tex(GL_TEXTURE_2D); |
561 | if (fractional_portion != 0) | 561 | if (fractional_portion != 0) |
562 | { | 562 | { |
563 | snprintf(fraction_string, sizeof(fraction_string), "%c%d%s", gResMgr->getDecimalPoint(), fractional_portion, suffix); /* Flawfinder: ignore */ | 563 | snprintf(fraction_string, sizeof(fraction_string), "%c%02d%s", gResMgr->getDecimalPoint(), fractional_portion, suffix); /* Flawfinder: ignore */ |
564 | 564 | ||
565 | gViewerWindow->setupViewport(1, -1); | 565 | gViewerWindow->setupViewport(1, -1); |
566 | hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, -1.f * big_fontp->getWidthF32(val_string), 3.f, shadow_color, hud_selection); | 566 | hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, -1.f * big_fontp->getWidthF32(val_string), 3.f, shadow_color, hud_selection); |
diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp index aaab416..940e78a 100644 --- a/linden/indra/newview/llmaniprotate.cpp +++ b/linden/indra/newview/llmaniprotate.cpp | |||
@@ -381,7 +381,7 @@ BOOL LLManipRotate::handleMouseDownOnPart( S32 x, S32 y, MASK mask ) | |||
381 | objectp; | 381 | objectp; |
382 | objectp = mObjectSelection->getNextObject()) | 382 | objectp = mObjectSelection->getNextObject()) |
383 | { | 383 | { |
384 | can_rotate = can_rotate && objectp->permMove() && (objectp->permModify() || gSavedSettings.getBOOL("SelectLinkedSet")); | 384 | can_rotate = can_rotate && objectp->permMove() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); |
385 | } | 385 | } |
386 | 386 | ||
387 | if (!can_rotate) | 387 | if (!can_rotate) |
diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp index 648be34..c130824 100644 --- a/linden/indra/newview/llmanipscale.cpp +++ b/linden/indra/newview/llmanipscale.cpp | |||
@@ -1222,7 +1222,7 @@ void LLManipScale::sendUpdates( BOOL send_position_update, BOOL send_scale_updat | |||
1222 | mLastUpdateFlags = update_flags; | 1222 | mLastUpdateFlags = update_flags; |
1223 | 1223 | ||
1224 | // enforce minimum update delay and don't stream updates on sub-object selections | 1224 | // enforce minimum update delay and don't stream updates on sub-object selections |
1225 | if( elapsed_time > UPDATE_DELAY && gSavedSettings.getBOOL("SelectLinkedSet") ) | 1225 | if( elapsed_time > UPDATE_DELAY && !gSavedSettings.getBOOL("EditLinkedParts") ) |
1226 | { | 1226 | { |
1227 | gSelectMgr->sendMultipleUpdate( update_flags ); | 1227 | gSelectMgr->sendMultipleUpdate( update_flags ); |
1228 | update_timer.reset(); | 1228 | update_timer.reset(); |
diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp index 0bdfbb3..a7312fc 100644 --- a/linden/indra/newview/llmaniptranslate.cpp +++ b/linden/indra/newview/llmaniptranslate.cpp | |||
@@ -298,7 +298,7 @@ BOOL LLManipTranslate::handleMouseDownOnPart( S32 x, S32 y, MASK mask ) | |||
298 | objectp; | 298 | objectp; |
299 | objectp = mObjectSelection->getNextObject()) | 299 | objectp = mObjectSelection->getNextObject()) |
300 | { | 300 | { |
301 | can_move = can_move && objectp->permMove() && (objectp->permModify() || gSavedSettings.getBOOL("SelectLinkedSet")); | 301 | can_move = can_move && objectp->permMove() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); |
302 | } | 302 | } |
303 | 303 | ||
304 | if (!can_move) | 304 | if (!can_move) |
diff --git a/linden/indra/newview/llmapresponders.cpp b/linden/indra/newview/llmapresponders.cpp index ddf5701..9d84064 100644 --- a/linden/indra/newview/llmapresponders.cpp +++ b/linden/indra/newview/llmapresponders.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * @file llmapresponders.h | 2 | * @file llmapresponders.cpp |
3 | * @brief Processes responses received for map requests. | 3 | * @brief Processes responses received for map requests. |
4 | * | 4 | * |
5 | * Copyright (c) 2006-2007, Linden Research, Inc. | 5 | * Copyright (c) 2006-2007, Linden Research, Inc. |
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp index c2ca740..bca9080 100644 --- a/linden/indra/newview/llmutelist.cpp +++ b/linden/indra/newview/llmutelist.cpp | |||
@@ -376,8 +376,10 @@ BOOL LLMuteList::loadFromFile(const LLString& filename) | |||
376 | id_buffer[0] = '\0'; | 376 | id_buffer[0] = '\0'; |
377 | name_buffer[0] = '\0'; | 377 | name_buffer[0] = '\0'; |
378 | S32 type = 0; | 378 | S32 type = 0; |
379 | U32 flags = 0; | ||
379 | sscanf( /* Flawfinder: ignore */ | 380 | sscanf( /* Flawfinder: ignore */ |
380 | buffer, " %d %254s %254[^|]", &type, id_buffer, name_buffer); | 381 | buffer, " %d %254s %254[^|]| %u\n", &type, id_buffer, name_buffer, |
382 | &flags); | ||
381 | LLUUID id = LLUUID(id_buffer); | 383 | LLUUID id = LLUUID(id_buffer); |
382 | LLMute mute(id, name_buffer, (LLMute::EType)type); | 384 | LLMute mute(id, name_buffer, (LLMute::EType)type); |
383 | if (mute.mID.isNull() | 385 | if (mute.mID.isNull() |
diff --git a/linden/indra/newview/llnotify.cpp b/linden/indra/newview/llnotify.cpp index e2626b4..7822d00 100644 --- a/linden/indra/newview/llnotify.cpp +++ b/linden/indra/newview/llnotify.cpp | |||
@@ -71,6 +71,16 @@ void LLNotifyBox::showXml( const LLString& xml_desc, notify_callback_t callback, | |||
71 | return showXml(xml_desc, LLString::format_map_t(), callback, user_data); | 71 | return showXml(xml_desc, LLString::format_map_t(), callback, user_data); |
72 | } | 72 | } |
73 | 73 | ||
74 | |||
75 | //static | ||
76 | void LLNotifyBox::showXml( const LLString& xml_desc, const LLString::format_map_t& args, BOOL is_caution, | ||
77 | notify_callback_t callback, void *user_data) | ||
78 | { | ||
79 | // for script permission prompts | ||
80 | LLNotifyBox* notify = new LLNotifyBox(xml_desc, args, callback, user_data, is_caution); | ||
81 | gNotifyBoxView->addChild(notify); | ||
82 | } | ||
83 | |||
74 | //static | 84 | //static |
75 | void LLNotifyBox::showXml( const LLString& xml_desc, const LLString::format_map_t& args, | 85 | void LLNotifyBox::showXml( const LLString& xml_desc, const LLString::format_map_t& args, |
76 | notify_callback_t callback, void *user_data) | 86 | notify_callback_t callback, void *user_data) |
@@ -85,7 +95,7 @@ void LLNotifyBox::showXml( const LLString& xml_desc, const LLString::format_map_ | |||
85 | const option_list_t& options, | 95 | const option_list_t& options, |
86 | BOOL layout_script_dialog) | 96 | BOOL layout_script_dialog) |
87 | { | 97 | { |
88 | LLNotifyBox* notify = new LLNotifyBox(xml_desc, args, callback, user_data, options, layout_script_dialog); | 98 | LLNotifyBox* notify = new LLNotifyBox(xml_desc, args, callback, user_data, FALSE, options, layout_script_dialog); |
89 | gNotifyBoxView->addChild(notify); | 99 | gNotifyBoxView->addChild(notify); |
90 | } | 100 | } |
91 | 101 | ||
@@ -99,7 +109,7 @@ void LLNotifyBox::cleanup() | |||
99 | //--------------------------------------------------------------------------- | 109 | //--------------------------------------------------------------------------- |
100 | 110 | ||
101 | LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& args, | 111 | LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& args, |
102 | notify_callback_t callback, void* user_data, | 112 | notify_callback_t callback, void* user_data, BOOL is_caution, |
103 | const option_list_t& extra_options, | 113 | const option_list_t& extra_options, |
104 | BOOL layout_script_dialog) | 114 | BOOL layout_script_dialog) |
105 | : LLPanel("notify", LLRect(), BORDER_NO), | 115 | : LLPanel("notify", LLRect(), BORDER_NO), |
@@ -152,9 +162,19 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
152 | options.insert(options.end(), extra_options.begin(), extra_options.end()); | 162 | options.insert(options.end(), extra_options.begin(), extra_options.end()); |
153 | 163 | ||
154 | // initialize | 164 | // initialize |
155 | 165 | ||
156 | mIsTip = xml_template->mIsTip; | 166 | mIsTip = xml_template->mIsTip; |
157 | mIsFocusRoot = !mIsTip; | 167 | mIsFocusRoot = !mIsTip; |
168 | |||
169 | // caution flag can be set explicitly by specifying it in the | ||
170 | // call to the c'tor, or it can be set implicitly if the | ||
171 | // notify xml template specifies that it is a caution | ||
172 | // | ||
173 | // (but a tip-style notification cannot be a caution notification, | ||
174 | // since the rendering of the additional top textbox doesn't | ||
175 | // account for the special layout of a tip notification) | ||
176 | mIsCaution = ((xml_template->mIsCaution | is_caution) && (!mIsTip)); | ||
177 | |||
158 | mAnimating = TRUE; | 178 | mAnimating = TRUE; |
159 | mCallback = callback; | 179 | mCallback = callback; |
160 | mData = user_data; | 180 | mData = user_data; |
@@ -162,7 +182,7 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
162 | mDefaultOption = xml_template->mDefaultOption; | 182 | mDefaultOption = xml_template->mDefaultOption; |
163 | 183 | ||
164 | LLRect rect = mIsTip ? getNotifyTipRect(message) | 184 | LLRect rect = mIsTip ? getNotifyTipRect(message) |
165 | : getNotifyRect(mNumOptions, layout_script_dialog); | 185 | : getNotifyRect(mNumOptions, layout_script_dialog, mIsCaution); |
166 | setRect(rect); | 186 | setRect(rect); |
167 | setFollows(mIsTip ? (FOLLOWS_BOTTOM|FOLLOWS_RIGHT) : (FOLLOWS_TOP|FOLLOWS_RIGHT)); | 187 | setFollows(mIsTip ? (FOLLOWS_BOTTOM|FOLLOWS_RIGHT) : (FOLLOWS_TOP|FOLLOWS_RIGHT)); |
168 | setBackgroundVisible(FALSE); | 188 | setBackgroundVisible(FALSE); |
@@ -171,18 +191,57 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
171 | LLIconCtrl* icon; | 191 | LLIconCtrl* icon; |
172 | LLTextEditor* text; | 192 | LLTextEditor* text; |
173 | 193 | ||
174 | S32 x = HPAD + HPAD; | ||
175 | const S32 TOP = mRect.getHeight() - (mIsTip ? (S32)sFont->getLineHeight() : 32); | 194 | const S32 TOP = mRect.getHeight() - (mIsTip ? (S32)sFont->getLineHeight() : 32); |
176 | const S32 BOTTOM = (S32)sFont->getLineHeight(); | 195 | const S32 BOTTOM = (S32)sFont->getLineHeight(); |
196 | S32 x = HPAD + HPAD; | ||
197 | S32 y = TOP; | ||
198 | |||
199 | if (mIsTip) | ||
200 | { | ||
201 | // use the tip notification icon | ||
202 | icon = new LLIconCtrl("icon", LLRect(x, y, x+32, TOP-32), "notify_tip_icon.tga"); | ||
203 | } | ||
204 | else if (mIsCaution) | ||
205 | { | ||
206 | // use the caution notification icon | ||
207 | icon = new LLIconCtrl("icon", LLRect(x, y, x+32, TOP-32), "notify_caution_icon.tga"); | ||
208 | } | ||
209 | else | ||
210 | { | ||
211 | // use the default notification icon | ||
212 | icon = new LLIconCtrl("icon", LLRect(x, y, x+32, TOP-32), "notify_box_icon.tga"); | ||
213 | } | ||
177 | 214 | ||
178 | icon = new LLIconCtrl("icon", | ||
179 | LLRect(x, TOP, x+32, TOP-32), | ||
180 | mIsTip ? "notify_tip_icon.tga" : "notify_box_icon.tga"); | ||
181 | icon->setMouseOpaque(FALSE); | 215 | icon->setMouseOpaque(FALSE); |
182 | addChild(icon); | 216 | addChild(icon); |
183 | 217 | ||
184 | x += HPAD + HPAD + 32; | 218 | x += HPAD + HPAD + 32; |
185 | 219 | ||
220 | // add a caution textbox at the top of a caution notification | ||
221 | LLTextBox* caution_box = NULL; | ||
222 | if (mIsCaution) | ||
223 | { | ||
224 | S32 caution_height = ((S32)sFont->getLineHeight() * 2) + VPAD; | ||
225 | caution_box = new LLTextBox( | ||
226 | "caution_box", | ||
227 | LLRect(x, y, mRect.getWidth() - 2, caution_height), | ||
228 | "", | ||
229 | sFont, | ||
230 | FALSE); | ||
231 | |||
232 | caution_box->setFontStyle(LLFontGL::BOLD); | ||
233 | caution_box->setColor(gColors.getColor("NotifyCautionWarnColor")); | ||
234 | caution_box->setBackgroundColor(gColors.getColor("NotifyCautionBoxColor")); | ||
235 | caution_box->setBorderVisible(FALSE); | ||
236 | caution_box->setWrappedText(LLNotifyBox::getTemplateMessage("ScriptQuestionCautionWarn")); | ||
237 | |||
238 | addChild(caution_box); | ||
239 | |||
240 | // adjust the vertical position of the next control so that | ||
241 | // it appears below the caution textbox | ||
242 | y = y - caution_height; | ||
243 | } | ||
244 | |||
186 | const S32 BOTTOM_PAD = VPAD * 3; | 245 | const S32 BOTTOM_PAD = VPAD * 3; |
187 | const S32 BTN_TOP = BOTTOM_PAD + (((mNumOptions-1+2)/3)) * (BTN_HEIGHT+VPAD); | 246 | const S32 BTN_TOP = BOTTOM_PAD + (((mNumOptions-1+2)/3)) * (BTN_HEIGHT+VPAD); |
188 | 247 | ||
@@ -194,7 +253,7 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
194 | DB_INV_ITEM_NAME_BUF_SIZE; // For script dialogs: add space for title. | 253 | DB_INV_ITEM_NAME_BUF_SIZE; // For script dialogs: add space for title. |
195 | 254 | ||
196 | text = new LLTextEditor("box", | 255 | text = new LLTextEditor("box", |
197 | LLRect(x, TOP, mRect.getWidth()-2, mIsTip ? BOTTOM : BTN_TOP+16), | 256 | LLRect(x, y, mRect.getWidth()-2, mIsTip ? BOTTOM : BTN_TOP+16), |
198 | MAX_LENGTH, | 257 | MAX_LENGTH, |
199 | message, | 258 | message, |
200 | sFont, | 259 | sFont, |
@@ -235,7 +294,9 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
235 | addChild(btn); | 294 | addChild(btn); |
236 | mNextBtn = btn; | 295 | mNextBtn = btn; |
237 | 296 | ||
238 | S32 btn_width = 90; | 297 | // make caution notification buttons slightly narrower |
298 | // so that 3 of them can fit without overlapping the "next" button | ||
299 | S32 btn_width = mIsCaution? 84 : 90; | ||
239 | LLRect btn_rect; | 300 | LLRect btn_rect; |
240 | 301 | ||
241 | for (S32 i = 0; i < mNumOptions; i++) | 302 | for (S32 i = 0; i < mNumOptions; i++) |
@@ -271,6 +332,13 @@ LLNotifyBox::LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& | |||
271 | 332 | ||
272 | btn = new LLButton(options[i], btn_rect, "", onClickButton, userdata); | 333 | btn = new LLButton(options[i], btn_rect, "", onClickButton, userdata); |
273 | btn->setFont(font); | 334 | btn->setFont(font); |
335 | |||
336 | if (mIsCaution) | ||
337 | { | ||
338 | btn->setImageColor(LLUI::sColorsGroup->getColor("ButtonCautionImageColor")); | ||
339 | btn->setDisabledImageColor(LLUI::sColorsGroup->getColor("ButtonCautionImageColor")); | ||
340 | } | ||
341 | |||
274 | addChild(btn, -1); | 342 | addChild(btn, -1); |
275 | 343 | ||
276 | if (i == mDefaultOption) | 344 | if (i == mDefaultOption) |
@@ -374,7 +442,8 @@ void LLNotifyBox::drawBackground() const | |||
374 | { | 442 | { |
375 | LLGLSTexture texture_enabled; | 443 | LLGLSTexture texture_enabled; |
376 | LLViewerImage::bindTexture(imagep); | 444 | LLViewerImage::bindTexture(imagep); |
377 | LLColor4 color = gColors.getColor("NotifyBoxColor"); | 445 | // set proper background color depending on whether notify box is a caution or not |
446 | LLColor4 color = mIsCaution? gColors.getColor("NotifyCautionBoxColor") : gColors.getColor("NotifyBoxColor"); | ||
378 | if(gFocusMgr.childHasKeyboardFocus( this )) | 447 | if(gFocusMgr.childHasKeyboardFocus( this )) |
379 | { | 448 | { |
380 | const S32 focus_width = 2; | 449 | const S32 focus_width = 2; |
@@ -387,7 +456,12 @@ void LLNotifyBox::drawBackground() const | |||
387 | color = gColors.getColor("ColorDropShadow"); | 456 | color = gColors.getColor("ColorDropShadow"); |
388 | glColor4fv(color.mV); | 457 | glColor4fv(color.mV); |
389 | gl_segmented_rect_2d_tex(0, mRect.getHeight(), mRect.getWidth(), 0, imagep->getWidth(), imagep->getHeight(), 16, mIsTip ? ROUNDED_RECT_TOP : ROUNDED_RECT_BOTTOM); | 458 | gl_segmented_rect_2d_tex(0, mRect.getHeight(), mRect.getWidth(), 0, imagep->getWidth(), imagep->getHeight(), 16, mIsTip ? ROUNDED_RECT_TOP : ROUNDED_RECT_BOTTOM); |
390 | color = gColors.getColor("NotifyBoxColor"); | 459 | |
460 | if( mIsCaution ) | ||
461 | color = gColors.getColor("NotifyCautionBoxColor"); | ||
462 | else | ||
463 | color = gColors.getColor("NotifyBoxColor"); | ||
464 | |||
391 | glColor4fv(color.mV); | 465 | glColor4fv(color.mV); |
392 | gl_segmented_rect_2d_tex(1, mRect.getHeight()-1, mRect.getWidth()-1, 1, imagep->getWidth(), imagep->getHeight(), 16, mIsTip ? ROUNDED_RECT_TOP : ROUNDED_RECT_BOTTOM); | 466 | gl_segmented_rect_2d_tex(1, mRect.getHeight()-1, mRect.getWidth()-1, 1, imagep->getWidth(), imagep->getHeight(), 16, mIsTip ? ROUNDED_RECT_TOP : ROUNDED_RECT_BOTTOM); |
393 | } | 467 | } |
@@ -467,9 +541,17 @@ void LLNotifyBox::moveToBack() | |||
467 | 541 | ||
468 | 542 | ||
469 | // static | 543 | // static |
470 | LLRect LLNotifyBox::getNotifyRect(S32 num_options, BOOL layout_script_dialog) | 544 | LLRect LLNotifyBox::getNotifyRect(S32 num_options, BOOL layout_script_dialog, BOOL is_caution) |
471 | { | 545 | { |
472 | S32 notify_height = gSavedSettings.getS32("NotifyBoxHeight"); | 546 | S32 notify_height = gSavedSettings.getS32("NotifyBoxHeight"); |
547 | if (is_caution) | ||
548 | { | ||
549 | // make caution-style dialog taller to accomodate extra text, | ||
550 | // as well as causing the accept/decline buttons to be drawn | ||
551 | // in a different position, to help prevent "quick-click-through" | ||
552 | // of many permissions prompts | ||
553 | notify_height = gSavedSettings.getS32("PermissionsCautionNotifyBoxHeight"); | ||
554 | } | ||
473 | const S32 NOTIFY_WIDTH = gSavedSettings.getS32("NotifyBoxWidth"); | 555 | const S32 NOTIFY_WIDTH = gSavedSettings.getS32("NotifyBoxWidth"); |
474 | 556 | ||
475 | const S32 TOP = gNotifyBoxView->getRect().getHeight(); | 557 | const S32 TOP = gNotifyBoxView->getRect().getHeight(); |
@@ -588,6 +670,17 @@ void LLNotifyBox::onClickButton(void* data) | |||
588 | LLNotifyBox* self = self_and_button->mSelf; | 670 | LLNotifyBox* self = self_and_button->mSelf; |
589 | S32 button = self_and_button->mButton; | 671 | S32 button = self_and_button->mButton; |
590 | 672 | ||
673 | // for caution notifications, check if the last button in the prompt was clicked | ||
674 | // unless it is the only button, in which case it will just be an "OK" button | ||
675 | if ((self->mIsCaution) && (button > 0) && (button == (self->mNumOptions - 1))) | ||
676 | { | ||
677 | // show an alert dialog containing more explanation about the debit permission | ||
678 | LLAlertDialog::showXml("DebitPermissionDetails"); | ||
679 | |||
680 | // keep this notification open | ||
681 | return; | ||
682 | } | ||
683 | |||
591 | if (self->mCallback) | 684 | if (self->mCallback) |
592 | { | 685 | { |
593 | self->mCallback(button, self->mData); | 686 | self->mCallback(button, self->mData); |
@@ -620,6 +713,20 @@ const LLString& LLNotifyBox::getTemplateMessage(const LLString& xml_desc) | |||
620 | } | 713 | } |
621 | } | 714 | } |
622 | 715 | ||
716 | // method to check whether a given notify template show as a caution or not | ||
717 | BOOL LLNotifyBox::getTemplateIsCaution(const LLString& xml_desc) | ||
718 | { | ||
719 | BOOL is_caution = FALSE; | ||
720 | |||
721 | template_map_t::iterator iter = sNotifyTemplates.find(xml_desc); | ||
722 | if (iter != sNotifyTemplates.end()) | ||
723 | { | ||
724 | is_caution = iter->second->mIsCaution; | ||
725 | } | ||
726 | |||
727 | return is_caution; | ||
728 | } | ||
729 | |||
623 | //static | 730 | //static |
624 | bool LLNotifyBox::parseNotify(const LLString& xml_filename) | 731 | bool LLNotifyBox::parseNotify(const LLString& xml_filename) |
625 | { | 732 | { |
@@ -660,6 +767,18 @@ bool LLNotifyBox::parseNotify(const LLString& xml_filename) | |||
660 | { | 767 | { |
661 | xml_template->mIsTip = tip; | 768 | xml_template->mIsTip = tip; |
662 | } | 769 | } |
770 | |||
771 | // parse a bool attribute named "caution" to determine | ||
772 | // whether this notification gets cautionary special handling | ||
773 | BOOL caution = FALSE; | ||
774 | if (notify->getAttributeBOOL("caution", caution)) | ||
775 | { | ||
776 | if (xml_template) | ||
777 | { | ||
778 | xml_template->mIsCaution = caution; | ||
779 | } | ||
780 | } | ||
781 | |||
663 | 782 | ||
664 | S32 btn_idx = 0; | 783 | S32 btn_idx = 0; |
665 | for (LLXMLNode* child = notify->getFirstChild(); | 784 | for (LLXMLNode* child = notify->getFirstChild(); |
diff --git a/linden/indra/newview/llnotify.h b/linden/indra/newview/llnotify.h index 8136cfc..eec27ec 100644 --- a/linden/indra/newview/llnotify.h +++ b/linden/indra/newview/llnotify.h | |||
@@ -46,7 +46,8 @@ public: | |||
46 | 46 | ||
47 | static void showXml( const LLString& xml_desc, | 47 | static void showXml( const LLString& xml_desc, |
48 | notify_callback_t callback = NULL, void *user_data = NULL); | 48 | notify_callback_t callback = NULL, void *user_data = NULL); |
49 | 49 | static void showXml( const LLString& xml_desc, const LLString::format_map_t& args, BOOL is_caution, | |
50 | notify_callback_t callback = NULL, void *user_data = NULL); | ||
50 | static void showXml( const LLString& xml_desc, const LLString::format_map_t& args, | 51 | static void showXml( const LLString& xml_desc, const LLString::format_map_t& args, |
51 | notify_callback_t callback = NULL, void *user_data = NULL); | 52 | notify_callback_t callback = NULL, void *user_data = NULL); |
52 | // For script notifications: | 53 | // For script notifications: |
@@ -57,8 +58,10 @@ public: | |||
57 | 58 | ||
58 | static bool parseNotify(const LLString& xml_filename); | 59 | static bool parseNotify(const LLString& xml_filename); |
59 | static const LLString& getTemplateMessage(const LLString& xml_desc); | 60 | static const LLString& getTemplateMessage(const LLString& xml_desc); |
61 | static BOOL getTemplateIsCaution(const LLString& xml_desc); | ||
60 | 62 | ||
61 | BOOL isTip() const { return mIsTip; } | 63 | BOOL isTip() const { return mIsTip; } |
64 | BOOL isCaution() const { return mIsCaution; } | ||
62 | /*virtual*/ void setVisible(BOOL visible); | 65 | /*virtual*/ void setVisible(BOOL visible); |
63 | 66 | ||
64 | notify_callback_t getNotifyCallback() { return mCallback; } | 67 | notify_callback_t getNotifyCallback() { return mCallback; } |
@@ -69,6 +72,7 @@ public: | |||
69 | protected: | 72 | protected: |
70 | LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& args, | 73 | LLNotifyBox(const LLString& xml_desc, const LLString::format_map_t& args, |
71 | notify_callback_t callback, void* user_data, | 74 | notify_callback_t callback, void* user_data, |
75 | BOOL is_caution = FALSE, | ||
72 | const option_list_t& extra_options = option_list_t(), | 76 | const option_list_t& extra_options = option_list_t(), |
73 | BOOL layout_script_dialog = FALSE); | 77 | BOOL layout_script_dialog = FALSE); |
74 | /*virtual*/ ~LLNotifyBox(); | 78 | /*virtual*/ ~LLNotifyBox(); |
@@ -86,7 +90,7 @@ protected: | |||
86 | 90 | ||
87 | // Returns the rect, relative to gNotifyView, where this | 91 | // Returns the rect, relative to gNotifyView, where this |
88 | // notify box should be placed. | 92 | // notify box should be placed. |
89 | static LLRect getNotifyRect(S32 num_options, BOOL layout_script_dialog); | 93 | static LLRect getNotifyRect(S32 num_options, BOOL layout_script_dialog, BOOL is_caution); |
90 | static LLRect getNotifyTipRect(const LLString &message); | 94 | static LLRect getNotifyTipRect(const LLString &message); |
91 | 95 | ||
92 | // internal handler for button being clicked | 96 | // internal handler for button being clicked |
@@ -102,6 +106,7 @@ private: | |||
102 | 106 | ||
103 | protected: | 107 | protected: |
104 | BOOL mIsTip; | 108 | BOOL mIsTip; |
109 | BOOL mIsCaution; // is this a caution notification? | ||
105 | BOOL mAnimating; // Are we sliding onscreen? | 110 | BOOL mAnimating; // Are we sliding onscreen? |
106 | 111 | ||
107 | // Time since this notification was displayed. | 112 | // Time since this notification was displayed. |
@@ -149,7 +154,7 @@ extern LLNotifyBoxView* gNotifyBoxView; | |||
149 | class LLNotifyBoxTemplate : public LLRefCount | 154 | class LLNotifyBoxTemplate : public LLRefCount |
150 | { | 155 | { |
151 | public: | 156 | public: |
152 | LLNotifyBoxTemplate() : mIsTip(FALSE), mDefaultOption(0) {} | 157 | LLNotifyBoxTemplate() : mIsTip(FALSE), mIsCaution(FALSE), mDefaultOption(0) {} |
153 | 158 | ||
154 | void setMessage(const LLString& message) | 159 | void setMessage(const LLString& message) |
155 | { | 160 | { |
@@ -169,6 +174,7 @@ public: | |||
169 | LLString mLabel; // Handle for access from code, etc | 174 | LLString mLabel; // Handle for access from code, etc |
170 | LLString mMessage; // Message to display | 175 | LLString mMessage; // Message to display |
171 | BOOL mIsTip; | 176 | BOOL mIsTip; |
177 | BOOL mIsCaution; | ||
172 | LLNotifyBox::option_list_t mOptions; | 178 | LLNotifyBox::option_list_t mOptions; |
173 | S32 mDefaultOption; | 179 | S32 mDefaultOption; |
174 | }; | 180 | }; |
diff --git a/linden/indra/newview/llpaneldirbrowser.cpp b/linden/indra/newview/llpaneldirbrowser.cpp index b65480b..52bd0f7 100644 --- a/linden/indra/newview/llpaneldirbrowser.cpp +++ b/linden/indra/newview/llpaneldirbrowser.cpp | |||
@@ -128,8 +128,11 @@ void LLPanelDirBrowser::draw() | |||
128 | LLCtrlListInterface *list = childGetListInterface("results"); | 128 | LLCtrlListInterface *list = childGetListInterface("results"); |
129 | if (list) | 129 | if (list) |
130 | { | 130 | { |
131 | list->selectFirstItem(); // select first item by default | 131 | if (list->getCanSelect()) |
132 | childSetFocus("results", TRUE); | 132 | { |
133 | list->selectFirstItem(); // select first item by default | ||
134 | childSetFocus("results", TRUE); | ||
135 | } | ||
133 | // Request specific data from the server | 136 | // Request specific data from the server |
134 | onCommitList(NULL, this); | 137 | onCommitList(NULL, this); |
135 | } | 138 | } |
diff --git a/linden/indra/newview/llpaneldirclassified.cpp b/linden/indra/newview/llpaneldirclassified.cpp index 8b4a49d..276b608 100644 --- a/linden/indra/newview/llpaneldirclassified.cpp +++ b/linden/indra/newview/llpaneldirclassified.cpp | |||
@@ -55,6 +55,7 @@ | |||
55 | #include "llpaneldirbrowser.h" | 55 | #include "llpaneldirbrowser.h" |
56 | #include "lltextbox.h" | 56 | #include "lltextbox.h" |
57 | #include "llviewermessage.h" | 57 | #include "llviewermessage.h" |
58 | #include "llvieweruictrlfactory.h" | ||
58 | #include "llworldmap.h" | 59 | #include "llworldmap.h" |
59 | 60 | ||
60 | // | 61 | // |
@@ -85,7 +86,8 @@ BOOL LLPanelDirClassified::postBuild() | |||
85 | childSetKeystrokeCallback("name", onKeystrokeNameClassified, this); | 86 | childSetKeystrokeCallback("name", onKeystrokeNameClassified, this); |
86 | 87 | ||
87 | childSetAction("Search", onClickSearchCore, this); | 88 | childSetAction("Search", onClickSearchCore, this); |
88 | setDefaultBtn( "Search" ); | 89 | childSetAction("Browse", onClickSearchCore, this); |
90 | setDefaultBtn( "Browse" ); | ||
89 | 91 | ||
90 | childSetAction("Place an Ad...", onClickCreateNewClassified, this); | 92 | childSetAction("Place an Ad...", onClickCreateNewClassified, this); |
91 | 93 | ||
@@ -186,6 +188,7 @@ void LLPanelDirClassified::performQuery() | |||
186 | void LLPanelDirClassified::onKeystrokeNameClassified(LLLineEditor* line, void* data) | 188 | void LLPanelDirClassified::onKeystrokeNameClassified(LLLineEditor* line, void* data) |
187 | { | 189 | { |
188 | LLPanelDirClassified *self = (LLPanelDirClassified*)data; | 190 | LLPanelDirClassified *self = (LLPanelDirClassified*)data; |
191 | |||
189 | S32 len = line->getLength(); | 192 | S32 len = line->getLength(); |
190 | if (len == 0 | 193 | if (len == 0 |
191 | || len >= 3) | 194 | || len >= 3) |
@@ -199,4 +202,17 @@ void LLPanelDirClassified::onKeystrokeNameClassified(LLLineEditor* line, void* d | |||
199 | self->setDefaultBtn(); | 202 | self->setDefaultBtn(); |
200 | self->childDisable("Search"); | 203 | self->childDisable("Search"); |
201 | } | 204 | } |
205 | |||
206 | // Change the Browse to Search or vice versa | ||
207 | if (len > 0) | ||
208 | { | ||
209 | self->childSetVisible("Search", TRUE); | ||
210 | self->childSetVisible("Browse", FALSE); | ||
211 | } | ||
212 | else | ||
213 | { | ||
214 | self->setDefaultBtn( "Browse" ); | ||
215 | self->childSetVisible("Search", FALSE); | ||
216 | self->childSetVisible("Browse", TRUE); | ||
217 | } | ||
202 | } | 218 | } |
diff --git a/linden/indra/newview/llpanelgroupvoting.cpp b/linden/indra/newview/llpanelgroupvoting.cpp index 8b8cd76..e21af7a 100644 --- a/linden/indra/newview/llpanelgroupvoting.cpp +++ b/linden/indra/newview/llpanelgroupvoting.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * @file llpanelgroupvoting.h | 2 | * @file llpanelgroupvoting.cpp |
3 | * @brief LLPanelGroupVoting class definition. | 3 | * @brief LLPanelGroupVoting class definition. |
4 | * | 4 | * |
5 | * Copyright (c) 2003-2007, Linden Research, Inc. | 5 | * Copyright (c) 2003-2007, Linden Research, Inc. |
diff --git a/linden/indra/newview/llpanelinventory.cpp b/linden/indra/newview/llpanelinventory.cpp index 13cee05..13f07c0 100644 --- a/linden/indra/newview/llpanelinventory.cpp +++ b/linden/indra/newview/llpanelinventory.cpp | |||
@@ -223,39 +223,38 @@ void LLTaskInvFVBridge::buyItem() | |||
223 | { | 223 | { |
224 | gViewerWindow->alertXml("Cannot_Purchase_an_Attachment"); | 224 | gViewerWindow->alertXml("Cannot_Purchase_an_Attachment"); |
225 | llinfos << "Attempt to purchase an attachment" << llendl; | 225 | llinfos << "Attempt to purchase an attachment" << llendl; |
226 | delete inv; | ||
226 | } | 227 | } |
227 | else | 228 | else |
228 | { | 229 | { |
229 | 230 | LLString::format_map_t args; | |
230 | 231 | args["[PRICE]"] = llformat("%d",sale_info.getSalePrice()); | |
231 | LLString::format_map_t args; | 232 | args["[OWNER]"] = owner_name; |
232 | args["[PRICE]"] = llformat("%d",sale_info.getSalePrice()); | 233 | if (sale_info.getSaleType() != LLSaleInfo::FS_CONTENTS) |
233 | args["[OWNER]"] = owner_name; | 234 | { |
234 | if (sale_info.getSaleType() != LLSaleInfo::FS_CONTENTS) | 235 | U32 next_owner_mask = perm.getMaskNextOwner(); |
235 | { | 236 | args["[MODIFYPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_MODIFY) ? "PermYes" : "PermNo"); |
236 | U32 next_owner_mask = perm.getMaskNextOwner(); | 237 | args["[COPYPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_COPY) ? "PermYes" : "PermNo"); |
237 | args["[MODIFYPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_MODIFY) ? "PermYes" : "PermNo"); | 238 | args["[RESELLPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_TRANSFER) ? "PermYes" : "PermNo"); |
238 | args["[COPYPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_COPY) ? "PermYes" : "PermNo"); | ||
239 | args["[RESELLPERM]"] = LLAlertDialog::getTemplateMessage((next_owner_mask & PERM_TRANSFER) ? "PermYes" : "PermNo"); | ||
240 | } | ||
241 | |||
242 | LLString alertdesc; | ||
243 | switch(sale_info.getSaleType()) | ||
244 | { | ||
245 | case LLSaleInfo::FS_ORIGINAL: | ||
246 | alertdesc = owner_name.empty() ? "BuyOriginalNoOwner" : "BuyOriginal"; | ||
247 | break; | ||
248 | case LLSaleInfo::FS_COPY: | ||
249 | default: | ||
250 | alertdesc = owner_name.empty() ? "BuyCopyNoOwner" : "BuyCopy"; | ||
251 | break; | ||
252 | case LLSaleInfo::FS_CONTENTS: | ||
253 | alertdesc = owner_name.empty() ? "BuyContentsNoOwner" : "BuyContents"; | ||
254 | break; | ||
255 | } | ||
256 | |||
257 | gViewerWindow->alertXml(alertdesc, args, LLTaskInvFVBridge::commitBuyItem, (void*)inv); | ||
258 | } | 239 | } |
240 | |||
241 | LLString alertdesc; | ||
242 | switch(sale_info.getSaleType()) | ||
243 | { | ||
244 | case LLSaleInfo::FS_ORIGINAL: | ||
245 | alertdesc = owner_name.empty() ? "BuyOriginalNoOwner" : "BuyOriginal"; | ||
246 | break; | ||
247 | case LLSaleInfo::FS_CONTENTS: | ||
248 | alertdesc = owner_name.empty() ? "BuyContentsNoOwner" : "BuyContents"; | ||
249 | break; | ||
250 | case LLSaleInfo::FS_COPY: | ||
251 | default: | ||
252 | alertdesc = owner_name.empty() ? "BuyCopyNoOwner" : "BuyCopy"; | ||
253 | break; | ||
254 | } | ||
255 | |||
256 | gViewerWindow->alertXml(alertdesc, args, LLTaskInvFVBridge::commitBuyItem, (void*)inv); | ||
257 | } | ||
259 | } | 258 | } |
260 | 259 | ||
261 | S32 LLTaskInvFVBridge::getPrice() | 260 | S32 LLTaskInvFVBridge::getPrice() |
diff --git a/linden/indra/newview/llpanelmsgs.cpp b/linden/indra/newview/llpanelmsgs.cpp index 3a8729c..a758800 100644 --- a/linden/indra/newview/llpanelmsgs.cpp +++ b/linden/indra/newview/llpanelmsgs.cpp | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "llviewerwindow.h" | 34 | #include "llviewerwindow.h" |
35 | #include "llviewercontrol.h" | 35 | #include "llviewercontrol.h" |
36 | #include "llvieweruictrlfactory.h" | 36 | #include "llvieweruictrlfactory.h" |
37 | #include "llfirstuse.h" | ||
37 | 38 | ||
38 | class LLPopupData | 39 | class LLPopupData |
39 | { | 40 | { |
@@ -68,6 +69,7 @@ BOOL LLPanelMsgs::postBuild() | |||
68 | mEnabledPopups = LLViewerUICtrlFactory::getScrollListByName(this, "enabled_popups"); | 69 | mEnabledPopups = LLViewerUICtrlFactory::getScrollListByName(this, "enabled_popups"); |
69 | childSetAction("enable_popup", onClickEnablePopup, this); | 70 | childSetAction("enable_popup", onClickEnablePopup, this); |
70 | childSetAction("reset_dialogs_btn", onClickResetDialogs, this); | 71 | childSetAction("reset_dialogs_btn", onClickResetDialogs, this); |
72 | childSetAction("skip_dialogs_btn", onClickSkipDialogs, this); | ||
71 | buildLists(); | 73 | buildLists(); |
72 | 74 | ||
73 | sPopupData.mAutoAcceptNewInventory = gSavedSettings.getBOOL("AutoAcceptNewInventory"); | 75 | sPopupData.mAutoAcceptNewInventory = gSavedSettings.getBOOL("AutoAcceptNewInventory"); |
@@ -163,6 +165,27 @@ void LLPanelMsgs::cancel() | |||
163 | gSavedSettings.setBOOL("AutoAcceptNewInventory", sPopupData.mAutoAcceptNewInventory); | 165 | gSavedSettings.setBOOL("AutoAcceptNewInventory", sPopupData.mAutoAcceptNewInventory); |
164 | } | 166 | } |
165 | 167 | ||
168 | void LLPanelMsgs::resetAllIgnored() | ||
169 | { | ||
170 | for(LLAlertDialog::template_map_t::iterator iter = LLAlertDialog::sIgnorableTemplates.begin(); | ||
171 | iter != LLAlertDialog::sIgnorableTemplates.end(); ++iter) | ||
172 | { | ||
173 | LLAlertDialogTemplate* alert_temp = iter->second; | ||
174 | S32 ignore = alert_temp->getIgnore(); | ||
175 | if(ignore) | ||
176 | alert_temp->setIgnore(false); | ||
177 | } | ||
178 | } | ||
179 | |||
180 | void LLPanelMsgs::setAllIgnored() | ||
181 | { | ||
182 | for(LLAlertDialog::template_map_t::iterator iter = LLAlertDialog::sIgnorableTemplates.begin(); | ||
183 | iter != LLAlertDialog::sIgnorableTemplates.end(); ++iter) | ||
184 | { | ||
185 | LLAlertDialogTemplate* alert_temp = iter->second; | ||
186 | alert_temp->setIgnore(true); | ||
187 | } | ||
188 | } | ||
166 | 189 | ||
167 | //static | 190 | //static |
168 | void LLPanelMsgs::onClickEnablePopup(void* user_data) | 191 | void LLPanelMsgs::onClickEnablePopup(void* user_data) |
@@ -188,10 +211,13 @@ void callback_reset_dialogs(S32 option, void* data) | |||
188 | { | 211 | { |
189 | if (0 == option) | 212 | if (0 == option) |
190 | { | 213 | { |
191 | gSavedSettings.resetWarnings(); // resets all ignorable dialogs | ||
192 | LLPanelMsgs* panelp = (LLPanelMsgs*)data; | 214 | LLPanelMsgs* panelp = (LLPanelMsgs*)data; |
193 | if ( panelp ) | 215 | if ( panelp ) |
216 | { | ||
217 | panelp->resetAllIgnored(); | ||
218 | LLFirstUse::resetFirstUse(); | ||
194 | panelp->buildLists(); | 219 | panelp->buildLists(); |
220 | } | ||
195 | } | 221 | } |
196 | } | 222 | } |
197 | 223 | ||
@@ -200,3 +226,23 @@ void LLPanelMsgs::onClickResetDialogs(void* user_data) | |||
200 | { | 226 | { |
201 | gViewerWindow->alertXml("ResetShowNextTimeDialogs",callback_reset_dialogs,user_data); | 227 | gViewerWindow->alertXml("ResetShowNextTimeDialogs",callback_reset_dialogs,user_data); |
202 | } | 228 | } |
229 | |||
230 | void callback_skip_dialogs(S32 option, void* data) | ||
231 | { | ||
232 | if (0 == option) | ||
233 | { | ||
234 | LLPanelMsgs* panelp = (LLPanelMsgs*)data; | ||
235 | if ( panelp ) | ||
236 | { | ||
237 | panelp->setAllIgnored(); | ||
238 | LLFirstUse::disableFirstUse(); | ||
239 | panelp->buildLists(); | ||
240 | } | ||
241 | } | ||
242 | } | ||
243 | |||
244 | // static | ||
245 | void LLPanelMsgs::onClickSkipDialogs(void* user_data) | ||
246 | { | ||
247 | gViewerWindow->alertXml("SkipShowNextTimeDialogs", callback_skip_dialogs, user_data); | ||
248 | } | ||
diff --git a/linden/indra/newview/llpanelmsgs.h b/linden/indra/newview/llpanelmsgs.h index 58b6b95..72fc26a 100644 --- a/linden/indra/newview/llpanelmsgs.h +++ b/linden/indra/newview/llpanelmsgs.h | |||
@@ -47,9 +47,13 @@ public: | |||
47 | 47 | ||
48 | static void onClickEnablePopup(void* user_data); | 48 | static void onClickEnablePopup(void* user_data); |
49 | static void onClickResetDialogs(void* user_data); | 49 | static void onClickResetDialogs(void* user_data); |
50 | static void onClickSkipDialogs(void* user_data); | ||
50 | 51 | ||
51 | void buildLists(); | 52 | void buildLists(); |
52 | 53 | ||
54 | void resetAllIgnored(); | ||
55 | void setAllIgnored(); | ||
56 | |||
53 | protected: | 57 | protected: |
54 | LLScrollListCtrl* mDisabledPopups; | 58 | LLScrollListCtrl* mDisabledPopups; |
55 | LLScrollListCtrl* mEnabledPopups; | 59 | LLScrollListCtrl* mEnabledPopups; |
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp index ae1c213..3e7be68 100644 --- a/linden/indra/newview/llpanelobject.cpp +++ b/linden/indra/newview/llpanelobject.cpp | |||
@@ -67,6 +67,7 @@ | |||
67 | #include "pipeline.h" | 67 | #include "pipeline.h" |
68 | #include "viewer.h" | 68 | #include "viewer.h" |
69 | #include "llvieweruictrlfactory.h" | 69 | #include "llvieweruictrlfactory.h" |
70 | #include "llfirstuse.h" | ||
70 | 71 | ||
71 | #include "lldrawpool.h" | 72 | #include "lldrawpool.h" |
72 | 73 | ||
@@ -256,32 +257,36 @@ BOOL LLPanelObject::postBuild() | |||
256 | 257 | ||
257 | // Sculpt | 258 | // Sculpt |
258 | mCtrlSculptTexture = LLUICtrlFactory::getTexturePickerByName(this,"sculpt texture control"); | 259 | mCtrlSculptTexture = LLUICtrlFactory::getTexturePickerByName(this,"sculpt texture control"); |
259 | mCtrlSculptTexture->setDefaultImageAssetID(LLUUID(SCULPT_DEFAULT_TEXTURE)); | 260 | if (mCtrlSculptTexture) |
260 | mCtrlSculptTexture->setCommitCallback( LLPanelObject::onCommitSculpt ); | 261 | { |
261 | mCtrlSculptTexture->setOnCancelCallback( LLPanelObject::onCancelSculpt ); | 262 | mCtrlSculptTexture->setDefaultImageAssetID(LLUUID(SCULPT_DEFAULT_TEXTURE)); |
262 | mCtrlSculptTexture->setOnSelectCallback( LLPanelObject::onSelectSculpt ); | 263 | mCtrlSculptTexture->setCommitCallback( LLPanelObject::onCommitSculpt ); |
263 | mCtrlSculptTexture->setDropCallback(LLPanelObject::onDropSculpt); | 264 | mCtrlSculptTexture->setOnCancelCallback( LLPanelObject::onCancelSculpt ); |
264 | mCtrlSculptTexture->setCallbackUserData( this ); | 265 | mCtrlSculptTexture->setOnSelectCallback( LLPanelObject::onSelectSculpt ); |
265 | // Don't allow (no copy) or (no transfer) textures to be selected during immediate mode | 266 | mCtrlSculptTexture->setDropCallback(LLPanelObject::onDropSculpt); |
266 | mCtrlSculptTexture->setImmediateFilterPermMask(PERM_COPY | PERM_TRANSFER); | 267 | mCtrlSculptTexture->setCallbackUserData( this ); |
267 | // Allow any texture to be used during non-immediate mode. | 268 | // Don't allow (no copy) or (no transfer) textures to be selected during immediate mode |
268 | mCtrlSculptTexture->setNonImmediateFilterPermMask(PERM_NONE); | 269 | mCtrlSculptTexture->setImmediateFilterPermMask(PERM_COPY | PERM_TRANSFER); |
269 | LLAggregatePermissions texture_perms; | 270 | // Allow any texture to be used during non-immediate mode. |
270 | if (gSelectMgr->selectGetAggregateTexturePermissions(texture_perms)) | 271 | mCtrlSculptTexture->setNonImmediateFilterPermMask(PERM_NONE); |
271 | { | 272 | LLAggregatePermissions texture_perms; |
272 | BOOL can_copy = | 273 | if (gSelectMgr->selectGetAggregateTexturePermissions(texture_perms)) |
273 | texture_perms.getValue(PERM_COPY) == LLAggregatePermissions::AP_EMPTY || | 274 | { |
274 | texture_perms.getValue(PERM_COPY) == LLAggregatePermissions::AP_ALL; | 275 | BOOL can_copy = |
275 | BOOL can_transfer = | 276 | texture_perms.getValue(PERM_COPY) == LLAggregatePermissions::AP_EMPTY || |
276 | texture_perms.getValue(PERM_TRANSFER) == LLAggregatePermissions::AP_EMPTY || | 277 | texture_perms.getValue(PERM_COPY) == LLAggregatePermissions::AP_ALL; |
277 | texture_perms.getValue(PERM_TRANSFER) == LLAggregatePermissions::AP_ALL; | 278 | BOOL can_transfer = |
278 | mCtrlSculptTexture->setCanApplyImmediately(can_copy && can_transfer); | 279 | texture_perms.getValue(PERM_TRANSFER) == LLAggregatePermissions::AP_EMPTY || |
279 | } | 280 | texture_perms.getValue(PERM_TRANSFER) == LLAggregatePermissions::AP_ALL; |
280 | else | 281 | mCtrlSculptTexture->setCanApplyImmediately(can_copy && can_transfer); |
281 | { | 282 | } |
282 | mCtrlSculptTexture->setCanApplyImmediately(FALSE); | 283 | else |
284 | { | ||
285 | mCtrlSculptTexture->setCanApplyImmediately(FALSE); | ||
286 | } | ||
283 | } | 287 | } |
284 | 288 | ||
289 | |||
285 | // Start with everyone disabled | 290 | // Start with everyone disabled |
286 | clearCtrls(); | 291 | clearCtrls(); |
287 | 292 | ||
@@ -347,9 +352,9 @@ void LLPanelObject::getState( ) | |||
347 | } | 352 | } |
348 | 353 | ||
349 | // can move or rotate only linked group with move permissions, or sub-object with move and modify perms | 354 | // can move or rotate only linked group with move permissions, or sub-object with move and modify perms |
350 | BOOL enable_move = objectp->permMove() && !objectp->isAttachment() && (objectp->permModify() || gSavedSettings.getBOOL("SelectLinkedSet")); | 355 | BOOL enable_move = objectp->permMove() && !objectp->isAttachment() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); |
351 | BOOL enable_scale = objectp->permMove() && objectp->permModify(); | 356 | BOOL enable_scale = objectp->permMove() && objectp->permModify(); |
352 | BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || gSavedSettings.getBOOL("SelectLinkedSet")); | 357 | BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); |
353 | 358 | ||
354 | LLVector3 vec; | 359 | LLVector3 vec; |
355 | if (enable_move) | 360 | if (enable_move) |
@@ -638,6 +643,7 @@ void LLPanelObject::getState( ) | |||
638 | if (objectp->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT)) | 643 | if (objectp->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT)) |
639 | { | 644 | { |
640 | selected_item = MI_SCULPT; | 645 | selected_item = MI_SCULPT; |
646 | LLFirstUse::useSculptedPrim(); | ||
641 | } | 647 | } |
642 | 648 | ||
643 | 649 | ||
@@ -1044,7 +1050,11 @@ void LLPanelObject::getState( ) | |||
1044 | { | 1050 | { |
1045 | mTextureCtrl->setTentative(FALSE); | 1051 | mTextureCtrl->setTentative(FALSE); |
1046 | mTextureCtrl->setEnabled(editable); | 1052 | mTextureCtrl->setEnabled(editable); |
1047 | mTextureCtrl->setImageAssetID(sculpt_params->getSculptTexture()); | 1053 | if (editable) |
1054 | mTextureCtrl->setImageAssetID(sculpt_params->getSculptTexture()); | ||
1055 | else | ||
1056 | mTextureCtrl->setImageAssetID(LLUUID::null); | ||
1057 | |||
1048 | 1058 | ||
1049 | if (mObject != objectp) // we've just selected a new object, so save for undo | 1059 | if (mObject != objectp) // we've just selected a new object, so save for undo |
1050 | mSculptTextureRevert = sculpt_params->getSculptTexture(); | 1060 | mSculptTextureRevert = sculpt_params->getSculptTexture(); |
diff --git a/linden/indra/newview/llpolymesh.h b/linden/indra/newview/llpolymesh.h index f3022f5..9634dbf 100644 --- a/linden/indra/newview/llpolymesh.h +++ b/linden/indra/newview/llpolymesh.h | |||
@@ -360,7 +360,7 @@ protected: | |||
360 | typedef LLAssocList<std::string, LLPolyMeshSharedData*> LLPolyMeshSharedDataTable; | 360 | typedef LLAssocList<std::string, LLPolyMeshSharedData*> LLPolyMeshSharedDataTable; |
361 | static LLPolyMeshSharedDataTable sGlobalSharedMeshList; | 361 | static LLPolyMeshSharedDataTable sGlobalSharedMeshList; |
362 | 362 | ||
363 | LLVOAvatar* mAvatarp; | 363 | LLPointer<LLVOAvatar> mAvatarp; |
364 | }; | 364 | }; |
365 | 365 | ||
366 | //----------------------------------------------------------------------------- | 366 | //----------------------------------------------------------------------------- |
@@ -426,7 +426,7 @@ protected: | |||
426 | joint_vec_map_t mJointScales; | 426 | joint_vec_map_t mJointScales; |
427 | joint_vec_map_t mJointOffsets; | 427 | joint_vec_map_t mJointOffsets; |
428 | LLVector3 mDefaultVec; | 428 | LLVector3 mDefaultVec; |
429 | LLVOAvatar* mAvatar; | 429 | LLPointer<LLVOAvatar> mAvatar; |
430 | }; | 430 | }; |
431 | 431 | ||
432 | #endif // LL_LLPOLYMESH_H | 432 | #endif // LL_LLPOLYMESH_H |
diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index 28434ec..70f7833 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp | |||
@@ -64,6 +64,7 @@ protected: | |||
64 | LLColor4 mSystemChatColor; | 64 | LLColor4 mSystemChatColor; |
65 | LLColor4 mAgentChatColor; | 65 | LLColor4 mAgentChatColor; |
66 | LLColor4 mObjectChatColor; | 66 | LLColor4 mObjectChatColor; |
67 | LLColor4 mOwnerSayChatColor; | ||
67 | LLColor4 mBGChatColor; | 68 | LLColor4 mBGChatColor; |
68 | LLColor4 mScriptErrorColor; | 69 | LLColor4 mScriptErrorColor; |
69 | LLColor4 mHTMLLinkColor; | 70 | LLColor4 mHTMLLinkColor; |
@@ -98,6 +99,7 @@ void LLPrefsChatImpl::refresh() | |||
98 | mSystemChatColor = gSavedSettings.getColor4("SystemChatColor"); | 99 | mSystemChatColor = gSavedSettings.getColor4("SystemChatColor"); |
99 | mAgentChatColor = gSavedSettings.getColor4("AgentChatColor"); | 100 | mAgentChatColor = gSavedSettings.getColor4("AgentChatColor"); |
100 | mObjectChatColor = gSavedSettings.getColor4("ObjectChatColor"); | 101 | mObjectChatColor = gSavedSettings.getColor4("ObjectChatColor"); |
102 | mOwnerSayChatColor = gSavedSettings.getColor4("llOwnerSayChatColor"); | ||
101 | mBGChatColor = gSavedSettings.getColor4("BackgroundChatColor"); | 103 | mBGChatColor = gSavedSettings.getColor4("BackgroundChatColor"); |
102 | mScriptErrorColor = gSavedSettings.getColor4("ScriptErrorColor"); | 104 | mScriptErrorColor = gSavedSettings.getColor4("ScriptErrorColor"); |
103 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); | 105 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); |
@@ -119,6 +121,7 @@ void LLPrefsChatImpl::cancel() | |||
119 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); | 121 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); |
120 | gSavedSettings.setColor4("AgentChatColor", mAgentChatColor); | 122 | gSavedSettings.setColor4("AgentChatColor", mAgentChatColor); |
121 | gSavedSettings.setColor4("ObjectChatColor", mObjectChatColor); | 123 | gSavedSettings.setColor4("ObjectChatColor", mObjectChatColor); |
124 | gSavedSettings.setColor4("llOwnerSayChatColor", mOwnerSayChatColor); | ||
122 | gSavedSettings.setColor4("BackgroundChatColor", mBGChatColor); | 125 | gSavedSettings.setColor4("BackgroundChatColor", mBGChatColor); |
123 | gSavedSettings.setColor4("ScriptErrorColor", mScriptErrorColor); | 126 | gSavedSettings.setColor4("ScriptErrorColor", mScriptErrorColor); |
124 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); | 127 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); |
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index 8575113..738c340 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp | |||
@@ -68,6 +68,11 @@ protected: | |||
68 | BOOL mLogChat; | 68 | BOOL mLogChat; |
69 | BOOL mLogShowHistory; | 69 | BOOL mLogShowHistory; |
70 | BOOL mShowTimestamps; | 70 | BOOL mShowTimestamps; |
71 | BOOL mIMLogTimestamp; | ||
72 | BOOL mLogChatTimestamp; | ||
73 | BOOL mLogIMChat; | ||
74 | BOOL mLogTimestampDate; | ||
75 | |||
71 | LLString mIMBusyResponse; | 76 | LLString mIMBusyResponse; |
72 | LLString mLogPath; | 77 | LLString mLogPath; |
73 | 78 | ||
@@ -95,6 +100,10 @@ void LLPrefsIMImpl::refresh() | |||
95 | mLogInstantMessages= gSavedPerAccountSettings.getBOOL("LogInstantMessages"); | 100 | mLogInstantMessages= gSavedPerAccountSettings.getBOOL("LogInstantMessages"); |
96 | mLogChat = gSavedPerAccountSettings.getBOOL("LogChat"); | 101 | mLogChat = gSavedPerAccountSettings.getBOOL("LogChat"); |
97 | mLogShowHistory = gSavedPerAccountSettings.getBOOL("LogShowHistory"); | 102 | mLogShowHistory = gSavedPerAccountSettings.getBOOL("LogShowHistory"); |
103 | mIMLogTimestamp = gSavedPerAccountSettings.getBOOL("IMLogTimestamp"); | ||
104 | mLogChatTimestamp = gSavedPerAccountSettings.getBOOL("LogChatTimestamp"); | ||
105 | mLogIMChat = gSavedPerAccountSettings.getBOOL("LogChatIM"); | ||
106 | mLogTimestampDate = gSavedPerAccountSettings.getBOOL("LogTimestampDate"); | ||
98 | } | 107 | } |
99 | 108 | ||
100 | void LLPrefsIMImpl::cancel() | 109 | void LLPrefsIMImpl::cancel() |
@@ -106,6 +115,10 @@ void LLPrefsIMImpl::cancel() | |||
106 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",mLogInstantMessages); | 115 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",mLogInstantMessages); |
107 | gSavedPerAccountSettings.setBOOL("LogChat",mLogChat); | 116 | gSavedPerAccountSettings.setBOOL("LogChat",mLogChat); |
108 | gSavedPerAccountSettings.setBOOL("LogShowHistory",mLogShowHistory); | 117 | gSavedPerAccountSettings.setBOOL("LogShowHistory",mLogShowHistory); |
118 | gSavedPerAccountSettings.setBOOL("IMLogTimestamp",mIMLogTimestamp); | ||
119 | gSavedPerAccountSettings.setBOOL("LogChatTimestamp",mLogChatTimestamp); | ||
120 | gSavedPerAccountSettings.setBOOL("LogChatIM",mLogIMChat); | ||
121 | gSavedPerAccountSettings.setBOOL("LogTimestampDate",mLogTimestampDate); | ||
109 | } | 122 | } |
110 | 123 | ||
111 | BOOL LLPrefsIMImpl::postBuild() | 124 | BOOL LLPrefsIMImpl::postBuild() |
@@ -130,6 +143,10 @@ BOOL LLPrefsIMImpl::postBuild() | |||
130 | childDisable("log_show_history"); | 143 | childDisable("log_show_history"); |
131 | childDisable("log_path_button"); | 144 | childDisable("log_path_button"); |
132 | childDisable("busy_response"); | 145 | childDisable("busy_response"); |
146 | childDisable("log_instant_messages_timestamp"); | ||
147 | childDisable("log_chat_timestamp"); | ||
148 | childDisable("log_chat_IM"); | ||
149 | childDisable("log_date_timestamp"); | ||
133 | 150 | ||
134 | childSetText("busy_response", childGetText("log_in_to_change")); | 151 | childSetText("busy_response", childGetText("log_in_to_change")); |
135 | 152 | ||
@@ -138,7 +155,11 @@ BOOL LLPrefsIMImpl::postBuild() | |||
138 | childSetText("log_path_string", mLogPath); | 155 | childSetText("log_path_string", mLogPath); |
139 | childSetValue("log_instant_messages", mLogInstantMessages); | 156 | childSetValue("log_instant_messages", mLogInstantMessages); |
140 | childSetValue("log_chat", mLogChat); | 157 | childSetValue("log_chat", mLogChat); |
141 | childSetValue("log_show_history", mLogShowHistory); | 158 | childSetValue("log_show_history", mIMLogTimestamp); |
159 | childSetValue("log_instant_messages_timestamp", mIMLogTimestamp); | ||
160 | childSetValue("log_chat_timestamp", mLogChatTimestamp); | ||
161 | childSetValue("log_chat_IM", mLogIMChat); | ||
162 | childSetValue("log_date_timestamp",mLogTimestampDate); | ||
142 | childSetAction("log_path_button", onClickLogPath, this); | 163 | childSetAction("log_path_button", onClickLogPath, this); |
143 | childSetCommitCallback("log_chat",onCommitLogging,this); | 164 | childSetCommitCallback("log_chat",onCommitLogging,this); |
144 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); | 165 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); |
@@ -179,6 +200,10 @@ void LLPrefsIMImpl::apply() | |||
179 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean()); | 200 | gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean()); |
180 | gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean()); | 201 | gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean()); |
181 | gSavedPerAccountSettings.setBOOL("LogShowHistory",childGetValue("log_show_history").asBoolean()); | 202 | gSavedPerAccountSettings.setBOOL("LogShowHistory",childGetValue("log_show_history").asBoolean()); |
203 | gSavedPerAccountSettings.setBOOL("IMLogTimestamp",childGetValue("log_instant_messages_timestamp").asBoolean()); | ||
204 | gSavedPerAccountSettings.setBOOL("LogChatTimestamp",childGetValue("log_chat_timestamp").asBoolean()); | ||
205 | gSavedPerAccountSettings.setBOOL("LogChatIM",childGetValue("log_chat_IM").asBoolean()); | ||
206 | gSavedPerAccountSettings.setBOOL("LogTimestampDate",childGetValue("log_date_timestamp").asBoolean()); | ||
182 | 207 | ||
183 | gDirUtilp->setChatLogsDir(gSavedPerAccountSettings.getString("InstantMessageLogPath")); | 208 | gDirUtilp->setChatLogsDir(gSavedPerAccountSettings.getString("InstantMessageLogPath")); |
184 | 209 | ||
@@ -246,6 +271,10 @@ void LLPrefsIMImpl::setPersonalInfo( | |||
246 | childEnable("log_instant_messages"); | 271 | childEnable("log_instant_messages"); |
247 | childEnable("log_chat"); | 272 | childEnable("log_chat"); |
248 | childEnable("busy_response"); | 273 | childEnable("busy_response"); |
274 | childEnable("log_instant_messages_timestamp"); | ||
275 | childEnable("log_chat_timestamp"); | ||
276 | childEnable("log_chat_IM"); | ||
277 | childEnable("log_date_timestamp"); | ||
249 | 278 | ||
250 | //RN: get wide string so replace char can work (requires fixed-width encoding) | 279 | //RN: get wide string so replace char can work (requires fixed-width encoding) |
251 | LLWString busy_response = utf8str_to_wstring( gSavedPerAccountSettings.getString("BusyModeResponse") ); | 280 | LLWString busy_response = utf8str_to_wstring( gSavedPerAccountSettings.getString("BusyModeResponse") ); |
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 5086432..e2be9fd 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -395,9 +395,9 @@ LLObjectSelectionHandle LLSelectMgr::selectObjectAndFamily(LLViewerObject* obj, | |||
395 | root->resetRot(); | 395 | root->resetRot(); |
396 | 396 | ||
397 | // leave component mode | 397 | // leave component mode |
398 | if (!gSavedSettings.getBOOL("SelectLinkedSet")) | 398 | if (gSavedSettings.getBOOL("EditLinkedParts")) |
399 | { | 399 | { |
400 | gSavedSettings.setBOOL("SelectLinkedSet", TRUE); | 400 | gSavedSettings.setBOOL("EditLinkedParts", FALSE); |
401 | promoteSelectionToRoot(); | 401 | promoteSelectionToRoot(); |
402 | } | 402 | } |
403 | 403 | ||
@@ -463,9 +463,9 @@ LLObjectSelectionHandle LLSelectMgr::selectObjectAndFamily(const LLDynamicArray< | |||
463 | } | 463 | } |
464 | 464 | ||
465 | // leave component mode | 465 | // leave component mode |
466 | if (!gSavedSettings.getBOOL("SelectLinkedSet")) | 466 | if (gSavedSettings.getBOOL("EditLinkedParts")) |
467 | { | 467 | { |
468 | gSavedSettings.setBOOL("SelectLinkedSet", TRUE); | 468 | gSavedSettings.setBOOL("EditLinkedParts", FALSE); |
469 | promoteSelectionToRoot(); | 469 | promoteSelectionToRoot(); |
470 | } | 470 | } |
471 | 471 | ||
@@ -948,7 +948,7 @@ LLObjectSelectionHandle LLSelectMgr::selectHighlightedObjects() | |||
948 | 948 | ||
949 | void LLSelectMgr::deselectHighlightedObjects() | 949 | void LLSelectMgr::deselectHighlightedObjects() |
950 | { | 950 | { |
951 | BOOL select_linked_set = gSavedSettings.getBOOL("SelectLinkedSet"); | 951 | BOOL select_linked_set = !gSavedSettings.getBOOL("EditLinkedParts"); |
952 | for (std::set<LLPointer<LLViewerObject> >::iterator iter = mRectSelectedObjects.begin(); | 952 | for (std::set<LLPointer<LLViewerObject> >::iterator iter = mRectSelectedObjects.begin(); |
953 | iter != mRectSelectedObjects.end(); iter++) | 953 | iter != mRectSelectedObjects.end(); iter++) |
954 | { | 954 | { |
@@ -3249,7 +3249,7 @@ void LLSelectMgr::sendMultipleUpdate(U32 type) | |||
3249 | { | 3249 | { |
3250 | if (type == UPD_NONE) return; | 3250 | if (type == UPD_NONE) return; |
3251 | // send individual updates when selecting textures or individual objects | 3251 | // send individual updates when selecting textures or individual objects |
3252 | ESendType send_type = (gSavedSettings.getBOOL("SelectLinkedSet") && !getTEMode()) ? SEND_ONLY_ROOTS : SEND_ROOTS_FIRST; | 3252 | ESendType send_type = (!gSavedSettings.getBOOL("EditLinkedParts") && !getTEMode()) ? SEND_ONLY_ROOTS : SEND_ROOTS_FIRST; |
3253 | if (send_type == SEND_ONLY_ROOTS) | 3253 | if (send_type == SEND_ONLY_ROOTS) |
3254 | { | 3254 | { |
3255 | // tell simulator to apply to whole linked sets | 3255 | // tell simulator to apply to whole linked sets |
@@ -4506,7 +4506,7 @@ void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** use | |||
4506 | LLString fullname(first_name); | 4506 | LLString fullname(first_name); |
4507 | fullname.append(" "); | 4507 | fullname.append(" "); |
4508 | fullname.append(last_name); | 4508 | fullname.append(last_name); |
4509 | reporterp->setPickedObjectProperties(name, fullname.c_str()); | 4509 | reporterp->setPickedObjectProperties(name, fullname.c_str(), owner_id); |
4510 | } | 4510 | } |
4511 | } | 4511 | } |
4512 | 4512 | ||
@@ -4669,7 +4669,7 @@ void LLSelectMgr::updateSilhouettes() | |||
4669 | // persists from frame to frame to avoid regenerating object silhouettes | 4669 | // persists from frame to frame to avoid regenerating object silhouettes |
4670 | // mHighlightedObjects includes all siblings of rect selected objects | 4670 | // mHighlightedObjects includes all siblings of rect selected objects |
4671 | 4671 | ||
4672 | BOOL select_linked_set = gSavedSettings.getBOOL("SelectLinkedSet"); | 4672 | BOOL select_linked_set = !gSavedSettings.getBOOL("EditLinkedParts"); |
4673 | 4673 | ||
4674 | // generate list of roots from current object selection | 4674 | // generate list of roots from current object selection |
4675 | for (std::set<LLPointer<LLViewerObject> >::iterator iter = mRectSelectedObjects.begin(); | 4675 | for (std::set<LLPointer<LLViewerObject> >::iterator iter = mRectSelectedObjects.begin(); |
@@ -5619,7 +5619,7 @@ BOOL LLSelectMgr::canUndo() | |||
5619 | //----------------------------------------------------------------------------- | 5619 | //----------------------------------------------------------------------------- |
5620 | void LLSelectMgr::undo() | 5620 | void LLSelectMgr::undo() |
5621 | { | 5621 | { |
5622 | BOOL select_linked_set = gSavedSettings.getBOOL("SelectLinkedSet"); | 5622 | BOOL select_linked_set = !gSavedSettings.getBOOL("EditLinkedParts"); |
5623 | LLUUID group_id(gAgent.getGroupID()); | 5623 | LLUUID group_id(gAgent.getGroupID()); |
5624 | sendListToRegions("Undo", packAgentAndSessionAndGroupID, packObjectID, &group_id, select_linked_set ? SEND_ONLY_ROOTS : SEND_CHILDREN_FIRST); | 5624 | sendListToRegions("Undo", packAgentAndSessionAndGroupID, packObjectID, &group_id, select_linked_set ? SEND_ONLY_ROOTS : SEND_CHILDREN_FIRST); |
5625 | } | 5625 | } |
@@ -5637,7 +5637,7 @@ BOOL LLSelectMgr::canRedo() | |||
5637 | //----------------------------------------------------------------------------- | 5637 | //----------------------------------------------------------------------------- |
5638 | void LLSelectMgr::redo() | 5638 | void LLSelectMgr::redo() |
5639 | { | 5639 | { |
5640 | BOOL select_linked_set = gSavedSettings.getBOOL("SelectLinkedSet"); | 5640 | BOOL select_linked_set = !gSavedSettings.getBOOL("EditLinkedParts"); |
5641 | LLUUID group_id(gAgent.getGroupID()); | 5641 | LLUUID group_id(gAgent.getGroupID()); |
5642 | sendListToRegions("Redo", packAgentAndSessionAndGroupID, packObjectID, &group_id, select_linked_set ? SEND_ONLY_ROOTS : SEND_CHILDREN_FIRST); | 5642 | sendListToRegions("Redo", packAgentAndSessionAndGroupID, packObjectID, &group_id, select_linked_set ? SEND_ONLY_ROOTS : SEND_CHILDREN_FIRST); |
5643 | } | 5643 | } |
@@ -5814,7 +5814,7 @@ void LLObjectSelection::deleteAllNodes() | |||
5814 | 5814 | ||
5815 | LLSelectNode* LLObjectSelection::findNode(LLViewerObject* objectp) | 5815 | LLSelectNode* LLObjectSelection::findNode(LLViewerObject* objectp) |
5816 | { | 5816 | { |
5817 | std::map<LLViewerObject*, LLSelectNode*>::iterator found_it = mSelectNodeMap.find(objectp); | 5817 | std::map<LLPointer<LLViewerObject>, LLSelectNode*>::iterator found_it = mSelectNodeMap.find(objectp); |
5818 | if (found_it != mSelectNodeMap.end()) | 5818 | if (found_it != mSelectNodeMap.end()) |
5819 | { | 5819 | { |
5820 | return found_it->second; | 5820 | return found_it->second; |
diff --git a/linden/indra/newview/llselectmgr.h b/linden/indra/newview/llselectmgr.h index c344181..5f76ce2 100644 --- a/linden/indra/newview/llselectmgr.h +++ b/linden/indra/newview/llselectmgr.h | |||
@@ -188,7 +188,7 @@ private: | |||
188 | LLPointer<LLViewerObject> mPrimaryObject; | 188 | LLPointer<LLViewerObject> mPrimaryObject; |
189 | std::list<LLSelectNode*>::iterator mCurrentNode; | 189 | std::list<LLSelectNode*>::iterator mCurrentNode; |
190 | S32 mCurrentTE; | 190 | S32 mCurrentTE; |
191 | std::map<LLViewerObject*, LLSelectNode*> mSelectNodeMap; | 191 | std::map<LLPointer<LLViewerObject>, LLSelectNode*> mSelectNodeMap; |
192 | ESelectType mSelectType; | 192 | ESelectType mSelectType; |
193 | }; | 193 | }; |
194 | 194 | ||
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp index dbda813..283b38b 100644 --- a/linden/indra/newview/llspatialpartition.cpp +++ b/linden/indra/newview/llspatialpartition.cpp | |||
@@ -1524,7 +1524,7 @@ public: | |||
1524 | for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i) | 1524 | for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i) |
1525 | { | 1525 | { |
1526 | LLDrawable* drawable = *i; | 1526 | LLDrawable* drawable = *i; |
1527 | if (drawable->getVObj() && !group->mSpatialPartition->mRenderByGroup) | 1527 | if (drawable->getVObj().notNull() && !group->mSpatialPartition->mRenderByGroup) |
1528 | { | 1528 | { |
1529 | gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL, TRUE); | 1529 | gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL, TRUE); |
1530 | } | 1530 | } |
diff --git a/linden/indra/newview/llsrv.cpp b/linden/indra/newview/llsrv.cpp new file mode 100644 index 0000000..4dec48d --- /dev/null +++ b/linden/indra/newview/llsrv.cpp | |||
@@ -0,0 +1,213 @@ | |||
1 | /** | ||
2 | * @file llsrv.cpp | ||
3 | * @brief Wrapper for DNS SRV record lookups | ||
4 | * | ||
5 | * Copyright (c) 2007-2007, Linden Research, Inc. | ||
6 | * | ||
7 | * Second Life Viewer Source Code | ||
8 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
9 | * to you under the terms of the GNU General Public License, version 2.0 | ||
10 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
11 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
12 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
13 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
14 | * | ||
15 | * There are special exceptions to the terms and conditions of the GPL as | ||
16 | * it is applied to this Source Code. View the full text of the exception | ||
17 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
18 | * online at http://secondlife.com/developers/opensource/flossexception | ||
19 | * | ||
20 | * By copying, modifying or distributing this software, you acknowledge | ||
21 | * that you have read and understood your obligations described above, | ||
22 | * and agree to abide by those obligations. | ||
23 | * | ||
24 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
25 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
26 | * COMPLETENESS OR PERFORMANCE. | ||
27 | */ | ||
28 | |||
29 | #include "llviewerprecompiledheaders.h" | ||
30 | |||
31 | #include "llsrv.h" | ||
32 | |||
33 | using namespace std; | ||
34 | |||
35 | #if LL_WINDOWS | ||
36 | |||
37 | #undef UNICODE | ||
38 | #include <winsock2.h> | ||
39 | #include <windns.h> | ||
40 | |||
41 | vector<LLSRVRecord> LLSRV::query(const string& name) | ||
42 | { | ||
43 | vector<LLSRVRecord> recs; | ||
44 | DNS_RECORD *rec; | ||
45 | DNS_STATUS status; | ||
46 | |||
47 | status = DnsQuery(name.c_str(), DNS_TYPE_SRV, DNS_QUERY_STANDARD, NULL, &rec, NULL); | ||
48 | if (!status) | ||
49 | { | ||
50 | for (DNS_RECORD *cur = rec; cur != NULL; cur = cur->pNext) | ||
51 | { | ||
52 | if (cur->wType != DNS_TYPE_SRV) | ||
53 | { | ||
54 | continue; | ||
55 | } | ||
56 | recs.push_back(LLSRVRecord(cur->Data.Srv.wPriority, | ||
57 | cur->Data.Srv.wWeight, | ||
58 | cur->Data.Srv.pNameTarget, | ||
59 | cur->Data.Srv.wPort)); | ||
60 | } | ||
61 | DnsRecordListFree(rec, DnsFreeRecordListDeep); | ||
62 | } | ||
63 | |||
64 | return recs; | ||
65 | } | ||
66 | |||
67 | #else // !LL_WINDOWS | ||
68 | |||
69 | #include <netinet/in.h> | ||
70 | #include <arpa/nameser.h> | ||
71 | #include <arpa/nameser_compat.h> | ||
72 | #include <resolv.h> | ||
73 | |||
74 | #include <netdb.h> | ||
75 | |||
76 | vector<LLSRVRecord> LLSRV::query(const string& queryName) | ||
77 | { | ||
78 | unsigned char response[16384]; | ||
79 | vector<LLSRVRecord> recs; | ||
80 | char name[1024]; | ||
81 | int len; | ||
82 | |||
83 | len = res_query(queryName.c_str(), ns_c_in, ns_t_srv, response, | ||
84 | sizeof(response)); | ||
85 | |||
86 | if (len == -1) | ||
87 | { | ||
88 | llinfos << "Query failed for " << queryName << llendl; | ||
89 | return recs; | ||
90 | } | ||
91 | else if (len > (int) sizeof(response)) | ||
92 | { | ||
93 | llinfos << "Response too big for " << queryName | ||
94 | << " (capacity " << sizeof(response) | ||
95 | << ", response " << len << ")" << llendl; | ||
96 | return recs; | ||
97 | } | ||
98 | |||
99 | // We "should" be using libresolv's ns_initparse and ns_parserr to | ||
100 | // parse the result of our query. However, libresolv isn't | ||
101 | // packaged correctly on Linux (as of BIND 9), so neither of these | ||
102 | // functions is available without statically linking against | ||
103 | // libresolv. Ugh! So we parse the response ourselves. | ||
104 | |||
105 | const unsigned char *pos = response + sizeof(HEADER); | ||
106 | const unsigned char *end = response + len; | ||
107 | const HEADER *hdr = (const HEADER *) response; | ||
108 | |||
109 | // Skip over the query embedded in the response. | ||
110 | |||
111 | for (int q = ntohs(hdr->qdcount); q > 0; --q) | ||
112 | { | ||
113 | len = dn_expand(response, end, pos, name, sizeof(name)); | ||
114 | |||
115 | if (len == -1) | ||
116 | { | ||
117 | llinfos << "Could not expand queried name in RR response" << llendl; | ||
118 | return recs; | ||
119 | } | ||
120 | |||
121 | pos += len + NS_QFIXEDSZ; | ||
122 | } | ||
123 | |||
124 | for (int a = ntohs(hdr->ancount); a > 0; --a) | ||
125 | { | ||
126 | static const ns_rr *rr; | ||
127 | |||
128 | len = dn_expand(response, end, pos, name, sizeof(name) - 1); | ||
129 | if (len == -1) | ||
130 | { | ||
131 | llinfos << "Could not expand response name in RR response" << llendl; | ||
132 | return recs; | ||
133 | } | ||
134 | |||
135 | // Skip over the resource name and headers we don't care about. | ||
136 | |||
137 | pos += len + sizeof(rr->type) + sizeof(rr->rr_class) + | ||
138 | sizeof(rr->ttl) + sizeof(rr->rdlength); | ||
139 | |||
140 | U16 prio; | ||
141 | U16 weight; | ||
142 | U16 port; | ||
143 | |||
144 | NS_GET16(prio, pos); | ||
145 | NS_GET16(weight, pos); | ||
146 | NS_GET16(port, pos); | ||
147 | |||
148 | len = dn_expand(response, end, pos, name, sizeof(name) - 1); | ||
149 | |||
150 | if (len == -1) | ||
151 | { | ||
152 | llinfos << "Could not expand name in RR response" << llendl; | ||
153 | return recs; | ||
154 | } | ||
155 | |||
156 | recs.push_back(LLSRVRecord(prio, weight, name, port)); | ||
157 | } | ||
158 | |||
159 | // There are likely to be more records in the response, but we | ||
160 | // don't care about those, at least for now. | ||
161 | |||
162 | return recs; | ||
163 | } | ||
164 | |||
165 | #endif // LL_WINDOWS | ||
166 | |||
167 | vector<string> LLSRV::rewriteURI(const string& uriStr) | ||
168 | { | ||
169 | LLURI uri(uriStr); | ||
170 | const string& scheme = uri.scheme(); | ||
171 | llinfos << "Rewriting " << uriStr << llendl; | ||
172 | string serviceName("_" + scheme + "._tcp." + uri.hostName()); | ||
173 | llinfos << "Querying for " << serviceName << llendl; | ||
174 | vector<LLSRVRecord> srvs(LLSRV::query(serviceName)); | ||
175 | vector<string> rewritten; | ||
176 | |||
177 | if (srvs.empty()) | ||
178 | { | ||
179 | llinfos << "No query results; using " << uriStr << llendl; | ||
180 | rewritten.push_back(uriStr); | ||
181 | } | ||
182 | else | ||
183 | { | ||
184 | vector<LLSRVRecord>::const_iterator iter; | ||
185 | size_t maxSrvs = 3; | ||
186 | size_t i; | ||
187 | |||
188 | llinfos << "Got " << srvs.size() << " results" << llendl; | ||
189 | if (srvs.size() > maxSrvs) | ||
190 | { | ||
191 | llinfos << "Clamping to " << maxSrvs << llendl; | ||
192 | } | ||
193 | |||
194 | for (iter = srvs.begin(), i = 0; | ||
195 | iter != srvs.end() && i < maxSrvs; ++iter, ++i) | ||
196 | { | ||
197 | LLURI newUri(scheme, | ||
198 | uri.userName(), | ||
199 | uri.password(), | ||
200 | iter->target(), | ||
201 | uri.defaultPort() ? iter->port() : uri.hostPort(), | ||
202 | uri.escapedPath(), | ||
203 | uri.escapedQuery()); | ||
204 | string newUriStr(newUri.asString()); | ||
205 | |||
206 | llinfos << "Rewrite[" << i << "] " << newUriStr << llendl; | ||
207 | |||
208 | rewritten.push_back(newUriStr); | ||
209 | } | ||
210 | } | ||
211 | |||
212 | return rewritten; | ||
213 | } | ||
diff --git a/linden/indra/newview/llsrv.h b/linden/indra/newview/llsrv.h new file mode 100644 index 0000000..fca646d --- /dev/null +++ b/linden/indra/newview/llsrv.h | |||
@@ -0,0 +1,66 @@ | |||
1 | /** | ||
2 | * @file llsrv.h | ||
3 | * @brief Wrapper for DNS SRV record lookups | ||
4 | * | ||
5 | * Copyright (c) 2007-2007, Linden Research, Inc. | ||
6 | * | ||
7 | * Second Life Viewer Source Code | ||
8 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
9 | * to you under the terms of the GNU General Public License, version 2.0 | ||
10 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
11 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
12 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
13 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
14 | * | ||
15 | * There are special exceptions to the terms and conditions of the GPL as | ||
16 | * it is applied to this Source Code. View the full text of the exception | ||
17 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
18 | * online at http://secondlife.com/developers/opensource/flossexception | ||
19 | * | ||
20 | * By copying, modifying or distributing this software, you acknowledge | ||
21 | * that you have read and understood your obligations described above, | ||
22 | * and agree to abide by those obligations. | ||
23 | * | ||
24 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
25 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
26 | * COMPLETENESS OR PERFORMANCE. | ||
27 | */ | ||
28 | |||
29 | #ifndef LL_LLSRV_H | ||
30 | #define LL_LLSRV_H | ||
31 | |||
32 | class LLSRV; | ||
33 | |||
34 | class LLSRVRecord | ||
35 | { | ||
36 | friend class LLSRV; | ||
37 | |||
38 | protected: | ||
39 | U16 mPriority; | ||
40 | U16 mWeight; | ||
41 | std::string mTarget; | ||
42 | U16 mPort; | ||
43 | |||
44 | LLSRVRecord(U16 priority, U16 weight, const std::string& target, | ||
45 | U16 port) : | ||
46 | mPriority(priority), | ||
47 | mWeight(weight), | ||
48 | mTarget(target), | ||
49 | mPort(port) { | ||
50 | } | ||
51 | |||
52 | public: | ||
53 | U16 priority() const { return mPriority; } | ||
54 | U16 weight() const { return mWeight; } | ||
55 | const std::string& target() const { return mTarget; } | ||
56 | U16 port() const { return mPort; } | ||
57 | }; | ||
58 | |||
59 | class LLSRV | ||
60 | { | ||
61 | public: | ||
62 | static std::vector<LLSRVRecord> query(const std::string& name); | ||
63 | static std::vector<std::string> rewriteURI(const std::string& uri); | ||
64 | }; | ||
65 | |||
66 | #endif // LL_LLSRV_H | ||
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 4af02cb..0130edf 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -117,6 +117,7 @@ | |||
117 | #include "llpreviewscript.h" | 117 | #include "llpreviewscript.h" |
118 | #include "llselectmgr.h" | 118 | #include "llselectmgr.h" |
119 | #include "llsky.h" | 119 | #include "llsky.h" |
120 | #include "llsrv.h" | ||
120 | #include "llstatview.h" | 121 | #include "llstatview.h" |
121 | #include "llsurface.h" | 122 | #include "llsurface.h" |
122 | #include "lltexturecache.h" | 123 | #include "lltexturecache.h" |
@@ -285,7 +286,8 @@ BOOL idle_startup() | |||
285 | // auth/transform loop will do. | 286 | // auth/transform loop will do. |
286 | static F32 progress = 0.10f; | 287 | static F32 progress = 0.10f; |
287 | 288 | ||
288 | static std::string auth_uri; | 289 | static std::vector<std::string> auth_uris; |
290 | static int auth_uri_num = -1; | ||
289 | static std::string auth_method; | 291 | static std::string auth_method; |
290 | static std::string auth_desc; | 292 | static std::string auth_desc; |
291 | static std::string auth_message; | 293 | static std::string auth_message; |
@@ -1109,7 +1111,11 @@ BOOL idle_startup() | |||
1109 | gSavedSettings.setBOOL("UseDebugMenus", TRUE); | 1111 | gSavedSettings.setBOOL("UseDebugMenus", TRUE); |
1110 | requested_options.push_back("god-connect"); | 1112 | requested_options.push_back("god-connect"); |
1111 | } | 1113 | } |
1112 | auth_uri = getLoginURI(); | 1114 | if (auth_uris.empty()) |
1115 | { | ||
1116 | auth_uris = getLoginURIs(); | ||
1117 | } | ||
1118 | auth_uri_num = 0; | ||
1113 | auth_method = "login_to_simulator"; | 1119 | auth_method = "login_to_simulator"; |
1114 | auth_desc = "Logging in. "; | 1120 | auth_desc = "Logging in. "; |
1115 | auth_desc += gSecondLife; | 1121 | auth_desc += gSecondLife; |
@@ -1152,7 +1158,7 @@ BOOL idle_startup() | |||
1152 | hashed_mac.hex_digest(hashed_mac_string); | 1158 | hashed_mac.hex_digest(hashed_mac_string); |
1153 | 1159 | ||
1154 | gUserAuthp->authenticate( | 1160 | gUserAuthp->authenticate( |
1155 | auth_uri.c_str(), | 1161 | auth_uris[auth_uri_num].c_str(), |
1156 | auth_method.c_str(), | 1162 | auth_method.c_str(), |
1157 | firstname.c_str(), | 1163 | firstname.c_str(), |
1158 | lastname.c_str(), | 1164 | lastname.c_str(), |
@@ -1248,7 +1254,8 @@ BOOL idle_startup() | |||
1248 | else if(login_response && (0 == strcmp(login_response, "indeterminate"))) | 1254 | else if(login_response && (0 == strcmp(login_response, "indeterminate"))) |
1249 | { | 1255 | { |
1250 | llinfos << "Indeterminate login..." << llendl; | 1256 | llinfos << "Indeterminate login..." << llendl; |
1251 | auth_uri = gUserAuthp->getResponse("next_url"); | 1257 | auth_uris = LLSRV::rewriteURI(gUserAuthp->getResponse("next_url")); |
1258 | auth_uri_num = 0; | ||
1252 | auth_method = gUserAuthp->getResponse("next_method"); | 1259 | auth_method = gUserAuthp->getResponse("next_method"); |
1253 | auth_message = gUserAuthp->getResponse("message"); | 1260 | auth_message = gUserAuthp->getResponse("message"); |
1254 | if(auth_method.substr(0, 5) == "login") | 1261 | if(auth_method.substr(0, 5) == "login") |
@@ -1351,13 +1358,33 @@ BOOL idle_startup() | |||
1351 | case LLUserAuth::E_SSL_PEER_CERTIFICATE: | 1358 | case LLUserAuth::E_SSL_PEER_CERTIFICATE: |
1352 | case LLUserAuth::E_UNHANDLED_ERROR: | 1359 | case LLUserAuth::E_UNHANDLED_ERROR: |
1353 | default: | 1360 | default: |
1354 | emsg << "Unable to connect to " << gSecondLife << ".\n"; | 1361 | if (auth_uri_num >= (int) auth_uris.size()) |
1355 | emsg << gUserAuthp->errorMessage(); | 1362 | { |
1363 | emsg << "Unable to connect to " << gSecondLife << ".\n"; | ||
1364 | emsg << gUserAuthp->errorMessage(); | ||
1365 | } else { | ||
1366 | std::ostringstream s; | ||
1367 | s << "Logging in (attempt " << (auth_uri_num + 1) << "). "; | ||
1368 | auth_desc = s.str(); | ||
1369 | gStartupState = STATE_LOGIN_AUTHENTICATE; | ||
1370 | auth_uri_num++; | ||
1371 | return do_normal_idle; | ||
1372 | } | ||
1356 | break; | 1373 | break; |
1357 | case LLUserAuth::E_SSL_CACERT: | 1374 | case LLUserAuth::E_SSL_CACERT: |
1358 | case LLUserAuth::E_SSL_CONNECT_ERROR: | 1375 | case LLUserAuth::E_SSL_CONNECT_ERROR: |
1359 | emsg << "Unable to establish a secure connection to the login server.\n"; | 1376 | if (auth_uri_num >= (int) auth_uris.size()) |
1360 | emsg << gUserAuthp->errorMessage(); | 1377 | { |
1378 | emsg << "Unable to establish a secure connection to the login server.\n"; | ||
1379 | emsg << gUserAuthp->errorMessage(); | ||
1380 | } else { | ||
1381 | std::ostringstream s; | ||
1382 | s << "Logging in (attempt " << (auth_uri_num + 1) << "). "; | ||
1383 | auth_desc = s.str(); | ||
1384 | gStartupState = STATE_LOGIN_AUTHENTICATE; | ||
1385 | auth_uri_num++; | ||
1386 | return do_normal_idle; | ||
1387 | } | ||
1361 | break; | 1388 | break; |
1362 | } | 1389 | } |
1363 | 1390 | ||
diff --git a/linden/indra/newview/lltexlayer.cpp b/linden/indra/newview/lltexlayer.cpp index 2005e39..26ee098 100644 --- a/linden/indra/newview/lltexlayer.cpp +++ b/linden/indra/newview/lltexlayer.cpp | |||
@@ -2314,7 +2314,7 @@ LLColor4 LLTexParamColor::getNetColor() | |||
2314 | { | 2314 | { |
2315 | llassert( getInfo()->mNumColors >= 1 ); | 2315 | llassert( getInfo()->mNumColors >= 1 ); |
2316 | 2316 | ||
2317 | F32 effective_weight = ( mAvatar && (mAvatar->getSex() & getSex()) ) ? mCurWeight : getDefaultWeight(); | 2317 | F32 effective_weight = ( mAvatar.notNull() && (mAvatar->getSex() & getSex()) ) ? mCurWeight : getDefaultWeight(); |
2318 | 2318 | ||
2319 | S32 index_last = getInfo()->mNumColors - 1; | 2319 | S32 index_last = getInfo()->mNumColors - 1; |
2320 | F32 scaled_weight = effective_weight * index_last; | 2320 | F32 scaled_weight = effective_weight * index_last; |
diff --git a/linden/indra/newview/lltexlayer.h b/linden/indra/newview/lltexlayer.h index c5a34a6..920ae4a 100644 --- a/linden/indra/newview/lltexlayer.h +++ b/linden/indra/newview/lltexlayer.h | |||
@@ -286,7 +286,7 @@ protected: | |||
286 | typedef std::vector<LLTexLayer *> layer_list_t; | 286 | typedef std::vector<LLTexLayer *> layer_list_t; |
287 | layer_list_t mLayerList; | 287 | layer_list_t mLayerList; |
288 | LLTexLayerSetBuffer* mComposite; | 288 | LLTexLayerSetBuffer* mComposite; |
289 | LLVOAvatar* mAvatar; | 289 | LLPointer<LLVOAvatar> mAvatar; |
290 | BOOL mUpdatesEnabled; | 290 | BOOL mUpdatesEnabled; |
291 | BOOL mHasBump; | 291 | BOOL mHasBump; |
292 | 292 | ||
@@ -443,7 +443,7 @@ public: | |||
443 | protected: | 443 | protected: |
444 | typedef std::vector<LLTexParamColor *> param_list_t; | 444 | typedef std::vector<LLTexParamColor *> param_list_t; |
445 | param_list_t mParamList; | 445 | param_list_t mParamList; |
446 | LLVOAvatar* mAvatar; | 446 | LLPointer<LLVOAvatar> mAvatar; |
447 | 447 | ||
448 | LLTexGlobalColorInfo *mInfo; | 448 | LLTexGlobalColorInfo *mInfo; |
449 | }; | 449 | }; |
@@ -489,7 +489,7 @@ protected: | |||
489 | LLVector3 mAvgDistortionVec; | 489 | LLVector3 mAvgDistortionVec; |
490 | LLTexGlobalColor* mTexGlobalColor; // either has mTexGlobalColor or mTexLayer as its parent | 490 | LLTexGlobalColor* mTexGlobalColor; // either has mTexGlobalColor or mTexLayer as its parent |
491 | LLTexLayer* mTexLayer; | 491 | LLTexLayer* mTexLayer; |
492 | LLVOAvatar* mAvatar; // redundant, but simplifies the code | 492 | LLPointer<LLVOAvatar> mAvatar; // redundant, but simplifies the code |
493 | }; | 493 | }; |
494 | 494 | ||
495 | //----------------------------------------------------------------------------- | 495 | //----------------------------------------------------------------------------- |
@@ -569,7 +569,7 @@ public: | |||
569 | ~LLBakedUploadData() {} | 569 | ~LLBakedUploadData() {} |
570 | 570 | ||
571 | LLUUID mID; | 571 | LLUUID mID; |
572 | LLVOAvatar* mAvatar; | 572 | LLPointer<LLVOAvatar> mAvatar; |
573 | LLTexLayerSetBuffer* mLayerSetBuffer; | 573 | LLTexLayerSetBuffer* mLayerSetBuffer; |
574 | LLUUID mWearableAssets[WT_COUNT]; | 574 | LLUUID mWearableAssets[WT_COUNT]; |
575 | }; | 575 | }; |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index 2008fda..81b4343 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * @file texturecache.cpp | 2 | * @file lltexturecache.cpp |
3 | * @brief Object which handles local texture caching | 3 | * @brief Object which handles local texture caching |
4 | * | 4 | * |
5 | * Copyright (c) 2000-2007, Linden Research, Inc. | 5 | * Copyright (c) 2000-2007, Linden Research, Inc. |
@@ -1284,6 +1284,7 @@ LLTextureCache::handle_t LLTextureCache::writeToCache(const LLUUID& id, U32 prio | |||
1284 | { | 1284 | { |
1285 | if (mReadOnly) | 1285 | if (mReadOnly) |
1286 | { | 1286 | { |
1287 | delete responder; | ||
1287 | return LLWorkerThread::nullHandle(); | 1288 | return LLWorkerThread::nullHandle(); |
1288 | } | 1289 | } |
1289 | if (mDoPurge) | 1290 | if (mDoPurge) |
@@ -1305,6 +1306,7 @@ LLTextureCache::handle_t LLTextureCache::writeToCache(const LLUUID& id, U32 prio | |||
1305 | mWriters[handle] = worker; | 1306 | mWriters[handle] = worker; |
1306 | return handle; | 1307 | return handle; |
1307 | } | 1308 | } |
1309 | delete responder; | ||
1308 | return LLWorkerThread::nullHandle(); | 1310 | return LLWorkerThread::nullHandle(); |
1309 | } | 1311 | } |
1310 | 1312 | ||
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index b5c1ace..6602096 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp | |||
@@ -119,7 +119,8 @@ public: | |||
119 | 119 | ||
120 | // LLFloater overrides | 120 | // LLFloater overrides |
121 | virtual void onClose(bool app_quitting); | 121 | virtual void onClose(bool app_quitting); |
122 | 122 | virtual BOOL postBuild(); | |
123 | |||
123 | // New functions | 124 | // New functions |
124 | void setImageID( const LLUUID& image_asset_id); | 125 | void setImageID( const LLUUID& image_asset_id); |
125 | void updateImageStats(); | 126 | void updateImageStats(); |
@@ -163,6 +164,8 @@ protected: | |||
163 | LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. | 164 | LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. |
164 | LLUUID mOriginalImageAssetID; | 165 | LLUUID mOriginalImageAssetID; |
165 | 166 | ||
167 | std::string mLabel; | ||
168 | |||
166 | LLTextBox* mTentativeLabel; | 169 | LLTextBox* mTentativeLabel; |
167 | LLTextBox* mResolutionLabel; | 170 | LLTextBox* mResolutionLabel; |
168 | 171 | ||
@@ -197,6 +200,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( | |||
197 | mImageAssetID( owner->getImageAssetID() ), | 200 | mImageAssetID( owner->getImageAssetID() ), |
198 | mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ), | 201 | mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ), |
199 | mOriginalImageAssetID(owner->getImageAssetID()), | 202 | mOriginalImageAssetID(owner->getImageAssetID()), |
203 | mLabel(label), | ||
200 | mTentativeLabel(NULL), | 204 | mTentativeLabel(NULL), |
201 | mResolutionLabel(NULL), | 205 | mResolutionLabel(NULL), |
202 | mIsDirty( FALSE ), | 206 | mIsDirty( FALSE ), |
@@ -456,6 +460,21 @@ void LLFloaterTexturePicker::onClose(bool app_quitting) | |||
456 | } | 460 | } |
457 | 461 | ||
458 | // virtual | 462 | // virtual |
463 | BOOL LLFloaterTexturePicker::postBuild() | ||
464 | { | ||
465 | LLFloater::postBuild(); | ||
466 | |||
467 | if (!mLabel.empty()) | ||
468 | { | ||
469 | std::string pick = childGetText("pick title"); | ||
470 | |||
471 | setTitle(pick + mLabel); | ||
472 | } | ||
473 | |||
474 | return TRUE; | ||
475 | } | ||
476 | |||
477 | // virtual | ||
459 | void LLFloaterTexturePicker::draw() | 478 | void LLFloaterTexturePicker::draw() |
460 | { | 479 | { |
461 | if (mOwner) | 480 | if (mOwner) |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index 5cdc854..7bdd98b 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * @file lltexturecache.cpp | 2 | * @file lltexturefetch.cpp |
3 | * @brief Object which fetches textures from the cache and/or network | 3 | * @brief Object which fetches textures from the cache and/or network |
4 | * | 4 | * |
5 | * Copyright (c) 2000-2007, Linden Research, Inc. | 5 | * Copyright (c) 2000-2007, Linden Research, Inc. |
diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp index fd1152d..555f25e 100644 --- a/linden/indra/newview/lltoolcomp.cpp +++ b/linden/indra/newview/lltoolcomp.cpp | |||
@@ -121,7 +121,7 @@ BOOL LLToolComposite::isSelecting() | |||
121 | 121 | ||
122 | void LLToolComposite::handleSelect() | 122 | void LLToolComposite::handleSelect() |
123 | { | 123 | { |
124 | if (gSavedSettings.getBOOL("SelectLinkedSet")) | 124 | if (!gSavedSettings.getBOOL("EditLinkedParts")) |
125 | { | 125 | { |
126 | gSelectMgr->promoteSelectionToRoot(); | 126 | gSelectMgr->promoteSelectionToRoot(); |
127 | } | 127 | } |
@@ -162,7 +162,7 @@ void LLToolCompInspect::pickCallback(S32 x, S32 y, MASK mask) | |||
162 | if (!gToolInspect->mMouseDown) | 162 | if (!gToolInspect->mMouseDown) |
163 | { | 163 | { |
164 | // fast click on object, but mouse is already up...just do select | 164 | // fast click on object, but mouse is already up...just do select |
165 | gToolInspect->mSelectRect->handleObjectSelection(hit_obj, mask, !gSavedSettings.getBOOL("SelectLinkedSet"), FALSE); | 165 | gToolInspect->mSelectRect->handleObjectSelection(hit_obj, mask, gSavedSettings.getBOOL("EditLinkedParts"), FALSE); |
166 | return; | 166 | return; |
167 | } | 167 | } |
168 | 168 | ||
@@ -236,7 +236,7 @@ void LLToolCompTranslate::pickCallback(S32 x, S32 y, MASK mask) | |||
236 | if (!gToolTranslate->mMouseDown) | 236 | if (!gToolTranslate->mMouseDown) |
237 | { | 237 | { |
238 | // fast click on object, but mouse is already up...just do select | 238 | // fast click on object, but mouse is already up...just do select |
239 | gToolTranslate->mSelectRect->handleObjectSelection(hit_obj, mask, !gSavedSettings.getBOOL("SelectLinkedSet"), FALSE); | 239 | gToolTranslate->mSelectRect->handleObjectSelection(hit_obj, mask, gSavedSettings.getBOOL("EditLinkedParts"), FALSE); |
240 | return; | 240 | return; |
241 | } | 241 | } |
242 | 242 | ||
@@ -250,7 +250,7 @@ void LLToolCompTranslate::pickCallback(S32 x, S32 y, MASK mask) | |||
250 | BOOL can_move = gToolTranslate->mManip->getSelection()->getObjectCount() != 0; | 250 | BOOL can_move = gToolTranslate->mManip->getSelection()->getObjectCount() != 0; |
251 | for (LLViewerObject* objectp = gToolTranslate->mManip->getSelection()->getFirstObject(); objectp; objectp = gToolTranslate->mManip->getSelection()->getNextObject()) | 251 | for (LLViewerObject* objectp = gToolTranslate->mManip->getSelection()->getFirstObject(); objectp; objectp = gToolTranslate->mManip->getSelection()->getNextObject()) |
252 | { | 252 | { |
253 | can_move = can_move && objectp->permMove() && (objectp->permModify() || gSavedSettings.getBOOL("SelectLinkedSet")); | 253 | can_move = can_move && objectp->permMove() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); |
254 | } | 254 | } |
255 | 255 | ||
256 | if( LLManip::LL_NO_PART != gToolTranslate->mManip->getHighlightedPart() && can_move) | 256 | if( LLManip::LL_NO_PART != gToolTranslate->mManip->getHighlightedPart() && can_move) |
@@ -364,7 +364,7 @@ void LLToolCompScale::pickCallback(S32 x, S32 y, MASK mask) | |||
364 | if (!gToolStretch->mMouseDown) | 364 | if (!gToolStretch->mMouseDown) |
365 | { | 365 | { |
366 | // fast click on object, but mouse is already up...just do select | 366 | // fast click on object, but mouse is already up...just do select |
367 | gToolStretch->mSelectRect->handleObjectSelection(hit_obj, mask, !gSavedSettings.getBOOL("SelectLinkedSet"), FALSE); | 367 | gToolStretch->mSelectRect->handleObjectSelection(hit_obj, mask, gSavedSettings.getBOOL("EditLinkedParts"), FALSE); |
368 | 368 | ||
369 | return; | 369 | return; |
370 | } | 370 | } |
@@ -565,7 +565,7 @@ void LLToolCompRotate::pickCallback(S32 x, S32 y, MASK mask) | |||
565 | if (!gToolRotate->mMouseDown) | 565 | if (!gToolRotate->mMouseDown) |
566 | { | 566 | { |
567 | // fast click on object, but mouse is already up...just do select | 567 | // fast click on object, but mouse is already up...just do select |
568 | gToolRotate->mSelectRect->handleObjectSelection(hit_obj, mask, !gSavedSettings.getBOOL("SelectLinkedSet"), FALSE); | 568 | gToolRotate->mSelectRect->handleObjectSelection(hit_obj, mask, gSavedSettings.getBOOL("EditLinkedParts"), FALSE); |
569 | return; | 569 | return; |
570 | } | 570 | } |
571 | 571 | ||
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 7231286..0e3a5fe 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp | |||
@@ -62,7 +62,7 @@ | |||
62 | 62 | ||
63 | LLToolPie *gToolPie = NULL; | 63 | LLToolPie *gToolPie = NULL; |
64 | 64 | ||
65 | LLViewerObject* LLToolPie::sClickActionObject = NULL; | 65 | LLPointer<LLViewerObject> LLToolPie::sClickActionObject; |
66 | LLHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL; | 66 | LLHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL; |
67 | U8 LLToolPie::sClickAction = 0; | 67 | U8 LLToolPie::sClickAction = 0; |
68 | 68 | ||
diff --git a/linden/indra/newview/lltoolpie.h b/linden/indra/newview/lltoolpie.h index 949013f..2fba989 100644 --- a/linden/indra/newview/lltoolpie.h +++ b/linden/indra/newview/lltoolpie.h | |||
@@ -73,7 +73,7 @@ protected: | |||
73 | BOOL mHitLand; | 73 | BOOL mHitLand; |
74 | LLUUID mHitObjectID; | 74 | LLUUID mHitObjectID; |
75 | BOOL mMouseOutsideSlop; // for this drag, has mouse moved outside slop region | 75 | BOOL mMouseOutsideSlop; // for this drag, has mouse moved outside slop region |
76 | static LLViewerObject* sClickActionObject; | 76 | static LLPointer<LLViewerObject> sClickActionObject; |
77 | static U8 sClickAction; | 77 | static U8 sClickAction; |
78 | static LLHandle<LLObjectSelection> sLeftClickSelection; | 78 | static LLHandle<LLObjectSelection> sLeftClickSelection; |
79 | }; | 79 | }; |
diff --git a/linden/indra/newview/lltoolselect.cpp b/linden/indra/newview/lltoolselect.cpp index 9d02756..329801f 100644 --- a/linden/indra/newview/lltoolselect.cpp +++ b/linden/indra/newview/lltoolselect.cpp | |||
@@ -229,7 +229,7 @@ LLHandle<LLObjectSelection> LLToolSelect::handleObjectSelection(LLViewerObject * | |||
229 | 229 | ||
230 | BOOL LLToolSelect::handleMouseUp(S32 x, S32 y, MASK mask) | 230 | BOOL LLToolSelect::handleMouseUp(S32 x, S32 y, MASK mask) |
231 | { | 231 | { |
232 | mIgnoreGroup = !gSavedSettings.getBOOL("SelectLinkedSet"); | 232 | mIgnoreGroup = gSavedSettings.getBOOL("EditLinkedParts"); |
233 | 233 | ||
234 | LLViewerObject* object = gObjectList.findObject(mSelectObjectID); | 234 | LLViewerObject* object = gObjectList.findObject(mSelectObjectID); |
235 | LLToolSelect::handleObjectSelection(object, mask, mIgnoreGroup, FALSE); | 235 | LLToolSelect::handleObjectSelection(object, mask, mIgnoreGroup, FALSE); |
diff --git a/linden/indra/newview/llviewerassetstorage.cpp b/linden/indra/newview/llviewerassetstorage.cpp index 95ef983..d9a5ada 100644 --- a/linden/indra/newview/llviewerassetstorage.cpp +++ b/linden/indra/newview/llviewerassetstorage.cpp | |||
@@ -57,7 +57,9 @@ void LLViewerAssetStorage::storeAssetData( | |||
57 | void* user_data, | 57 | void* user_data, |
58 | bool temp_file, | 58 | bool temp_file, |
59 | bool is_priority, | 59 | bool is_priority, |
60 | bool store_local) | 60 | bool store_local, |
61 | bool user_waiting, | ||
62 | F64 timeout) | ||
61 | { | 63 | { |
62 | LLAssetID asset_id = tid.makeAssetID(gAgent.getSecureSessionID()); | 64 | LLAssetID asset_id = tid.makeAssetID(gAgent.getSecureSessionID()); |
63 | llinfos << "LLViewerAssetStorage::storeAssetData (legacy) " << tid << ":" << LLAssetType::lookup(asset_type) | 65 | llinfos << "LLViewerAssetStorage::storeAssetData (legacy) " << tid << ":" << LLAssetType::lookup(asset_type) |
@@ -161,7 +163,9 @@ void LLViewerAssetStorage::storeAssetData( | |||
161 | LLStoreAssetCallback callback, | 163 | LLStoreAssetCallback callback, |
162 | void* user_data, | 164 | void* user_data, |
163 | bool temp_file, | 165 | bool temp_file, |
164 | bool is_priority) | 166 | bool is_priority, |
167 | bool user_waiting, | ||
168 | F64 timeout) | ||
165 | { | 169 | { |
166 | if(!filename) | 170 | if(!filename) |
167 | { | 171 | { |
diff --git a/linden/indra/newview/llviewerassetstorage.h b/linden/indra/newview/llviewerassetstorage.h index 8532e23..46840cb 100644 --- a/linden/indra/newview/llviewerassetstorage.h +++ b/linden/indra/newview/llviewerassetstorage.h | |||
@@ -52,7 +52,9 @@ public: | |||
52 | void* user_data, | 52 | void* user_data, |
53 | bool temp_file = false, | 53 | bool temp_file = false, |
54 | bool is_priority = false, | 54 | bool is_priority = false, |
55 | bool store_local = false); | 55 | bool store_local = false, |
56 | bool user_waiting=FALSE, | ||
57 | F64 timeout=LL_ASSET_STORAGE_TIMEOUT); | ||
56 | 58 | ||
57 | virtual void storeAssetData( | 59 | virtual void storeAssetData( |
58 | const char* filename, | 60 | const char* filename, |
@@ -61,7 +63,9 @@ public: | |||
61 | LLStoreAssetCallback callback, | 63 | LLStoreAssetCallback callback, |
62 | void* user_data, | 64 | void* user_data, |
63 | bool temp_file = false, | 65 | bool temp_file = false, |
64 | bool is_priority = false); | 66 | bool is_priority = false, |
67 | bool user_waiting=FALSE, | ||
68 | F64 timeout=LL_ASSET_STORAGE_TIMEOUT); | ||
65 | }; | 69 | }; |
66 | 70 | ||
67 | #endif | 71 | #endif |
diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp index 2a7f346..b129a9a 100644 --- a/linden/indra/newview/llviewerimage.cpp +++ b/linden/indra/newview/llviewerimage.cpp | |||
@@ -156,7 +156,7 @@ void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity) | |||
156 | sMaxTotalTextureMem -= sMaxBoundTextureMem/4; | 156 | sMaxTotalTextureMem -= sMaxBoundTextureMem/4; |
157 | } | 157 | } |
158 | 158 | ||
159 | if (sMaxTotalTextureMem > (S32)gSysMemory.getPhysicalMemory() - min_non_tex_system_mem) | 159 | if ((U32)sMaxTotalTextureMem > gSysMemory.getPhysicalMemory() - (U32)min_non_tex_system_mem) |
160 | { | 160 | { |
161 | sMaxTotalTextureMem = (S32)gSysMemory.getPhysicalMemory() - min_non_tex_system_mem; | 161 | sMaxTotalTextureMem = (S32)gSysMemory.getPhysicalMemory() - min_non_tex_system_mem; |
162 | } | 162 | } |
diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h index c62e5e4..ee19cfb 100644 --- a/linden/indra/newview/llviewerimage.h +++ b/linden/indra/newview/llviewerimage.h | |||
@@ -226,6 +226,7 @@ public: | |||
226 | BOOST_AVATAR_BAKED = 1, | 226 | BOOST_AVATAR_BAKED = 1, |
227 | BOOST_AVATAR = 2, | 227 | BOOST_AVATAR = 2, |
228 | BOOST_CLOUDS = 3, | 228 | BOOST_CLOUDS = 3, |
229 | BOOST_SCULPTED = 4, | ||
229 | 230 | ||
230 | BOOST_HIGH = 10, | 231 | BOOST_HIGH = 10, |
231 | BOOST_TERRAIN = 11, // has to be high priority for minimap / low detail | 232 | BOOST_TERRAIN = 11, // has to be high priority for minimap / low detail |
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index 4e87905..fce719f 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "llimagej2c.h" | 38 | #include "llimagej2c.h" |
39 | #include "llimagetga.h" | 39 | #include "llimagetga.h" |
40 | #include "llimagejpeg.h" | 40 | #include "llimagejpeg.h" |
41 | #include "llimagepng.h" | ||
41 | #include "llmediaengine.h" | 42 | #include "llmediaengine.h" |
42 | 43 | ||
43 | #include "llsdserialize.h" | 44 | #include "llsdserialize.h" |
@@ -1081,6 +1082,21 @@ BOOL LLViewerImageList::createUploadFile(const LLString& filename, | |||
1081 | } | 1082 | } |
1082 | } | 1083 | } |
1083 | break; | 1084 | break; |
1085 | case IMG_CODEC_PNG: | ||
1086 | { | ||
1087 | LLPointer<LLImagePNG> png_image = new LLImagePNG; | ||
1088 | |||
1089 | if (!png_image->load(filename)) | ||
1090 | { | ||
1091 | return FALSE; | ||
1092 | } | ||
1093 | |||
1094 | if (!png_image->decode(raw_image)) | ||
1095 | { | ||
1096 | return FALSE; | ||
1097 | } | ||
1098 | } | ||
1099 | break; | ||
1084 | default: | 1100 | default: |
1085 | return FALSE; | 1101 | return FALSE; |
1086 | } | 1102 | } |
diff --git a/linden/indra/newview/llviewerinventory.cpp b/linden/indra/newview/llviewerinventory.cpp index 0a65b8b..f24b7c7 100644 --- a/linden/indra/newview/llviewerinventory.cpp +++ b/linden/indra/newview/llviewerinventory.cpp | |||
@@ -571,7 +571,7 @@ U32 LLInventoryCallbackManager::registerCB(LLPointer<LLInventoryCallback> cb) | |||
571 | 571 | ||
572 | void LLInventoryCallbackManager::fire(U32 callback_id, const LLUUID& item_id) | 572 | void LLInventoryCallbackManager::fire(U32 callback_id, const LLUUID& item_id) |
573 | { | 573 | { |
574 | if (!callback_id) | 574 | if (!callback_id || item_id.isNull()) |
575 | return; | 575 | return; |
576 | 576 | ||
577 | std::map<U32, LLPointer<LLInventoryCallback> >::iterator i; | 577 | std::map<U32, LLPointer<LLInventoryCallback> >::iterator i; |
diff --git a/linden/indra/newview/llviewerjointattachment.h b/linden/indra/newview/llviewerjointattachment.h index 0c8469c..a8c2c71 100644 --- a/linden/indra/newview/llviewerjointattachment.h +++ b/linden/indra/newview/llviewerjointattachment.h | |||
@@ -79,7 +79,7 @@ public: | |||
79 | 79 | ||
80 | S32 getGroup() { return mGroup; } | 80 | S32 getGroup() { return mGroup; } |
81 | S32 getPieSlice() { return mPieSlice; } | 81 | S32 getPieSlice() { return mPieSlice; } |
82 | BOOL getAttachmentDirty() { return mAttachmentDirty && mAttachedObject; } | 82 | BOOL getAttachmentDirty() { return mAttachmentDirty && mAttachedObject.notNull(); } |
83 | LLViewerObject *getObject() { return mAttachedObject; } | 83 | LLViewerObject *getObject() { return mAttachedObject; } |
84 | S32 getNumObjects() { return (mAttachedObject ? 1 : 0); } | 84 | S32 getNumObjects() { return (mAttachedObject ? 1 : 0); } |
85 | const LLUUID& getItemID() { return mItemID; } | 85 | const LLUUID& getItemID() { return mItemID; } |
@@ -99,7 +99,7 @@ protected: | |||
99 | 99 | ||
100 | protected: | 100 | protected: |
101 | LLJoint* mJoint; | 101 | LLJoint* mJoint; |
102 | LLViewerObject* mAttachedObject; | 102 | LLPointer<LLViewerObject> mAttachedObject; |
103 | BOOL mAttachmentDirty; // does attachment drawable need to be fixed up? | 103 | BOOL mAttachmentDirty; // does attachment drawable need to be fixed up? |
104 | BOOL mVisibleInFirst; | 104 | BOOL mVisibleInFirst; |
105 | LLVector3 mOriginalPos; | 105 | LLVector3 mOriginalPos; |
diff --git a/linden/indra/newview/llviewerkeyboard.cpp b/linden/indra/newview/llviewerkeyboard.cpp index fcb1550..ad931cd 100644 --- a/linden/indra/newview/llviewerkeyboard.cpp +++ b/linden/indra/newview/llviewerkeyboard.cpp | |||
@@ -121,11 +121,7 @@ void agent_slide_left( EKeystate s ) | |||
121 | 121 | ||
122 | if( time < NUDGE_TIME || frame_count <= NUDGE_FRAMES) | 122 | if( time < NUDGE_TIME || frame_count <= NUDGE_FRAMES) |
123 | { | 123 | { |
124 | if (frame_count == 0) | 124 | gAgent.moveLeftNudge(1); |
125 | { | ||
126 | // only send nudge on first frame | ||
127 | gAgent.moveLeftNudge(1); | ||
128 | } | ||
129 | } | 125 | } |
130 | else | 126 | else |
131 | { | 127 | { |
@@ -142,11 +138,7 @@ void agent_slide_right( EKeystate s ) | |||
142 | 138 | ||
143 | if( time < NUDGE_TIME || frame_count <= NUDGE_FRAMES) | 139 | if( time < NUDGE_TIME || frame_count <= NUDGE_FRAMES) |
144 | { | 140 | { |
145 | if (frame_count == 0) | 141 | gAgent.moveLeftNudge(-1); |
146 | { | ||
147 | // only send nudge on first frame | ||
148 | gAgent.moveLeftNudge(-1); | ||
149 | } | ||
150 | } | 142 | } |
151 | else | 143 | else |
152 | { | 144 | { |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 4119573..b36b9a2 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -244,7 +244,7 @@ const LLString SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents"); | |||
244 | 244 | ||
245 | #if LL_WINDOWS | 245 | #if LL_WINDOWS |
246 | static const char* SOUND_EXTENSIONS = ".wav"; | 246 | static const char* SOUND_EXTENSIONS = ".wav"; |
247 | static const char* IMAGE_EXTENSIONS = ".tga .bmp .jpg .jpeg"; | 247 | static const char* IMAGE_EXTENSIONS = ".tga .bmp .jpg .jpeg .png"; |
248 | static const char* ANIM_EXTENSIONS = ".bvh"; | 248 | static const char* ANIM_EXTENSIONS = ".bvh"; |
249 | #ifdef _CORY_TESTING | 249 | #ifdef _CORY_TESTING |
250 | static const char* GEOMETRY_EXTENSIONS = ".slg"; | 250 | static const char* GEOMETRY_EXTENSIONS = ".slg"; |
@@ -1259,7 +1259,7 @@ void init_debug_avatar_menu(LLMenuGL* menu) | |||
1259 | 1259 | ||
1260 | sub_menu = new LLMenuGL("Character Tests"); | 1260 | sub_menu = new LLMenuGL("Character Tests"); |
1261 | sub_menu->append(new LLMenuItemToggleGL("Go Away/AFK When Idle", | 1261 | sub_menu->append(new LLMenuItemToggleGL("Go Away/AFK When Idle", |
1262 | &gAllowAFK)); | 1262 | &gAllowIdleAFK)); |
1263 | 1263 | ||
1264 | sub_menu->append(new LLMenuItemCallGL("Appearance To XML", | 1264 | sub_menu->append(new LLMenuItemCallGL("Appearance To XML", |
1265 | &LLVOAvatar::dumpArchetypeXML)); | 1265 | &LLVOAvatar::dumpArchetypeXML)); |
@@ -4150,7 +4150,7 @@ class LLToolsBuyOrTake : public view_listener_t | |||
4150 | { | 4150 | { |
4151 | S32 total_price = selection_price(); | 4151 | S32 total_price = selection_price(); |
4152 | 4152 | ||
4153 | if (total_price <= gStatusBar->getBalance()) | 4153 | if (total_price <= gStatusBar->getBalance() || total_price == 0) |
4154 | { | 4154 | { |
4155 | handle_buy(NULL); | 4155 | handle_buy(NULL); |
4156 | } | 4156 | } |
@@ -4442,7 +4442,7 @@ class LLToolsEnableLink : public view_listener_t | |||
4442 | // user can modify at least one of the selected objects. | 4442 | // user can modify at least one of the selected objects. |
4443 | 4443 | ||
4444 | // in component mode, can't link | 4444 | // in component mode, can't link |
4445 | if (gSavedSettings.getBOOL("SelectLinkedSet")) | 4445 | if (!gSavedSettings.getBOOL("EditLinkedParts")) |
4446 | { | 4446 | { |
4447 | if(gSelectMgr->selectGetAllRootsValid() && gSelectMgr->getSelection()->getRootObjectCount() >= 2) | 4447 | if(gSelectMgr->selectGetAllRootsValid() && gSelectMgr->getSelection()->getRootObjectCount() >= 2) |
4448 | { | 4448 | { |
@@ -4842,6 +4842,12 @@ void show_debug_menus() | |||
4842 | if ( gMenuBarView ) | 4842 | if ( gMenuBarView ) |
4843 | { | 4843 | { |
4844 | BOOL debug = gSavedSettings.getBOOL("UseDebugMenus"); | 4844 | BOOL debug = gSavedSettings.getBOOL("UseDebugMenus"); |
4845 | |||
4846 | if(debug) | ||
4847 | { | ||
4848 | LLFirstUse::useDebugMenus(); | ||
4849 | } | ||
4850 | |||
4845 | gMenuBarView->setItemVisible(CLIENT_MENU_NAME, debug); | 4851 | gMenuBarView->setItemVisible(CLIENT_MENU_NAME, debug); |
4846 | gMenuBarView->setItemEnabled(CLIENT_MENU_NAME, debug); | 4852 | gMenuBarView->setItemEnabled(CLIENT_MENU_NAME, debug); |
4847 | gMenuBarView->setItemVisible(SERVER_MENU_NAME, debug); | 4853 | gMenuBarView->setItemVisible(SERVER_MENU_NAME, debug); |
@@ -6927,6 +6933,23 @@ class LLToolsShowSelectionLightRadius : public view_listener_t | |||
6927 | } | 6933 | } |
6928 | }; | 6934 | }; |
6929 | 6935 | ||
6936 | class LLToolsEditLinkedParts : public view_listener_t | ||
6937 | { | ||
6938 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
6939 | { | ||
6940 | BOOL select_individuals = gSavedSettings.getBOOL("EditLinkedParts"); | ||
6941 | if (select_individuals) | ||
6942 | { | ||
6943 | gSelectMgr->demoteSelectionToIndividuals(); | ||
6944 | } | ||
6945 | else | ||
6946 | { | ||
6947 | gSelectMgr->promoteSelectionToRoot(); | ||
6948 | } | ||
6949 | return true; | ||
6950 | } | ||
6951 | }; | ||
6952 | |||
6930 | void reload_personal_settings_overrides(void *) | 6953 | void reload_personal_settings_overrides(void *) |
6931 | { | 6954 | { |
6932 | llinfos << "Loading overrides from " << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,"overrides.xml") << llendl; | 6955 | llinfos << "Loading overrides from " << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,"overrides.xml") << llendl; |
@@ -7620,6 +7643,7 @@ void initialize_menus() | |||
7620 | addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding"); | 7643 | addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding"); |
7621 | addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection"); | 7644 | addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection"); |
7622 | addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius"); | 7645 | addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius"); |
7646 | addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts"); | ||
7623 | addMenu(new LLToolsSnapObjectXY(), "Tools.SnapObjectXY"); | 7647 | addMenu(new LLToolsSnapObjectXY(), "Tools.SnapObjectXY"); |
7624 | addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid"); | 7648 | addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid"); |
7625 | addMenu(new LLToolsLink(), "Tools.Link"); | 7649 | addMenu(new LLToolsLink(), "Tools.Link"); |
diff --git a/linden/indra/newview/llviewermenufile.cpp b/linden/indra/newview/llviewermenufile.cpp index 6954b1c..19dfebe 100644 --- a/linden/indra/newview/llviewermenufile.cpp +++ b/linden/indra/newview/llviewermenufile.cpp | |||
@@ -561,6 +561,21 @@ void upload_new_resource(const LLString& src_filename, std::string name, | |||
561 | return; | 561 | return; |
562 | } | 562 | } |
563 | } | 563 | } |
564 | else if( LLString::compareInsensitive(ext.c_str(),".png") == 0 ) | ||
565 | { | ||
566 | asset_type = LLAssetType::AT_TEXTURE; | ||
567 | if (!LLViewerImageList::createUploadFile(src_filename, | ||
568 | filename, | ||
569 | IMG_CODEC_PNG )) | ||
570 | { | ||
571 | sprintf(error_message, "Problem with file %s:\n\n%s\n", | ||
572 | src_filename.c_str(), LLImageBase::getLastError().c_str()); | ||
573 | args["[FILE]"] = src_filename; | ||
574 | args["[ERROR]"] = LLImageBase::getLastError(); | ||
575 | upload_error(error_message, "ProblemWithFile", filename, args); | ||
576 | return; | ||
577 | } | ||
578 | } | ||
564 | else if(LLString::compareInsensitive(ext.c_str(),".wav") == 0) | 579 | else if(LLString::compareInsensitive(ext.c_str(),".wav") == 0) |
565 | { | 580 | { |
566 | asset_type = LLAssetType::AT_SOUND; // tag it as audio | 581 | asset_type = LLAssetType::AT_SOUND; // tag it as audio |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index 87ff5aa..8f2fc1a 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -154,6 +154,22 @@ LLFrameTimer gThrottleTimer; | |||
154 | const U32 OFFER_THROTTLE_MAX_COUNT=5; //number of items per time period | 154 | const U32 OFFER_THROTTLE_MAX_COUNT=5; //number of items per time period |
155 | const F32 OFFER_THROTTLE_TIME=10.f; //time period in seconds | 155 | const F32 OFFER_THROTTLE_TIME=10.f; //time period in seconds |
156 | 156 | ||
157 | //script permissions | ||
158 | const LLString SCRIPT_QUESTIONS[SCRIPT_PERMISSION_EOF] = | ||
159 | { | ||
160 | "ScriptTakeMoney", | ||
161 | "ActOnControlInputs", | ||
162 | "RemapControlInputs", | ||
163 | "AnimateYourAvatar", | ||
164 | "AttachToYourAvatar", | ||
165 | "ReleaseOwnership", | ||
166 | "LinkAndDelink", | ||
167 | "AddAndRemoveJoints", | ||
168 | "ChangePermissions", | ||
169 | "TrackYourCamera", | ||
170 | "ControlYourCamera" | ||
171 | }; | ||
172 | |||
157 | struct LLFriendshipOffer | 173 | struct LLFriendshipOffer |
158 | { | 174 | { |
159 | LLUUID mFromID; | 175 | LLUUID mFromID; |
@@ -4243,8 +4259,8 @@ void process_economy_data(LLMessageSystem *msg, void** /*user_data*/) | |||
4243 | class LLScriptQuestionCBData | 4259 | class LLScriptQuestionCBData |
4244 | { | 4260 | { |
4245 | public: | 4261 | public: |
4246 | LLScriptQuestionCBData(const LLUUID &taskid, const LLUUID &itemid, const LLHost &sender, S32 questions) | 4262 | LLScriptQuestionCBData(const LLUUID &taskid, const LLUUID &itemid, const LLHost &sender, S32 questions, const char *object_name, const char *owner_name) |
4247 | : mTaskID(taskid), mItemID(itemid), mSender(sender), mQuestions(questions) | 4263 | : mTaskID(taskid), mItemID(itemid), mSender(sender), mQuestions(questions), mObjectName(object_name), mOwnerName(owner_name) |
4248 | { | 4264 | { |
4249 | } | 4265 | } |
4250 | 4266 | ||
@@ -4252,17 +4268,138 @@ public: | |||
4252 | LLUUID mItemID; | 4268 | LLUUID mItemID; |
4253 | LLHost mSender; | 4269 | LLHost mSender; |
4254 | S32 mQuestions; | 4270 | S32 mQuestions; |
4271 | LLString mObjectName; | ||
4272 | LLString mOwnerName; | ||
4255 | }; | 4273 | }; |
4256 | 4274 | ||
4275 | void notify_cautioned_script_question(LLScriptQuestionCBData* cbdata, S32 orig_questions, BOOL granted) | ||
4276 | { | ||
4277 | // only continue if at least some permissions were requested | ||
4278 | if (orig_questions) | ||
4279 | { | ||
4280 | // "'[OBJECTNAME]', an object owned by '[OWNERNAME]', | ||
4281 | // located in [REGIONNAME] at [REGIONPOS], | ||
4282 | // has been <granted|denied> permission to: [PERMISSIONS]." | ||
4283 | |||
4284 | LLUIString notice(LLNotifyBox::getTemplateMessage(granted ? "ScriptQuestionCautionChatGranted" : "ScriptQuestionCautionChatDenied")); | ||
4285 | |||
4286 | // always include the object name and owner name | ||
4287 | notice.setArg("[OBJECTNAME]", cbdata->mObjectName); | ||
4288 | notice.setArg("[OWNERNAME]", cbdata->mOwnerName); | ||
4289 | |||
4290 | // try to lookup viewerobject that corresponds to the object that | ||
4291 | // requested permissions (here, taskid->requesting object id) | ||
4292 | BOOL foundpos = FALSE; | ||
4293 | LLViewerObject* viewobj = gObjectList.findObject(cbdata->mTaskID); | ||
4294 | if (viewobj) | ||
4295 | { | ||
4296 | // found the viewerobject, get it's position in its region | ||
4297 | LLVector3 objpos(viewobj->getPosition()); | ||
4298 | |||
4299 | // try to lookup the name of the region the object is in | ||
4300 | LLViewerRegion* viewregion = viewobj->getRegion(); | ||
4301 | if (viewregion) | ||
4302 | { | ||
4303 | // got the region, so include the region and 3d coordinates of the object | ||
4304 | notice.setArg("[REGIONNAME]", viewregion->getName()); | ||
4305 | LLString formatpos = llformat("%.1f, %.1f,%.1f", objpos[VX], objpos[VY], objpos[VZ]); | ||
4306 | notice.setArg("[REGIONPOS]", formatpos); | ||
4307 | |||
4308 | foundpos = TRUE; | ||
4309 | } | ||
4310 | } | ||
4311 | |||
4312 | if (!foundpos) | ||
4313 | { | ||
4314 | // unable to determine location of the object | ||
4315 | notice.setArg("[REGIONNAME]", "(unknown region)"); | ||
4316 | notice.setArg("[REGIONPOS]", "(unknown position)"); | ||
4317 | } | ||
4318 | |||
4319 | // check each permission that was requested, and list each | ||
4320 | // permission that has been flagged as a caution permission | ||
4321 | BOOL caution = FALSE; | ||
4322 | S32 count = 0; | ||
4323 | LLString perms; | ||
4324 | for (S32 i = 0; i < SCRIPT_PERMISSION_EOF; i++) | ||
4325 | { | ||
4326 | if ((orig_questions & LSCRIPTRunTimePermissionBits[i]) && LLNotifyBox::getTemplateIsCaution(SCRIPT_QUESTIONS[i])) | ||
4327 | { | ||
4328 | count++; | ||
4329 | caution = TRUE; | ||
4330 | |||
4331 | // add a comma before the permission description if it is not the first permission | ||
4332 | // added to the list or the last permission to check | ||
4333 | if ((count > 1) && (i < SCRIPT_PERMISSION_EOF)) | ||
4334 | { | ||
4335 | perms.append(", "); | ||
4336 | } | ||
4337 | |||
4338 | perms.append(LLNotifyBox::getTemplateMessage(SCRIPT_QUESTIONS[i])); | ||
4339 | } | ||
4340 | } | ||
4341 | |||
4342 | notice.setArg("[PERMISSIONS]", perms); | ||
4343 | |||
4344 | // log a chat message as long as at least one requested permission | ||
4345 | // is a caution permission | ||
4346 | if (caution) | ||
4347 | { | ||
4348 | LLChat chat(notice.getString()); | ||
4349 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
4350 | } | ||
4351 | } | ||
4352 | } | ||
4353 | |||
4354 | void script_question_decline_cb(S32 option, void* user_data) | ||
4355 | { | ||
4356 | LLMessageSystem *msg = gMessageSystem; | ||
4357 | LLScriptQuestionCBData *cbdata = (LLScriptQuestionCBData *)user_data; | ||
4358 | |||
4359 | // remember the permissions requested so they can be checked | ||
4360 | // when it comes time to log a chat message | ||
4361 | S32 orig = cbdata->mQuestions; | ||
4362 | |||
4363 | // this callback will always decline all permissions requested | ||
4364 | // (any question flags set in the ScriptAnswerYes message | ||
4365 | // will be interpreted as having been granted, so clearing all | ||
4366 | // the bits will deny every permission) | ||
4367 | cbdata->mQuestions = 0; | ||
4368 | |||
4369 | // respond with the permissions denial | ||
4370 | msg->newMessageFast(_PREHASH_ScriptAnswerYes); | ||
4371 | msg->nextBlockFast(_PREHASH_AgentData); | ||
4372 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
4373 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
4374 | msg->nextBlockFast(_PREHASH_Data); | ||
4375 | msg->addUUIDFast(_PREHASH_TaskID, cbdata->mTaskID); | ||
4376 | msg->addUUIDFast(_PREHASH_ItemID, cbdata->mItemID); | ||
4377 | msg->addS32Fast(_PREHASH_Questions, cbdata->mQuestions); | ||
4378 | msg->sendReliable(cbdata->mSender); | ||
4379 | |||
4380 | // log a chat message, if appropriate | ||
4381 | notify_cautioned_script_question(cbdata, orig, FALSE); | ||
4382 | |||
4383 | delete cbdata; | ||
4384 | } | ||
4257 | 4385 | ||
4258 | void script_question_cb(S32 option, void* user_data) | 4386 | void script_question_cb(S32 option, void* user_data) |
4259 | { | 4387 | { |
4260 | LLMessageSystem *msg = gMessageSystem; | 4388 | LLMessageSystem *msg = gMessageSystem; |
4261 | LLScriptQuestionCBData *cbdata = (LLScriptQuestionCBData *)user_data; | 4389 | LLScriptQuestionCBData *cbdata = (LLScriptQuestionCBData *)user_data; |
4390 | S32 orig = cbdata->mQuestions; | ||
4391 | |||
4392 | // check whether permissions were granted or denied | ||
4393 | BOOL allowed = TRUE; | ||
4394 | // the "yes/accept" button is the first button in the template, making it button 0 | ||
4395 | // if any other button was clicked, the permissions were denied | ||
4262 | if (option != 0) | 4396 | if (option != 0) |
4263 | { | 4397 | { |
4264 | cbdata->mQuestions = 0; | 4398 | cbdata->mQuestions = 0; |
4265 | } | 4399 | allowed = FALSE; |
4400 | } | ||
4401 | |||
4402 | // reply with the permissions granted or denied | ||
4266 | msg->newMessageFast(_PREHASH_ScriptAnswerYes); | 4403 | msg->newMessageFast(_PREHASH_ScriptAnswerYes); |
4267 | msg->nextBlockFast(_PREHASH_AgentData); | 4404 | msg->nextBlockFast(_PREHASH_AgentData); |
4268 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 4405 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
@@ -4272,27 +4409,20 @@ void script_question_cb(S32 option, void* user_data) | |||
4272 | msg->addUUIDFast(_PREHASH_ItemID, cbdata->mItemID); | 4409 | msg->addUUIDFast(_PREHASH_ItemID, cbdata->mItemID); |
4273 | msg->addS32Fast(_PREHASH_Questions, cbdata->mQuestions); | 4410 | msg->addS32Fast(_PREHASH_Questions, cbdata->mQuestions); |
4274 | msg->sendReliable(cbdata->mSender); | 4411 | msg->sendReliable(cbdata->mSender); |
4412 | |||
4413 | // only log a chat message if caution prompts are enabled | ||
4414 | if (gSavedSettings.getBOOL("PermissionsCautionEnabled")) | ||
4415 | { | ||
4416 | // log a chat message, if appropriate | ||
4417 | notify_cautioned_script_question(cbdata, orig, allowed); | ||
4418 | } | ||
4419 | |||
4275 | delete cbdata; | 4420 | delete cbdata; |
4276 | } | 4421 | } |
4277 | 4422 | ||
4278 | |||
4279 | void process_script_question(LLMessageSystem *msg, void **user_data) | 4423 | void process_script_question(LLMessageSystem *msg, void **user_data) |
4280 | { | 4424 | { |
4281 | // XUI:translate owner name -> [FIRST] [LAST] | 4425 | // XUI:translate owner name -> [FIRST] [LAST] |
4282 | const LLString script_questions[SCRIPT_PERMISSION_EOF] = | ||
4283 | { | ||
4284 | "ScriptTakeMoney", | ||
4285 | "ActOnControlInputs", | ||
4286 | "RemapControlInputs", | ||
4287 | "AnimateYourAvatar", | ||
4288 | "AttachToYourAvatar", | ||
4289 | "ReleaseOwnership", | ||
4290 | "LinkAndDelink", | ||
4291 | "AddAndRemoveJoints", | ||
4292 | "ChangePermissions", | ||
4293 | "TrackYourCamera", | ||
4294 | "ControlYourCamera" | ||
4295 | }; | ||
4296 | 4426 | ||
4297 | LLHost sender = msg->getSender(); | 4427 | LLHost sender = msg->getSender(); |
4298 | 4428 | ||
@@ -4302,7 +4432,9 @@ void process_script_question(LLMessageSystem *msg, void **user_data) | |||
4302 | char object_name[255]; /* Flawfinder: ignore */ | 4432 | char object_name[255]; /* Flawfinder: ignore */ |
4303 | char owner_name[DB_FULL_NAME_BUF_SIZE]; /* Flawfinder: ignore */ | 4433 | char owner_name[DB_FULL_NAME_BUF_SIZE]; /* Flawfinder: ignore */ |
4304 | 4434 | ||
4435 | // taskid -> object key of object requesting permissions | ||
4305 | msg->getUUIDFast(_PREHASH_Data, _PREHASH_TaskID, taskid ); | 4436 | msg->getUUIDFast(_PREHASH_Data, _PREHASH_TaskID, taskid ); |
4437 | // itemid -> script asset key of script requesting permissions | ||
4306 | msg->getUUIDFast(_PREHASH_Data, _PREHASH_ItemID, itemid ); | 4438 | msg->getUUIDFast(_PREHASH_Data, _PREHASH_ItemID, itemid ); |
4307 | msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectName, 255, object_name); | 4439 | msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectName, 255, object_name); |
4308 | msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectOwner, DB_FULL_NAME_BUF_SIZE, owner_name); | 4440 | msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectOwner, DB_FULL_NAME_BUF_SIZE, owner_name); |
@@ -4311,23 +4443,48 @@ void process_script_question(LLMessageSystem *msg, void **user_data) | |||
4311 | LLString script_question; | 4443 | LLString script_question; |
4312 | if (questions) | 4444 | if (questions) |
4313 | { | 4445 | { |
4446 | BOOL caution = FALSE; | ||
4314 | S32 count = 0; | 4447 | S32 count = 0; |
4315 | LLString::format_map_t args; | 4448 | LLString::format_map_t args; |
4316 | args["[OBJECTNAME]"] = object_name; | 4449 | args["[OBJECTNAME]"] = object_name; |
4317 | args["[NAME]"] = owner_name; | 4450 | args["[NAME]"] = owner_name; |
4451 | |||
4452 | // check the received permission flags against each permission | ||
4318 | for (S32 i = 0; i < SCRIPT_PERMISSION_EOF; i++) | 4453 | for (S32 i = 0; i < SCRIPT_PERMISSION_EOF; i++) |
4319 | { | 4454 | { |
4320 | if (questions & LSCRIPTRunTimePermissionBits[i]) | 4455 | if (questions & LSCRIPTRunTimePermissionBits[i]) |
4321 | { | 4456 | { |
4322 | count++; | 4457 | count++; |
4323 | script_question += " " + LLNotifyBox::getTemplateMessage(script_questions[i]) + "\n"; | 4458 | script_question += " " + LLNotifyBox::getTemplateMessage(SCRIPT_QUESTIONS[i]) + "\n"; |
4459 | |||
4460 | // check whether permission question should cause special caution dialog | ||
4461 | caution |= LLNotifyBox::getTemplateIsCaution(SCRIPT_QUESTIONS[i]); | ||
4324 | } | 4462 | } |
4325 | } | 4463 | } |
4326 | args["[QUESTIONS]"] = script_question; | 4464 | args["[QUESTIONS]"] = script_question; |
4327 | 4465 | ||
4328 | LLScriptQuestionCBData *cbdata = new LLScriptQuestionCBData(taskid, itemid, sender, questions); | 4466 | LLScriptQuestionCBData *cbdata = new LLScriptQuestionCBData(taskid, itemid, sender, questions, object_name, owner_name); |
4467 | |||
4468 | // check whether cautions are even enabled or not | ||
4469 | if (gSavedSettings.getBOOL("PermissionsCautionEnabled")) | ||
4470 | { | ||
4471 | if (caution) | ||
4472 | { | ||
4473 | // display the caution permissions prompt | ||
4474 | LLNotifyBox::showXml("ScriptQuestionCaution", args, TRUE, script_question_cb, cbdata); | ||
4475 | } | ||
4476 | else | ||
4477 | { | ||
4478 | // display the permissions request normally | ||
4479 | LLNotifyBox::showXml("ScriptQuestion", args, FALSE, script_question_cb, cbdata); | ||
4480 | } | ||
4481 | } | ||
4482 | else | ||
4483 | { | ||
4484 | // fall back to default behavior if cautions are entirely disabled | ||
4485 | LLNotifyBox::showXml("ScriptQuestion", args, FALSE, script_question_cb, cbdata); | ||
4486 | } | ||
4329 | 4487 | ||
4330 | LLNotifyBox::showXml("ScriptQuestion", args, script_question_cb, cbdata); | ||
4331 | } | 4488 | } |
4332 | } | 4489 | } |
4333 | 4490 | ||
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp index 5a7ef9d..d237614 100644 --- a/linden/indra/newview/llviewerobject.cpp +++ b/linden/indra/newview/llviewerobject.cpp | |||
@@ -1571,7 +1571,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, | |||
1571 | // Bad, we got a cycle somehow. | 1571 | // Bad, we got a cycle somehow. |
1572 | // Kill both the parent and the child, and | 1572 | // Kill both the parent and the child, and |
1573 | // set cache misses for both of them. | 1573 | // set cache misses for both of them. |
1574 | llwarns << "Attempting to recover from parenting cycle!" << llendl | 1574 | llwarns << "Attempting to recover from parenting cycle!" << llendl; |
1575 | llwarns << "Killing " << sent_parentp->getID() << " and " << getID() << llendl; | 1575 | llwarns << "Killing " << sent_parentp->getID() << " and " << getID() << llendl; |
1576 | llwarns << "Adding to cache miss list" << llendl; | 1576 | llwarns << "Adding to cache miss list" << llendl; |
1577 | setParent(NULL); | 1577 | setParent(NULL); |
@@ -1595,6 +1595,24 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, | |||
1595 | sent_parentp->addChild(this); | 1595 | sent_parentp->addChild(this); |
1596 | } | 1596 | } |
1597 | 1597 | ||
1598 | if( mPartSourcep.notNull() ) | ||
1599 | { | ||
1600 | LLViewerPartSourceScript *partSourceScript = mPartSourcep.get(); | ||
1601 | partSourceScript->setSuspended( FALSE ); | ||
1602 | } | ||
1603 | |||
1604 | if( mText.notNull() ) | ||
1605 | { | ||
1606 | LLHUDText *hudText = mText.get(); | ||
1607 | hudText->setHidden( FALSE ); | ||
1608 | } | ||
1609 | |||
1610 | if( mIcon.notNull() ) | ||
1611 | { | ||
1612 | LLHUDIcon *hudIcon = mIcon.get(); | ||
1613 | hudIcon->setHidden( FALSE ); | ||
1614 | } | ||
1615 | |||
1598 | setChanged(MOVED | SILHOUETTE); | 1616 | setChanged(MOVED | SILHOUETTE); |
1599 | } | 1617 | } |
1600 | else | 1618 | else |
@@ -1609,6 +1627,23 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, | |||
1609 | U32 port = mesgsys->getSenderPort(); | 1627 | U32 port = mesgsys->getSenderPort(); |
1610 | 1628 | ||
1611 | gObjectList.orphanize(this, parent_id, ip, port); | 1629 | gObjectList.orphanize(this, parent_id, ip, port); |
1630 | if( mPartSourcep.notNull() ) | ||
1631 | { | ||
1632 | LLViewerPartSourceScript *partSourceScript = mPartSourcep.get(); | ||
1633 | partSourceScript->setSuspended( TRUE ); | ||
1634 | } | ||
1635 | |||
1636 | if( mText.notNull() ) | ||
1637 | { | ||
1638 | LLHUDText *hudText = mText.get(); | ||
1639 | hudText->setHidden( TRUE ); | ||
1640 | } | ||
1641 | |||
1642 | if( mIcon.notNull() ) | ||
1643 | { | ||
1644 | LLHUDIcon *hudIcon = mIcon.get(); | ||
1645 | hudIcon->setHidden( TRUE ); | ||
1646 | } | ||
1612 | } | 1647 | } |
1613 | } | 1648 | } |
1614 | } | 1649 | } |
@@ -1686,7 +1721,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, | |||
1686 | // Bad, we got a cycle somehow. | 1721 | // Bad, we got a cycle somehow. |
1687 | // Kill both the parent and the child, and | 1722 | // Kill both the parent and the child, and |
1688 | // set cache misses for both of them. | 1723 | // set cache misses for both of them. |
1689 | llwarns << "Attempting to recover from parenting cycle!" << llendl | 1724 | llwarns << "Attempting to recover from parenting cycle!" << llendl; |
1690 | llwarns << "Killing " << sent_parentp->getID() << " and " << getID() << llendl; | 1725 | llwarns << "Killing " << sent_parentp->getID() << " and " << getID() << llendl; |
1691 | llwarns << "Adding to cache miss list" << llendl; | 1726 | llwarns << "Adding to cache miss list" << llendl; |
1692 | setParent(NULL); | 1727 | setParent(NULL); |
@@ -4148,7 +4183,11 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow | |||
4148 | 4183 | ||
4149 | if (audio_uuid.isNull()) | 4184 | if (audio_uuid.isNull()) |
4150 | { | 4185 | { |
4151 | if (mAudioSourcep && mAudioSourcep->isLoop() && !mAudioSourcep->hasPendingPreloads()) | 4186 | if (!mAudioSourcep) |
4187 | { | ||
4188 | return; | ||
4189 | } | ||
4190 | if (mAudioSourcep->isLoop() && !mAudioSourcep->hasPendingPreloads()) | ||
4152 | { | 4191 | { |
4153 | // We don't clear the sound if it's a loop, it'll go away on its own. | 4192 | // We don't clear the sound if it's a loop, it'll go away on its own. |
4154 | // At least, this appears to be how the scripts work. | 4193 | // At least, this appears to be how the scripts work. |
@@ -4158,29 +4197,22 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow | |||
4158 | gAudiop->cleanupAudioSource(mAudioSourcep); | 4197 | gAudiop->cleanupAudioSource(mAudioSourcep); |
4159 | mAudioSourcep = NULL; | 4198 | mAudioSourcep = NULL; |
4160 | } | 4199 | } |
4161 | else if (mAudioSourcep) | 4200 | else if (flags & LL_SOUND_FLAG_STOP) |
4162 | { | 4201 | { |
4163 | if (mAudioSourcep->isLoop()) | 4202 | // Just shut off the sound |
4164 | { | 4203 | mAudioSourcep->play(LLUUID::null); |
4165 | // Just shut off the sound | ||
4166 | mAudioSourcep->play(LLUUID::null); | ||
4167 | } | ||
4168 | } | 4204 | } |
4169 | return; | 4205 | return; |
4170 | } | 4206 | } |
4171 | if (flags & LL_SOUND_FLAG_LOOP) | 4207 | if (flags & LL_SOUND_FLAG_LOOP |
4208 | && mAudioSourcep && mAudioSourcep->isLoop() && mAudioSourcep->getCurrentData() | ||
4209 | && mAudioSourcep->getCurrentData()->getID() == audio_uuid) | ||
4172 | { | 4210 | { |
4173 | if (mAudioSourcep && mAudioSourcep->isLoop() && mAudioSourcep->getCurrentData()) | 4211 | //llinfos << "Already playing this sound on a loop, ignoring" << llendl; |
4174 | { | 4212 | return; |
4175 | if (mAudioSourcep->getCurrentData()->getID() == audio_uuid) | ||
4176 | { | ||
4177 | //llinfos << "Already playing this sound on a loop, ignoring" << llendl; | ||
4178 | return; | ||
4179 | } | ||
4180 | } | ||
4181 | } | 4213 | } |
4182 | 4214 | ||
4183 | // don't clean up before previous sound is done. Solves: SL-33486 | 4215 | // don't clean up before previous sound is done. Solves: SL-33486 |
4184 | if ( mAudioSourcep && mAudioSourcep->isDone() ) | 4216 | if ( mAudioSourcep && mAudioSourcep->isDone() ) |
4185 | { | 4217 | { |
4186 | gAudiop->cleanupAudioSource(mAudioSourcep); | 4218 | gAudiop->cleanupAudioSource(mAudioSourcep); |
@@ -4191,11 +4223,16 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow | |||
4191 | 4223 | ||
4192 | if (mAudioSourcep) | 4224 | if (mAudioSourcep) |
4193 | { | 4225 | { |
4226 | BOOL queue = flags & LL_SOUND_FLAG_QUEUE; | ||
4194 | mAudioSourcep->setGain(gain); | 4227 | mAudioSourcep->setGain(gain); |
4195 | mAudioSourcep->setLoop((flags & LL_SOUND_FLAG_LOOP) ? TRUE : FALSE); | 4228 | mAudioSourcep->setLoop(flags & LL_SOUND_FLAG_LOOP); |
4196 | mAudioSourcep->setSyncMaster((flags & LL_SOUND_FLAG_SYNC_MASTER) ? TRUE : FALSE); | 4229 | mAudioSourcep->setSyncMaster(flags & LL_SOUND_FLAG_SYNC_MASTER); |
4197 | mAudioSourcep->setSyncSlave((flags & LL_SOUND_FLAG_SYNC_SLAVE) ? TRUE : FALSE); | 4230 | mAudioSourcep->setSyncSlave(flags & LL_SOUND_FLAG_SYNC_SLAVE); |
4198 | mAudioSourcep->setQueueSounds((flags & LL_SOUND_FLAG_QUEUE) ? TRUE : FALSE); | 4231 | mAudioSourcep->setQueueSounds(queue); |
4232 | if(!queue) // stop any current sound first to avoid "farts of doom" (SL-1541) -MG | ||
4233 | { | ||
4234 | mAudioSourcep->play(LLUUID::null); | ||
4235 | } | ||
4199 | //llinfos << "Playing attached sound " << audio_uuid << llendl; | 4236 | //llinfos << "Playing attached sound " << audio_uuid << llendl; |
4200 | mAudioSourcep->play(audio_uuid); | 4237 | mAudioSourcep->play(audio_uuid); |
4201 | } | 4238 | } |
diff --git a/linden/indra/newview/llviewerpartsource.cpp b/linden/indra/newview/llviewerpartsource.cpp index e440eae..c0de13a 100644 --- a/linden/indra/newview/llviewerpartsource.cpp +++ b/linden/indra/newview/llviewerpartsource.cpp | |||
@@ -47,6 +47,7 @@ LLViewerPartSource::LLViewerPartSource(const U32 type) : | |||
47 | mLastUpdateTime = 0.f; | 47 | mLastUpdateTime = 0.f; |
48 | mLastPartTime = 0.f; | 48 | mLastPartTime = 0.f; |
49 | mIsDead = FALSE; | 49 | mIsDead = FALSE; |
50 | mIsSuspended = FALSE; | ||
50 | static U32 id_seed = 0; | 51 | static U32 id_seed = 0; |
51 | mID = ++id_seed; | 52 | mID = ++id_seed; |
52 | } | 53 | } |
@@ -93,6 +94,9 @@ void LLViewerPartSourceScript::setDead() | |||
93 | 94 | ||
94 | void LLViewerPartSourceScript::update(const F32 dt) | 95 | void LLViewerPartSourceScript::update(const F32 dt) |
95 | { | 96 | { |
97 | if( mIsSuspended ) | ||
98 | return; | ||
99 | |||
96 | LLMemType mt(LLMemType::MTYPE_PARTICLES); | 100 | LLMemType mt(LLMemType::MTYPE_PARTICLES); |
97 | F32 old_update_time = mLastUpdateTime; | 101 | F32 old_update_time = mLastUpdateTime; |
98 | mLastUpdateTime += dt; | 102 | mLastUpdateTime += dt; |
diff --git a/linden/indra/newview/llviewerpartsource.h b/linden/indra/newview/llviewerpartsource.h index 9d22e72..32e1475 100644 --- a/linden/indra/newview/llviewerpartsource.h +++ b/linden/indra/newview/llviewerpartsource.h | |||
@@ -61,9 +61,10 @@ public: | |||
61 | virtual void update(const F32 dt); // Return FALSE if this source is dead... | 61 | virtual void update(const F32 dt); // Return FALSE if this source is dead... |
62 | 62 | ||
63 | virtual void setDead(); | 63 | virtual void setDead(); |
64 | BOOL isDead() const { return mIsDead; } | 64 | BOOL isDead() const { return mIsDead; } |
65 | 65 | void setSuspended( BOOL state ) { mIsSuspended = state; } | |
66 | U32 getType() const { return mType; } | 66 | BOOL isSuspended() const { return mIsSuspended; } |
67 | U32 getType() const { return mType; } | ||
67 | static void updatePart(LLViewerPart &part, const F32 dt); | 68 | static void updatePart(LLViewerPart &part, const F32 dt); |
68 | void setOwnerUUID(const LLUUID& owner_id) { mOwnerUUID = owner_id; } | 69 | void setOwnerUUID(const LLUUID& owner_id) { mOwnerUUID = owner_id; } |
69 | LLUUID getOwnerUUID() const { return mOwnerUUID; } | 70 | LLUUID getOwnerUUID() const { return mOwnerUUID; } |
@@ -77,6 +78,7 @@ public: | |||
77 | protected: | 78 | protected: |
78 | U32 mType; | 79 | U32 mType; |
79 | BOOL mIsDead; | 80 | BOOL mIsDead; |
81 | BOOL mIsSuspended; | ||
80 | F32 mLastUpdateTime; | 82 | F32 mLastUpdateTime; |
81 | F32 mLastPartTime; | 83 | F32 mLastPartTime; |
82 | LLUUID mOwnerUUID; | 84 | LLUUID mOwnerUUID; |
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp index 6a8d53e..f6829d4 100644 --- a/linden/indra/newview/llviewertexteditor.cpp +++ b/linden/indra/newview/llviewertexteditor.cpp | |||
@@ -1425,7 +1425,8 @@ LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlF | |||
1425 | 1425 | ||
1426 | LLFontGL* font = LLView::selectFont(node); | 1426 | LLFontGL* font = LLView::selectFont(node); |
1427 | 1427 | ||
1428 | LLString text = node->getValue(); | 1428 | // LLString text = node->getValue(); |
1429 | LLString text = node->getTextContents().substr(0, max_text_length - 1); | ||
1429 | 1430 | ||
1430 | if (text.size() > max_text_length) | 1431 | if (text.size() > max_text_length) |
1431 | { | 1432 | { |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 0f5bffd..116df89 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -2400,13 +2400,13 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) | |||
2400 | case KEY_RIGHT: | 2400 | case KEY_RIGHT: |
2401 | case KEY_UP: | 2401 | case KEY_UP: |
2402 | // let CTRL UP through for chat line history | 2402 | // let CTRL UP through for chat line history |
2403 | if( MASK_CONTROL & mask ) | 2403 | if( MASK_CONTROL == mask ) |
2404 | { | 2404 | { |
2405 | break; | 2405 | break; |
2406 | } | 2406 | } |
2407 | case KEY_DOWN: | 2407 | case KEY_DOWN: |
2408 | // let CTRL DOWN through for chat line history | 2408 | // let CTRL DOWN through for chat line history |
2409 | if( MASK_CONTROL & mask ) | 2409 | if( MASK_CONTROL == mask ) |
2410 | { | 2410 | { |
2411 | break; | 2411 | break; |
2412 | } | 2412 | } |
@@ -3173,7 +3173,7 @@ void LLViewerWindow::renderSelections( BOOL for_gl_pick, BOOL pick_parcel_walls, | |||
3173 | BOOL moveable_object_selected = FALSE; | 3173 | BOOL moveable_object_selected = FALSE; |
3174 | BOOL all_selected_objects_move = TRUE; | 3174 | BOOL all_selected_objects_move = TRUE; |
3175 | BOOL all_selected_objects_modify = TRUE; | 3175 | BOOL all_selected_objects_modify = TRUE; |
3176 | BOOL selecting_linked_set = gSavedSettings.getBOOL("SelectLinkedSet"); | 3176 | BOOL selecting_linked_set = !gSavedSettings.getBOOL("EditLinkedParts"); |
3177 | for( object = gSelectMgr->getSelection()->getFirstObject(); object; object = gSelectMgr->getSelection()->getNextObject() ) | 3177 | for( object = gSelectMgr->getSelection()->getFirstObject(); object; object = gSelectMgr->getSelection()->getNextObject() ) |
3178 | { | 3178 | { |
3179 | BOOL this_object_movable = FALSE; | 3179 | BOOL this_object_movable = FALSE; |
@@ -3532,6 +3532,18 @@ void LLViewerWindow::performPick() | |||
3532 | objectp = gObjectList.getSelectedObject(name); | 3532 | objectp = gObjectList.getSelectedObject(name); |
3533 | if (objectp) | 3533 | if (objectp) |
3534 | { | 3534 | { |
3535 | LLViewerObject* parent = (LLViewerObject*)(objectp->getParent()); | ||
3536 | if (NULL == parent) { | ||
3537 | // if you are the parent | ||
3538 | parent = objectp; | ||
3539 | } | ||
3540 | std::vector<LLPointer<LLViewerObject>,std::allocator<LLPointer<LLViewerObject> > > children = parent->getChildren(); | ||
3541 | for( std::vector<LLPointer<LLViewerObject>,std::allocator<LLPointer<LLViewerObject> > >::iterator i= children.begin(); i!= children.end(); ++i ) | ||
3542 | { | ||
3543 | //go through | ||
3544 | LLViewerObject* foo = *i; | ||
3545 | foo->getRotation(); | ||
3546 | } | ||
3535 | if (objectp->mbCanSelect) | 3547 | if (objectp->mbCanSelect) |
3536 | { | 3548 | { |
3537 | te_offset = (te_offset == 16) ? NO_FACE : te_offset; | 3549 | te_offset = (te_offset == 16) ? NO_FACE : te_offset; |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 4de4e36..a375d84 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -5739,6 +5739,7 @@ void LLVOAvatar::requestLayerSetUpdate( LLVOAvatar::ELocTexIndex i ) | |||
5739 | break; | 5739 | break; |
5740 | 5740 | ||
5741 | 5741 | ||
5742 | case LOCTEX_UPPER_JACKET: | ||
5742 | case LOCTEX_LOWER_JACKET: | 5743 | case LOCTEX_LOWER_JACKET: |
5743 | if( mUpperBodyLayerSet ) | 5744 | if( mUpperBodyLayerSet ) |
5744 | { | 5745 | { |
@@ -5750,6 +5751,10 @@ void LLVOAvatar::requestLayerSetUpdate( LLVOAvatar::ELocTexIndex i ) | |||
5750 | mLowerBodyLayerSet->requestUpdate(); | 5751 | mLowerBodyLayerSet->requestUpdate(); |
5751 | } | 5752 | } |
5752 | break; | 5753 | break; |
5754 | |||
5755 | case LOCTEX_NUM_ENTRIES: | ||
5756 | llerrs << "Bogus texture value " << i << llendl; | ||
5757 | break; | ||
5753 | } | 5758 | } |
5754 | 5759 | ||
5755 | } | 5760 | } |
@@ -7409,6 +7414,24 @@ void LLVOAvatar::setCachedBakedTexture( ETextureIndex te, const LLUUID& uuid ) | |||
7409 | mSkirtLayerSet->cancelUpload(); | 7414 | mSkirtLayerSet->cancelUpload(); |
7410 | } | 7415 | } |
7411 | break; | 7416 | break; |
7417 | |||
7418 | case TEX_HEAD_BODYPAINT: | ||
7419 | case TEX_UPPER_SHIRT: | ||
7420 | case TEX_LOWER_PANTS: | ||
7421 | case TEX_EYES_IRIS: | ||
7422 | case TEX_HAIR: | ||
7423 | case TEX_UPPER_BODYPAINT: | ||
7424 | case TEX_LOWER_BODYPAINT: | ||
7425 | case TEX_LOWER_SHOES: | ||
7426 | case TEX_LOWER_SOCKS: | ||
7427 | case TEX_UPPER_JACKET: | ||
7428 | case TEX_LOWER_JACKET: | ||
7429 | case TEX_UPPER_GLOVES: | ||
7430 | case TEX_UPPER_UNDERSHIRT: | ||
7431 | case TEX_LOWER_UNDERPANTS: | ||
7432 | case TEX_SKIRT: | ||
7433 | case TEX_NUM_ENTRIES: | ||
7434 | break; | ||
7412 | } | 7435 | } |
7413 | } | 7436 | } |
7414 | 7437 | ||
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 2a2c0f0..427293a 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -256,8 +256,7 @@ public: | |||
256 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | | 256 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | |
257 | (1 << LLVertexBuffer::TYPE_WEIGHT) | | 257 | (1 << LLVertexBuffer::TYPE_WEIGHT) | |
258 | (1 << LLVertexBuffer::TYPE_CLOTHWEIGHT) | 258 | (1 << LLVertexBuffer::TYPE_CLOTHWEIGHT) |
259 | } | 259 | }; |
260 | eVertexDataMask; | ||
261 | 260 | ||
262 | LLVOAvatar(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 261 | LLVOAvatar(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
263 | /*virtual*/ void markDead(); | 262 | /*virtual*/ void markDead(); |
diff --git a/linden/indra/newview/llvoinventorylistener.cpp b/linden/indra/newview/llvoinventorylistener.cpp index 739cd0b..1a50682 100644 --- a/linden/indra/newview/llvoinventorylistener.cpp +++ b/linden/indra/newview/llvoinventorylistener.cpp | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | void LLVOInventoryListener::removeVOInventoryListener() | 34 | void LLVOInventoryListener::removeVOInventoryListener() |
35 | { | 35 | { |
36 | if (mListenerVObject != NULL) | 36 | if (mListenerVObject) |
37 | { | 37 | { |
38 | mListenerVObject->removeInventoryListener(this); | 38 | mListenerVObject->removeInventoryListener(this); |
39 | mListenerVObject = NULL; | 39 | mListenerVObject = NULL; |
@@ -52,7 +52,7 @@ void LLVOInventoryListener::registerVOInventoryListener(LLViewerObject* object, | |||
52 | 52 | ||
53 | void LLVOInventoryListener::requestVOInventory() | 53 | void LLVOInventoryListener::requestVOInventory() |
54 | { | 54 | { |
55 | if (mListenerVObject != NULL) | 55 | if (mListenerVObject) |
56 | { | 56 | { |
57 | mListenerVObject->requestInventory(); | 57 | mListenerVObject->requestInventory(); |
58 | } | 58 | } |
diff --git a/linden/indra/newview/llvoinventorylistener.h b/linden/indra/newview/llvoinventorylistener.h index 4cb90a6..022713e 100644 --- a/linden/indra/newview/llvoinventorylistener.h +++ b/linden/indra/newview/llvoinventorylistener.h | |||
@@ -56,7 +56,7 @@ protected: | |||
56 | void requestVOInventory(); | 56 | void requestVOInventory(); |
57 | 57 | ||
58 | private: | 58 | private: |
59 | LLViewerObject* mListenerVObject; | 59 | LLPointer<LLViewerObject> mListenerVObject; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | #endif | 62 | #endif |
diff --git a/linden/indra/newview/llvopartgroup.cpp b/linden/indra/newview/llvopartgroup.cpp index fbf753a..94027a3 100644 --- a/linden/indra/newview/llvopartgroup.cpp +++ b/linden/indra/newview/llvopartgroup.cpp | |||
@@ -421,7 +421,7 @@ void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_co | |||
421 | continue; | 421 | continue; |
422 | } | 422 | } |
423 | 423 | ||
424 | LLAlphaObject* obj = (LLAlphaObject*) drawablep->getVObj(); | 424 | LLAlphaObject* obj = (LLAlphaObject*) drawablep->getVObj().get(); |
425 | obj->mDepth = 0.f; | 425 | obj->mDepth = 0.f; |
426 | 426 | ||
427 | if (drawablep->isAnimating()) | 427 | if (drawablep->isAnimating()) |
diff --git a/linden/indra/newview/llvopartgroup.h b/linden/indra/newview/llvopartgroup.h index f3e10c5..f301a48 100644 --- a/linden/indra/newview/llvopartgroup.h +++ b/linden/indra/newview/llvopartgroup.h | |||
@@ -39,14 +39,13 @@ class LLViewerPartGroup; | |||
39 | class LLVOPartGroup : public LLAlphaObject | 39 | class LLVOPartGroup : public LLAlphaObject |
40 | { | 40 | { |
41 | public: | 41 | public: |
42 | enum | 42 | enum |
43 | { | 43 | { |
44 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | | 44 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | |
45 | (1 << LLVertexBuffer::TYPE_NORMAL) | | 45 | (1 << LLVertexBuffer::TYPE_NORMAL) | |
46 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | | 46 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | |
47 | (1 << LLVertexBuffer::TYPE_COLOR) | 47 | (1 << LLVertexBuffer::TYPE_COLOR) |
48 | } | 48 | }; |
49 | eVertexDataMask; | ||
50 | 49 | ||
51 | LLVOPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 50 | LLVOPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
52 | 51 | ||
diff --git a/linden/indra/newview/llvosurfacepatch.h b/linden/indra/newview/llvosurfacepatch.h index a21763d..e6a6f44 100644 --- a/linden/indra/newview/llvosurfacepatch.h +++ b/linden/indra/newview/llvosurfacepatch.h | |||
@@ -39,15 +39,14 @@ class LLVector2; | |||
39 | class LLVOSurfacePatch : public LLStaticViewerObject | 39 | class LLVOSurfacePatch : public LLStaticViewerObject |
40 | { | 40 | { |
41 | public: | 41 | public: |
42 | enum | 42 | enum |
43 | { | 43 | { |
44 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | | 44 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | |
45 | (1 << LLVertexBuffer::TYPE_NORMAL) | | 45 | (1 << LLVertexBuffer::TYPE_NORMAL) | |
46 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | | 46 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | |
47 | (1 << LLVertexBuffer::TYPE_TEXCOORD2) | | 47 | (1 << LLVertexBuffer::TYPE_TEXCOORD2) | |
48 | (1 << LLVertexBuffer::TYPE_COLOR) | 48 | (1 << LLVertexBuffer::TYPE_COLOR) |
49 | } | 49 | }; |
50 | eVertexDataMask; | ||
51 | 50 | ||
52 | LLVOSurfacePatch(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 51 | LLVOSurfacePatch(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
53 | 52 | ||
diff --git a/linden/indra/newview/llvotree.h b/linden/indra/newview/llvotree.h index 4ec148d..6de7c0d 100644 --- a/linden/indra/newview/llvotree.h +++ b/linden/indra/newview/llvotree.h | |||
@@ -43,13 +43,12 @@ protected: | |||
43 | ~LLVOTree(); | 43 | ~LLVOTree(); |
44 | 44 | ||
45 | public: | 45 | public: |
46 | enum | 46 | enum |
47 | { | 47 | { |
48 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | | 48 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | |
49 | (1 << LLVertexBuffer::TYPE_NORMAL) | | 49 | (1 << LLVertexBuffer::TYPE_NORMAL) | |
50 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | 50 | (1 << LLVertexBuffer::TYPE_TEXCOORD) |
51 | } | 51 | }; |
52 | eVertexDataMask; | ||
53 | 52 | ||
54 | LLVOTree(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 53 | LLVOTree(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
55 | 54 | ||
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index b9bdddc..ccf0cba 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp | |||
@@ -66,6 +66,7 @@ | |||
66 | const S32 MIN_QUIET_FRAMES_COALESCE = 30; | 66 | const S32 MIN_QUIET_FRAMES_COALESCE = 30; |
67 | const F32 FORCE_SIMPLE_RENDER_AREA = 512.f; | 67 | const F32 FORCE_SIMPLE_RENDER_AREA = 512.f; |
68 | const F32 FORCE_CULL_AREA = 8.f; | 68 | const F32 FORCE_CULL_AREA = 8.f; |
69 | const S32 SCULPT_REZ = 128; | ||
69 | 70 | ||
70 | BOOL gAnimateTextures = TRUE; | 71 | BOOL gAnimateTextures = TRUE; |
71 | extern BOOL gHideSelectedObjects; | 72 | extern BOOL gHideSelectedObjects; |
@@ -272,9 +273,9 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys, | |||
272 | void LLVOVolume::animateTextures() | 273 | void LLVOVolume::animateTextures() |
273 | { | 274 | { |
274 | F32 off_s = 0.f, off_t = 0.f, scale_s = 1.f, scale_t = 1.f, rot = 0.f; | 275 | F32 off_s = 0.f, off_t = 0.f, scale_s = 1.f, scale_t = 1.f, rot = 0.f; |
275 | S32 result; | 276 | S32 result = mTextureAnimp->animateTextures(off_s, off_t, scale_s, scale_t, rot); |
276 | 277 | ||
277 | if (result = mTextureAnimp->animateTextures(off_s, off_t, scale_s, scale_t, rot)) | 278 | if (result) |
278 | { | 279 | { |
279 | if (!mTexAnimMode) | 280 | if (!mTexAnimMode) |
280 | { | 281 | { |
@@ -484,10 +485,11 @@ void LLVOVolume::updateTextures() | |||
484 | mSculptTexture = gImageList.getImage(id); | 485 | mSculptTexture = gImageList.getImage(id); |
485 | if (mSculptTexture.notNull()) | 486 | if (mSculptTexture.notNull()) |
486 | { | 487 | { |
487 | mSculptTexture->addTextureStats(mPixelArea); | 488 | mSculptTexture->addTextureStats(SCULPT_REZ * SCULPT_REZ); |
489 | mSculptTexture->setBoostLevel(LLViewerImage::BOOST_SCULPTED); | ||
488 | } | 490 | } |
489 | 491 | ||
490 | S32 desired_discard = MAX_LOD - mLOD; | 492 | S32 desired_discard = 0; // lower discard levels have MUCH less resolution - (old=MAX_LOD - mLOD) |
491 | S32 current_discard = getVolume()->getSculptLevel(); | 493 | S32 current_discard = getVolume()->getSculptLevel(); |
492 | 494 | ||
493 | if (desired_discard != current_discard) | 495 | if (desired_discard != current_discard) |
@@ -701,7 +703,7 @@ void LLVOVolume::sculpt() | |||
701 | if (mSculptTexture.notNull()) | 703 | if (mSculptTexture.notNull()) |
702 | { | 704 | { |
703 | S32 discard_level; | 705 | S32 discard_level; |
704 | S32 desired_discard = MAX_LOD - mLOD; // desired | 706 | S32 desired_discard = 0; // lower discard levels have MUCH less resolution |
705 | 707 | ||
706 | discard_level = desired_discard; | 708 | discard_level = desired_discard; |
707 | 709 | ||
@@ -2210,7 +2212,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) | |||
2210 | { | 2212 | { |
2211 | LLDrawable* drawablep = *drawable_iter; | 2213 | LLDrawable* drawablep = *drawable_iter; |
2212 | 2214 | ||
2213 | if (drawablep->isDead()) | 2215 | if (drawablep->isDead() || drawablep->isState(LLDrawable::FORCE_INVISIBLE) ) |
2214 | { | 2216 | { |
2215 | continue; | 2217 | continue; |
2216 | } | 2218 | } |
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index f5dfeb0..5881c04 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h | |||
@@ -83,8 +83,7 @@ public: | |||
83 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | | 83 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | |
84 | (1 << LLVertexBuffer::TYPE_TEXCOORD2) | | 84 | (1 << LLVertexBuffer::TYPE_TEXCOORD2) | |
85 | (1 << LLVertexBuffer::TYPE_COLOR) | 85 | (1 << LLVertexBuffer::TYPE_COLOR) |
86 | } | 86 | }; |
87 | eVertexDataMask; | ||
88 | 87 | ||
89 | public: | 88 | public: |
90 | LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 89 | LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
diff --git a/linden/indra/newview/llvowater.h b/linden/indra/newview/llvowater.h index 8ed795c..0bb0c46 100644 --- a/linden/indra/newview/llvowater.h +++ b/linden/indra/newview/llvowater.h | |||
@@ -52,8 +52,7 @@ public: | |||
52 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | | 52 | VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) | |
53 | (1 << LLVertexBuffer::TYPE_NORMAL) | | 53 | (1 << LLVertexBuffer::TYPE_NORMAL) | |
54 | (1 << LLVertexBuffer::TYPE_TEXCOORD) | 54 | (1 << LLVertexBuffer::TYPE_TEXCOORD) |
55 | } | 55 | }; |
56 | eVertexDataMask; | ||
57 | 56 | ||
58 | LLVOWater(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 57 | LLVOWater(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
59 | 58 | ||
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h index 7097036..785f28b 100644 --- a/linden/indra/newview/llwebbrowserctrl.h +++ b/linden/indra/newview/llwebbrowserctrl.h | |||
@@ -154,6 +154,8 @@ class LLWebBrowserCtrlEventEmitter | |||
154 | ObserverContainer observers; | 154 | ObserverContainer observers; |
155 | }; | 155 | }; |
156 | 156 | ||
157 | class LLUICtrlFactory; | ||
158 | |||
157 | //////////////////////////////////////////////////////////////////////////////// | 159 | //////////////////////////////////////////////////////////////////////////////// |
158 | // | 160 | // |
159 | class LLWebBrowserCtrl : | 161 | class LLWebBrowserCtrl : |
@@ -249,7 +251,7 @@ class LLWebBrowserCtrl : | |||
249 | class LLWebBrowserTexture : public LLDynamicTexture | 251 | class LLWebBrowserTexture : public LLDynamicTexture |
250 | { | 252 | { |
251 | public: | 253 | public: |
252 | LLWebBrowserTexture::LLWebBrowserTexture( S32 width, S32 height, LLWebBrowserCtrl* browserCtrl, int browserWindow ); | 254 | LLWebBrowserTexture( S32 width, S32 height, LLWebBrowserCtrl* browserCtrl, int browserWindow ); |
253 | virtual ~LLWebBrowserTexture(); | 255 | virtual ~LLWebBrowserTexture(); |
254 | 256 | ||
255 | virtual void preRender( BOOL clear_depth = TRUE ) {}; | 257 | virtual void preRender( BOOL clear_depth = TRUE ) {}; |
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp index 9c71ee4..7696431 100644 --- a/linden/indra/newview/llworld.cpp +++ b/linden/indra/newview/llworld.cpp | |||
@@ -501,6 +501,8 @@ F32 LLWorld::resolveStepHeightGlobal(const LLVOAvatar* avatarp, const LLVector3d | |||
501 | 501 | ||
502 | land_intersection.mdV[VZ] = regionp->getLand().resolveHeightGlobal(point_a); | 502 | land_intersection.mdV[VZ] = regionp->getLand().resolveHeightGlobal(point_a); |
503 | normalized_land_distance = (F32)(point_a.mdV[VZ] - land_intersection.mdV[VZ]) / segment_length; | 503 | normalized_land_distance = (F32)(point_a.mdV[VZ] - land_intersection.mdV[VZ]) / segment_length; |
504 | intersection = land_intersection; | ||
505 | intersection_normal = resolveLandNormalGlobal(land_intersection); | ||
504 | 506 | ||
505 | if (avatarp && !avatarp->mFootPlane.isExactlyClear()) | 507 | if (avatarp && !avatarp->mFootPlane.isExactlyClear()) |
506 | { | 508 | { |
@@ -511,17 +513,13 @@ F32 LLWorld::resolveStepHeightGlobal(const LLVOAvatar* avatarp, const LLVector3d | |||
511 | norm_dist_from_plane = llclamp(norm_dist_from_plane / segment_length, 0.f, 1.f); | 513 | norm_dist_from_plane = llclamp(norm_dist_from_plane / segment_length, 0.f, 1.f); |
512 | if (norm_dist_from_plane < normalized_land_distance) | 514 | if (norm_dist_from_plane < normalized_land_distance) |
513 | { | 515 | { |
516 | // collided with object before land | ||
514 | normalized_land_distance = norm_dist_from_plane; | 517 | normalized_land_distance = norm_dist_from_plane; |
515 | intersection = point_a; | 518 | intersection = point_a; |
516 | intersection.mdV[VZ] -= norm_dist_from_plane * segment_length; | 519 | intersection.mdV[VZ] -= norm_dist_from_plane * segment_length; |
517 | intersection_normal = foot_plane_normal; | 520 | intersection_normal = foot_plane_normal; |
518 | } | 521 | } |
519 | } | 522 | } |
520 | else | ||
521 | { | ||
522 | intersection = land_intersection; | ||
523 | intersection_normal = resolveLandNormalGlobal(land_intersection); | ||
524 | } | ||
525 | 523 | ||
526 | return normalized_land_distance; | 524 | return normalized_land_distance; |
527 | } | 525 | } |
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp index 896508c..887b69d 100644 --- a/linden/indra/newview/llxmlrpctransaction.cpp +++ b/linden/indra/newview/llxmlrpctransaction.cpp | |||
@@ -228,22 +228,22 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip) | |||
228 | 228 | ||
229 | // tell curl about the settings | 229 | // tell curl about the settings |
230 | curl_easy_setopt(mCurl, CURLOPT_PROXY, mProxyAddress.c_str()); | 230 | curl_easy_setopt(mCurl, CURLOPT_PROXY, mProxyAddress.c_str()); |
231 | curl_easy_setopt(mCurl, CURLOPT_PROXYPORT, (long)port); | 231 | curl_easy_setopt(mCurl, CURLOPT_PROXYPORT, (long) port); |
232 | curl_easy_setopt(mCurl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); | 232 | curl_easy_setopt(mCurl, CURLOPT_PROXYTYPE, (long) CURLPROXY_HTTP); |
233 | }; | 233 | }; |
234 | 234 | ||
235 | // curl_easy_setopt(mCurl, CURLOPT_VERBOSE, 1); // usefull for debugging | 235 | // curl_easy_setopt(mCurl, CURLOPT_VERBOSE, 1L); // usefull for debugging |
236 | curl_easy_setopt(mCurl, CURLOPT_NOSIGNAL, 1); | 236 | curl_easy_setopt(mCurl, CURLOPT_NOSIGNAL, 1L); |
237 | curl_easy_setopt(mCurl, CURLOPT_WRITEFUNCTION, &curlDownloadCallback); | 237 | curl_easy_setopt(mCurl, CURLOPT_WRITEFUNCTION, &curlDownloadCallback); |
238 | curl_easy_setopt(mCurl, CURLOPT_WRITEDATA, this); | 238 | curl_easy_setopt(mCurl, CURLOPT_WRITEDATA, this); |
239 | curl_easy_setopt(mCurl, CURLOPT_ERRORBUFFER, &mCurlErrorBuffer); | 239 | curl_easy_setopt(mCurl, CURLOPT_ERRORBUFFER, &mCurlErrorBuffer); |
240 | curl_easy_setopt(mCurl, CURLOPT_CAINFO, gDirUtilp->getCAFile().c_str()); | 240 | curl_easy_setopt(mCurl, CURLOPT_CAINFO, gDirUtilp->getCAFile().c_str()); |
241 | curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYPEER, gVerifySSLCert); | 241 | curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYPEER, (long) gVerifySSLCert); |
242 | curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYHOST, gVerifySSLCert? 2 : 0); | 242 | curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYHOST, gVerifySSLCert? 2L : 0L); |
243 | 243 | ||
244 | /* Setting the DNS cache timeout to -1 disables it completely. | 244 | /* Setting the DNS cache timeout to -1 disables it completely. |
245 | This might help with bug #503 */ | 245 | This might help with bug #503 */ |
246 | curl_easy_setopt(mCurl, CURLOPT_DNS_CACHE_TIMEOUT, -1); | 246 | curl_easy_setopt(mCurl, CURLOPT_DNS_CACHE_TIMEOUT, -1L); |
247 | 247 | ||
248 | mHeaders = curl_slist_append(mHeaders, "Content-Type: text/xml"); | 248 | mHeaders = curl_slist_append(mHeaders, "Content-Type: text/xml"); |
249 | curl_easy_setopt(mCurl, CURLOPT_URL, mURI.c_str()); | 249 | curl_easy_setopt(mCurl, CURLOPT_URL, mURI.c_str()); |
@@ -257,7 +257,7 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip) | |||
257 | if (mRequestText) | 257 | if (mRequestText) |
258 | { | 258 | { |
259 | curl_easy_setopt(mCurl, CURLOPT_POSTFIELDS, mRequestText); | 259 | curl_easy_setopt(mCurl, CURLOPT_POSTFIELDS, mRequestText); |
260 | curl_easy_setopt(mCurl, CURLOPT_POSTFIELDSIZE, mRequestTextSize); | 260 | curl_easy_setopt(mCurl, CURLOPT_POSTFIELDSIZE, (long) mRequestTextSize); |
261 | } | 261 | } |
262 | else | 262 | else |
263 | { | 263 | { |
diff --git a/linden/indra/newview/macview.xcodeproj/project.pbxproj b/linden/indra/newview/macview.xcodeproj/project.pbxproj index 8bc52b1..02be1d5 100644 --- a/linden/indra/newview/macview.xcodeproj/project.pbxproj +++ b/linden/indra/newview/macview.xcodeproj/project.pbxproj | |||
@@ -429,6 +429,11 @@ | |||
429 | 61923D70074AE3C0005E1F34 /* llvisualparam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61923D29074AE3C0005E1F34 /* llvisualparam.cpp */; }; | 429 | 61923D70074AE3C0005E1F34 /* llvisualparam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61923D29074AE3C0005E1F34 /* llvisualparam.cpp */; }; |
430 | 84401E2F0A13CC9A006720A5 /* llfloatergroupinvite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84401E2D0A13CC9A006720A5 /* llfloatergroupinvite.cpp */; }; | 430 | 84401E2F0A13CC9A006720A5 /* llfloatergroupinvite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84401E2D0A13CC9A006720A5 /* llfloatergroupinvite.cpp */; }; |
431 | 84401E320A13CCB2006720A5 /* llpanelgroupinvite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */; }; | 431 | 84401E320A13CCB2006720A5 /* llpanelgroupinvite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */; }; |
432 | 8833693F0C18AF33007F52DA /* llimagepng.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8833693B0C18AF33007F52DA /* llimagepng.cpp */; }; | ||
433 | 883369400C18AF33007F52DA /* llpngwrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8833693C0C18AF33007F52DA /* llpngwrapper.cpp */; }; | ||
434 | 88A95BB20C14D5FC0027E363 /* llsrv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 88A95BB10C14D5FC0027E363 /* llsrv.cpp */; }; | ||
435 | 88A95BCA0C14D92C0027E363 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 88A95BC90C14D92C0027E363 /* libresolv.dylib */; }; | ||
436 | 88AA282C0C17720D0032DF53 /* libpng12.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88AA282B0C17720D0032DF53 /* libpng12.a */; }; | ||
432 | 9104C0CC0778AE0F001EC4F6 /* llpanelmsgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */; }; | 437 | 9104C0CC0778AE0F001EC4F6 /* llpanelmsgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */; }; |
433 | 910D255306484F1A0034E66F /* llvolumesliderctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 910D255206484F1A0034E66F /* llvolumesliderctrl.cpp */; }; | 438 | 910D255306484F1A0034E66F /* llvolumesliderctrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 910D255206484F1A0034E66F /* llvolumesliderctrl.cpp */; }; |
434 | 9118669B07F4FAF700E3D5BC /* llmediaremotectrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9118669907F4FAF700E3D5BC /* llmediaremotectrl.cpp */; }; | 439 | 9118669B07F4FAF700E3D5BC /* llmediaremotectrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9118669907F4FAF700E3D5BC /* llmediaremotectrl.cpp */; }; |
@@ -1487,6 +1492,13 @@ | |||
1487 | 84401E2E0A13CC9A006720A5 /* llfloatergroupinvite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloatergroupinvite.h; sourceTree = "<group>"; }; | 1492 | 84401E2E0A13CC9A006720A5 /* llfloatergroupinvite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloatergroupinvite.h; sourceTree = "<group>"; }; |
1488 | 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpanelgroupinvite.cpp; sourceTree = "<group>"; }; | 1493 | 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpanelgroupinvite.cpp; sourceTree = "<group>"; }; |
1489 | 84401E310A13CCB2006720A5 /* llpanelgroupinvite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpanelgroupinvite.h; sourceTree = "<group>"; }; | 1494 | 84401E310A13CCB2006720A5 /* llpanelgroupinvite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpanelgroupinvite.h; sourceTree = "<group>"; }; |
1495 | 8833693B0C18AF33007F52DA /* llimagepng.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llimagepng.cpp; sourceTree = "<group>"; }; | ||
1496 | 8833693C0C18AF33007F52DA /* llpngwrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpngwrapper.cpp; sourceTree = "<group>"; }; | ||
1497 | 8833693D0C18AF33007F52DA /* llpngwrapper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpngwrapper.h; sourceTree = "<group>"; }; | ||
1498 | 8833693E0C18AF33007F52DA /* llimagepng.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llimagepng.h; sourceTree = "<group>"; }; | ||
1499 | 88A95BB10C14D5FC0027E363 /* llsrv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsrv.cpp; sourceTree = SOURCE_ROOT; }; | ||
1500 | 88A95BC90C14D92C0027E363 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = /usr/lib/libresolv.dylib; sourceTree = "<absolute>"; }; | ||
1501 | 88AA282B0C17720D0032DF53 /* libpng12.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libpng12.a; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
1490 | 8B2ECF9E0534C17A00A80059 /* llfirstuse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfirstuse.h; sourceTree = "<group>"; }; | 1502 | 8B2ECF9E0534C17A00A80059 /* llfirstuse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfirstuse.h; sourceTree = "<group>"; }; |
1491 | 8B2ECFA00534C21A00A80059 /* llfirstuse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfirstuse.cpp; sourceTree = "<group>"; }; | 1503 | 8B2ECFA00534C21A00A80059 /* llfirstuse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfirstuse.cpp; sourceTree = "<group>"; }; |
1492 | 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpanelmsgs.cpp; sourceTree = "<group>"; }; | 1504 | 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpanelmsgs.cpp; sourceTree = "<group>"; }; |
@@ -2195,6 +2207,8 @@ | |||
2195 | 99F998FB0BAA34B90034E41C /* libopenjpeg.a in Frameworks */, | 2207 | 99F998FB0BAA34B90034E41C /* libopenjpeg.a in Frameworks */, |
2196 | 99F99A160BAA3D4C0034E41C /* AGL.framework in Frameworks */, | 2208 | 99F99A160BAA3D4C0034E41C /* AGL.framework in Frameworks */, |
2197 | 99F99A190BAA3D520034E41C /* OpenGL.framework in Frameworks */, | 2209 | 99F99A190BAA3D520034E41C /* OpenGL.framework in Frameworks */, |
2210 | 88A95BCA0C14D92C0027E363 /* libresolv.dylib in Frameworks */, | ||
2211 | 88AA282C0C17720D0032DF53 /* libpng12.a in Frameworks */, | ||
2198 | ); | 2212 | ); |
2199 | runOnlyForDeploymentPostprocessing = 0; | 2213 | runOnlyForDeploymentPostprocessing = 0; |
2200 | }; | 2214 | }; |
@@ -2338,230 +2352,156 @@ | |||
2338 | 26F529A0051F61CD00A80050 /* newview */ = { | 2352 | 26F529A0051F61CD00A80050 /* newview */ = { |
2339 | isa = PBXGroup; | 2353 | isa = PBXGroup; |
2340 | children = ( | 2354 | children = ( |
2341 | 1A83767C0BA2169600F28979 /* llviewergenericmessage.h */, | ||
2342 | 1A83767D0BA2169600F28979 /* llviewergenericmessage.cpp */, | ||
2343 | 9C18425A0B9F951500208356 /* llcaphttpsender.cpp */, | ||
2344 | 1A8870E30BCC5A9500E89AA6 /* llviewermenufile.h */, | ||
2345 | 1A8870E40BCC5A9500E89AA6 /* llviewermenufile.cpp */, | ||
2346 | A3C20E4B0BB0BD12007E872B /* llviewerjoystick.cpp */, | ||
2347 | A3C20E490BB0BCDF007E872B /* llglslshader.cpp */, | ||
2348 | AAF5FFD00B13F71900D28A84 /* lltexturecache.cpp */, | ||
2349 | AAF5FFD10B13F71900D28A84 /* lltexturecache.h */, | ||
2350 | AA02B9BA0B0CE44D00F2996D /* lltexturefetch.cpp */, | ||
2351 | AA02B9BB0B0CE44D00F2996D /* lltexturefetch.h */, | ||
2352 | C16C084E0B4AE6C7009AD67F /* llfloaterinspect.cpp */, | ||
2353 | C16C084F0B4AE6C7009AD67F /* llfloaterinspect.h */, | ||
2354 | C64F67400AFBED91009732B5 /* lldirpicker.cpp */, | ||
2355 | C64F67410AFBED91009732B5 /* lldirpicker.h */, | ||
2356 | C64F673D0AFBED80009732B5 /* lllogchat.cpp */, | ||
2357 | C64F673E0AFBED80009732B5 /* lllogchat.h */, | ||
2358 | 1AF7C1E30AF6C44800C4BF4A /* llweb.cpp */, | ||
2359 | FDCB55270AFBD4310033B433 /* lleventpoll.cpp */, | ||
2360 | FDCB55280AFBD4310033B433 /* lleventpoll.h */, | ||
2361 | FD59ED5D0AF2AF460086642A /* llassetuploadresponders.cpp */, | ||
2362 | FD59ED5E0AF2AF460086642A /* llassetuploadresponders.h */, | ||
2363 | 1A5104580ABF60BF00520F6D /* llviewerassetstorage.h */, | ||
2364 | 1A5104560ABF60A800520F6D /* llviewerassetstorage.cpp */, | ||
2365 | 1AF9CA460AE972DA003EFF2D /* llfloateravatartextures.cpp */, | ||
2366 | 1AD61F6A0AC09B1900507FB9 /* llimview.cpp */, | ||
2367 | A3285A3A0A71425100F619A5 /* llinventoryactions.cpp */, | ||
2368 | A3285A340A71419F00F619A5 /* llinventorybridge.cpp */, | ||
2369 | 1A5B3B540A70147000A90391 /* llfloaterbump.cpp */, | ||
2370 | 1A61A7EF0A5ED446009FE3D2 /* llfloateravatarpicker.cpp */, | ||
2371 | A3D968F00A6EBCA7007E8BD2 /* llfloaternewim.cpp */, | ||
2372 | A3AF6BCE0A544EF0005B5E2C /* llpanellogin.cpp */, | ||
2373 | 1A758C950A436FDE00589675 /* llpanellandoptions.cpp */, | ||
2374 | 1A758C930A436FD800589675 /* llpanellandobjects.cpp */, | ||
2375 | 1A758C910A436FCA00589675 /* llagentdata.cpp */, | ||
2376 | AAC121A30A93A8380080E8A9 /* llfloatersellland.cpp */, | ||
2377 | AAC121A40A93A8380080E8A9 /* llfloatersellland.h */, | ||
2378 | 9C1853AD0A91175E00DA7B01 /* llviewercontrol.cpp */, | ||
2379 | AA0E2A620A2FDB340066250A /* lltoolpipette.cpp */, | ||
2380 | AA0E2A630A2FDB340066250A /* lltoolpipette.h */, | ||
2381 | 1AFA40B40A2DFD7200C13F70 /* llsavedsettingsglue.cpp */, | ||
2382 | 1A8BF3780A1AAB99005B9D5A /* llfloatertest.cpp */, | ||
2383 | 1A3143E00A02B73D005B87E7 /* llprefschat.cpp */, | ||
2384 | 1A3143DE0A02B737005B87E7 /* llprefsim.cpp */, | ||
2385 | 1A3143D00A02B701005B87E7 /* llviewernetwork.cpp */, | ||
2386 | FD870C4F09EAC19700F5956C /* lldrawpoolclouds.h */, | ||
2387 | A3077BFB09DCB8140059ED75 /* lldrawpoolstars.cpp */, | ||
2388 | A3077BFC09DCB8140059ED75 /* lldrawpoolstars.h */, | ||
2389 | A3077BFF09DCB8140059ED75 /* llfloaterhtmlhelp.cpp */, | ||
2390 | A3077C0009DCB8140059ED75 /* llfloaterhtmlhelp.h */, | ||
2391 | 99C6BFA80A1BBD4800419AE7 /* llfloaterhtmlfind.h */, | ||
2392 | 99C6BFA90A1BBD4800419AE7 /* llfloaterhtmlfind.cpp */, | ||
2393 | A3077C0309DCB8140059ED75 /* llpanelvolume.cpp */, | ||
2394 | A3077C0409DCB8140059ED75 /* llpanelvolume.h */, | ||
2395 | A3077C0509DCB8140059ED75 /* llvostars.cpp */, | ||
2396 | A3077C0609DCB8140059ED75 /* llvostars.h */, | ||
2397 | 9CD49D5909D0BB1500192434 /* lllocalanimationobject.cpp */, | ||
2398 | 9CD49D5A09D0BB1500192434 /* lllocalanimationobject.h */, | ||
2399 | 9CD49D5809D0BAD600192434 /* llflexibleobject.h */, | ||
2400 | 9CD49D5609D0BAC100192434 /* llflexibleobject.cpp */, | ||
2401 | 84401E2D0A13CC9A006720A5 /* llfloatergroupinvite.cpp */, | ||
2402 | FD6C9A4209C75B8900AA1849 /* llfloatertopobjects.cpp */, | ||
2403 | 2EFEA8E809F4556F00CB0193 /* llgroupnotify.cpp */, | ||
2404 | 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */, | ||
2405 | 2EA4CEEC09F83AC2008F60F7 /* llpanelgrouproles.cpp */, | ||
2406 | 2EA4CEED09F83BE8008F60F7 /* llpanelgrouplandmoney.cpp */, | ||
2407 | FD6C9A4309C75B8900AA1849 /* llfloatertopobjects.h */, | ||
2408 | FD6C9A3409C75A8500AA1849 /* llfloaterpermissionsmgr.cpp */, | ||
2409 | 2E6FE90D09FD560A00AF02FF /* llpanelgroupnotices.cpp */, | ||
2410 | FD6C9A3509C75A8500AA1849 /* llfloaterpermissionsmgr.h */, | ||
2411 | FD6C9A2109C758BC00AA1849 /* llfloaterscriptdebug.cpp */, | ||
2412 | FD6C9A2209C758BC00AA1849 /* llfloaterscriptdebug.h */, | ||
2413 | FD6C9A2309C758BC00AA1849 /* llfloatertelehub.cpp */, | ||
2414 | 2EFEA8F009F4588B00CB0193 /* llpanelgroupgeneral.cpp */, | ||
2415 | FD6C9A2409C758BC00AA1849 /* llfloatertelehub.h */, | ||
2416 | FD6C9A2509C758BC00AA1849 /* llfollowcam.cpp */, | ||
2417 | FD6C9A2609C758BC00AA1849 /* llfollowcam.h */, | ||
2418 | FD6C9A2709C758BC00AA1849 /* llhudicon.cpp */, | ||
2419 | FD6C9A2809C758BC00AA1849 /* llhudicon.h */, | ||
2420 | 99E43515092D64E6003AE728 /* llvoinventorylistener.h */, | ||
2421 | 99E43516092D64E6003AE728 /* llvoinventorylistener.cpp */, | ||
2422 | 99E43512092D64CC003AE728 /* llmemoryview.h */, | ||
2423 | 99E43513092D64CC003AE728 /* llmemoryview.cpp */, | ||
2424 | 99E4350F092D64A4003AE728 /* llfloaterbuycurrency.cpp */, | ||
2425 | 99E43510092D64A4003AE728 /* llfloaterbuycurrency.h */, | ||
2426 | 99BB5166099ABDEB004BF9F2 /* llfloaterbuyland.cpp */, | ||
2427 | 99BB5167099ABDEB004BF9F2 /* llfloaterbuyland.h */, | ||
2428 | 99BB5169099AC1AE004BF9F2 /* llxmlrpctransaction.h */, | ||
2429 | 99BB516A099AC1AE004BF9F2 /* llxmlrpctransaction.cpp */, | ||
2430 | 99BB516D099AC1E9004BF9F2 /* llviewchildren.cpp */, | ||
2431 | 99BB516E099AC1E9004BF9F2 /* llviewchildren.h */, | ||
2432 | 99BB5170099AC1FC004BF9F2 /* llcurrencyuimanager.cpp */, | ||
2433 | 99BB5171099AC1FC004BF9F2 /* llcurrencyuimanager.h */, | ||
2434 | 99BB5174099AC2A4004BF9F2 /* llconfirmationmanager.cpp */, | ||
2435 | 99BB5175099AC2A4004BF9F2 /* llconfirmationmanager.h */, | ||
2436 | 1A89230608B12D2E00A04AA9 /* llfloateropenobject.cpp */, | ||
2437 | 1A89230708B12D2E00A04AA9 /* llfloateropenobject.h */, | ||
2438 | 1A89230308B12D1000A04AA9 /* llurlwhitelist.cpp */, | ||
2439 | 1A89230408B12D1000A04AA9 /* llurlwhitelist.h */, | ||
2440 | E224ACBC0874D6150039C1A6 /* llfloaterimport.cpp */, | ||
2441 | E224ACBD0874D6150039C1A6 /* llfloaterimport.h */, | ||
2442 | 1A47B8DD0860FDF100F73746 /* llpanelweb.h */, | ||
2443 | 1A47B8DE0860FDF100F73746 /* llpanelweb.cpp */, | ||
2444 | 1AE5D70F0844FBD200278605 /* llwebbrowserctrl.h */, | ||
2445 | 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */, | ||
2446 | EB3EE709083AC23D002BF676 /* lldynamictexture.h */, | ||
2447 | EB3EE70A083AC23D002BF676 /* llfloateranimpreview.h */, | ||
2448 | 1A9EC23A083EA01F0023D510 /* llfloatereditui.h */, | ||
2449 | 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */, | ||
2450 | EB3EE70B083AC23D002BF676 /* llfloaterimagepreview.h */, | ||
2451 | EB3EE70C083AC23D002BF676 /* llgroupmgr.h */, | ||
2452 | EB3EE70D083AC23D002BF676 /* llpreviewanim.h */, | ||
2453 | EB3EE70F083AC23D002BF676 /* llviewercontrol.h */, | ||
2454 | EB3EE712083AC23D002BF676 /* llviewertexteditor.cpp */, | ||
2455 | EB3EE713083AC23D002BF676 /* llviewertexteditor.h */, | ||
2456 | EB3EE714083AC23D002BF676 /* llvieweruictrlfactory.cpp */, | ||
2457 | EB3EE715083AC23D002BF676 /* llvieweruictrlfactory.h */, | ||
2458 | EB3EE716083AC23D002BF676 /* llvolumesliderctrl.h */, | ||
2459 | 91A15600081EE8060089988C /* llfloaterhtml.h */, | ||
2460 | 91A155FE081EE7F70089988C /* llfloaterhtml.cpp */, | ||
2461 | 9118669907F4FAF700E3D5BC /* llmediaremotectrl.cpp */, | ||
2462 | 9118669A07F4FAF700E3D5BC /* llmediaremotectrl.h */, | ||
2463 | 91E86C3107BD3B3A00F56E75 /* llfloatersaveavatar.cpp */, | ||
2464 | A241CB7B07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp */, | ||
2465 | A241CB7C07B3DE0D001A39E3 /* llviewerprecompiledheaders.h */, | ||
2466 | 913AA1FC079855E900D111CE /* llfloaterfriends.cpp */, | ||
2467 | 91287B4A078DE4B300E958B2 /* llviewerkeyboard.cpp */, | ||
2468 | 91287B4B078DE4B300E958B2 /* llviewerkeyboard.h */, | ||
2469 | 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */, | ||
2470 | 911CAD92075BEAAC00CD1090 /* lltoolselect.cpp */, | ||
2471 | 911CAD8A075BE90600CD1090 /* llgroupmgr.cpp */, | ||
2472 | 911CAD86075BE87B00CD1090 /* llinventoryview.cpp */, | ||
2473 | 916724C407551DF600CA4513 /* llfloatercolorpicker.cpp */, | ||
2474 | 916724C207551DE400CA4513 /* llfloatercolorpicker.h */, | ||
2475 | 918166CA06516C59005727DC /* llaudiosourcevo.cpp */, | ||
2476 | 915F492806B5738A00F629BF /* lleventinfo.cpp */, | ||
2477 | 915F492006B572E700F629BF /* lleventnotifier.cpp */, | ||
2478 | 912541AD0691FF79008C66F7 /* llfasttimerview.cpp */, | ||
2479 | 91FC1C8706527F19009CF498 /* llpreviewanim.cpp */, | ||
2480 | 91DF401F06A739BA00CA7FE5 /* llstartup.cpp */, | ||
2481 | 910D255206484F1A0034E66F /* llvolumesliderctrl.cpp */, | ||
2482 | 91B9EB8206370586007B3F3E /* lldynamictexture.cpp */, | ||
2483 | 91F8BBAB062DF91A00DE42BA /* llgesturemgr.cpp */, | ||
2484 | 91F8BBA3062DF7AB00DE42BA /* llpreviewgesture.cpp */, | ||
2485 | 91E7BB2105EFCBA40026CC40 /* llviewerdisplay.cpp */, | ||
2486 | 019200F004DD7D2B00A800A7 /* macview_Prefix.h */, | ||
2487 | 26C5F3E605DB1E3C00994065 /* llfloaterpostcard.cpp */, | ||
2488 | 2613A6D905D843D80041A7A9 /* llfloatersnapshot.cpp */, | ||
2489 | 91D2527605C9C0620099BB54 /* llfloaterauction.cpp */, | ||
2490 | 9131094305C6D5A300A18084 /* llpanelpick.cpp */, | ||
2491 | 91E36BB705B4C70600C919E4 /* llpanelinput.cpp */, | ||
2492 | 26F52A9D051F61DF00A80050 /* head.cpp */, | 2355 | 26F52A9D051F61DF00A80050 /* head.cpp */, |
2493 | 26F52A41051F61DF00A80050 /* llagent.cpp */, | 2356 | 26F52A41051F61DF00A80050 /* llagent.cpp */, |
2357 | 1A758C910A436FCA00589675 /* llagentdata.cpp */, | ||
2494 | 26F52A5D051F61DF00A80050 /* llagentpilot.cpp */, | 2358 | 26F52A5D051F61DF00A80050 /* llagentpilot.cpp */, |
2359 | FD59ED5D0AF2AF460086642A /* llassetuploadresponders.cpp */, | ||
2360 | FD59ED5E0AF2AF460086642A /* llassetuploadresponders.h */, | ||
2495 | 26F52AB2051F61DF00A80050 /* llasynchostbyname.cpp */, | 2361 | 26F52AB2051F61DF00A80050 /* llasynchostbyname.cpp */, |
2362 | 918166CA06516C59005727DC /* llaudiosourcevo.cpp */, | ||
2496 | 26F52AB3051F61DF00A80050 /* llaudiostatus.cpp */, | 2363 | 26F52AB3051F61DF00A80050 /* llaudiostatus.cpp */, |
2497 | 26F52A33051F61DF00A80050 /* llbbox.cpp */, | 2364 | 26F52A33051F61DF00A80050 /* llbbox.cpp */, |
2498 | 26F52ABF051F61DF00A80050 /* llbox.cpp */, | 2365 | 26F52ABF051F61DF00A80050 /* llbox.cpp */, |
2499 | 26F529F0051F61DF00A80050 /* llcallbacklist.cpp */, | 2366 | 26F529F0051F61DF00A80050 /* llcallbacklist.cpp */, |
2500 | 26F52A8C051F61DF00A80050 /* llcallingcard.cpp */, | 2367 | 26F52A8C051F61DF00A80050 /* llcallingcard.cpp */, |
2501 | 26F52AC5051F61DF00A80050 /* llcameraview.cpp */, | 2368 | 26F52AC5051F61DF00A80050 /* llcameraview.cpp */, |
2369 | 9C18425A0B9F951500208356 /* llcaphttpsender.cpp */, | ||
2370 | 91D530D2056EE57900CD1AD7 /* llchatbar.cpp */, | ||
2502 | 991ED2DF0883646B003EC818 /* llclassifiedinfo.cpp */, | 2371 | 991ED2DF0883646B003EC818 /* llclassifiedinfo.cpp */, |
2503 | 26F52A3B051F61DF00A80050 /* llcloud.cpp */, | 2372 | 26F52A3B051F61DF00A80050 /* llcloud.cpp */, |
2504 | 26F52AA9051F61DF00A80050 /* llcolorscheme.cpp */, | 2373 | 26F52AA9051F61DF00A80050 /* llcolorscheme.cpp */, |
2505 | 26F52A83051F61DF00A80050 /* llcolorswatch.cpp */, | 2374 | 26F52A83051F61DF00A80050 /* llcolorswatch.cpp */, |
2506 | 26F52AA8051F61DF00A80050 /* llcompass.cpp */, | 2375 | 26F52AA8051F61DF00A80050 /* llcompass.cpp */, |
2507 | 26F52AC6051F61DF00A80050 /* llcompilequeue.cpp */, | 2376 | 26F52AC6051F61DF00A80050 /* llcompilequeue.cpp */, |
2377 | 99BB5174099AC2A4004BF9F2 /* llconfirmationmanager.cpp */, | ||
2378 | 99BB5175099AC2A4004BF9F2 /* llconfirmationmanager.h */, | ||
2508 | 26F52A03051F61DF00A80050 /* llconsole.cpp */, | 2379 | 26F52A03051F61DF00A80050 /* llconsole.cpp */, |
2509 | 26F52A78051F61DF00A80050 /* llcontainerview.cpp */, | 2380 | 26F52A78051F61DF00A80050 /* llcontainerview.cpp */, |
2510 | 26F52A1B051F61DF00A80050 /* llcontroldef.cpp */, | 2381 | 26F52A1B051F61DF00A80050 /* llcontroldef.cpp */, |
2511 | 26F52A1A051F61DF00A80050 /* llcountdown.cpp */, | 2382 | 26F52A1A051F61DF00A80050 /* llcountdown.cpp */, |
2512 | 26F52ACB051F61DF00A80050 /* llcubemap.cpp */, | 2383 | 26F52ACB051F61DF00A80050 /* llcubemap.cpp */, |
2384 | 99BB5170099AC1FC004BF9F2 /* llcurrencyuimanager.cpp */, | ||
2385 | 99BB5171099AC1FC004BF9F2 /* llcurrencyuimanager.h */, | ||
2513 | 26F52A86051F61DF00A80050 /* llcylinder.cpp */, | 2386 | 26F52A86051F61DF00A80050 /* llcylinder.cpp */, |
2514 | 26F52AA2051F61DF00A80050 /* lldebugview.cpp */, | 2387 | 26F52AA2051F61DF00A80050 /* lldebugview.cpp */, |
2388 | C64F67400AFBED91009732B5 /* lldirpicker.cpp */, | ||
2389 | C64F67410AFBED91009732B5 /* lldirpicker.h */, | ||
2515 | 26F52A64051F61DF00A80050 /* lldrawable.cpp */, | 2390 | 26F52A64051F61DF00A80050 /* lldrawable.cpp */, |
2516 | 26F52A2C051F61DF00A80050 /* lldrawpool.cpp */, | 2391 | 26F52A2C051F61DF00A80050 /* lldrawpool.cpp */, |
2517 | 26F52A26051F61DF00A80050 /* lldrawpoolalpha.cpp */, | 2392 | 26F52A26051F61DF00A80050 /* lldrawpoolalpha.cpp */, |
2518 | 26F52A5E051F61DF00A80050 /* lldrawpoolavatar.cpp */, | 2393 | 26F52A5E051F61DF00A80050 /* lldrawpoolavatar.cpp */, |
2519 | 26F52A53051F61DF00A80050 /* lldrawpoolbump.cpp */, | 2394 | 26F52A53051F61DF00A80050 /* lldrawpoolbump.cpp */, |
2395 | FD870C4F09EAC19700F5956C /* lldrawpoolclouds.h */, | ||
2520 | 26F52A95051F61DF00A80050 /* lldrawpoolground.cpp */, | 2396 | 26F52A95051F61DF00A80050 /* lldrawpoolground.cpp */, |
2521 | 26F52ACA051F61DF00A80050 /* lldrawpoolsimple.cpp */, | 2397 | 26F52ACA051F61DF00A80050 /* lldrawpoolsimple.cpp */, |
2522 | 26F52A14051F61DF00A80050 /* lldrawpoolsky.cpp */, | 2398 | 26F52A14051F61DF00A80050 /* lldrawpoolsky.cpp */, |
2399 | A3077BFB09DCB8140059ED75 /* lldrawpoolstars.cpp */, | ||
2400 | A3077BFC09DCB8140059ED75 /* lldrawpoolstars.h */, | ||
2523 | 26F529EF051F61DF00A80050 /* lldrawpoolterrain.cpp */, | 2401 | 26F529EF051F61DF00A80050 /* lldrawpoolterrain.cpp */, |
2524 | 26F52A7B051F61DF00A80050 /* lldrawpooltree.cpp */, | 2402 | 26F52A7B051F61DF00A80050 /* lldrawpooltree.cpp */, |
2525 | 26F52A3F051F61DF00A80050 /* lldrawpoolwater.cpp */, | 2403 | 26F52A3F051F61DF00A80050 /* lldrawpoolwater.cpp */, |
2526 | 26F52A84051F61DF00A80050 /* lldriverparam.cpp */, | 2404 | 26F52A84051F61DF00A80050 /* lldriverparam.cpp */, |
2405 | 91B9EB8206370586007B3F3E /* lldynamictexture.cpp */, | ||
2406 | EB3EE709083AC23D002BF676 /* lldynamictexture.h */, | ||
2527 | 26F52A62051F61DF00A80050 /* llemote.cpp */, | 2407 | 26F52A62051F61DF00A80050 /* llemote.cpp */, |
2408 | 915F492806B5738A00F629BF /* lleventinfo.cpp */, | ||
2409 | 915F492006B572E700F629BF /* lleventnotifier.cpp */, | ||
2410 | FDCB55270AFBD4310033B433 /* lleventpoll.cpp */, | ||
2411 | FDCB55280AFBD4310033B433 /* lleventpoll.h */, | ||
2528 | 26F52A3A051F61DF00A80050 /* llface.cpp */, | 2412 | 26F52A3A051F61DF00A80050 /* llface.cpp */, |
2413 | 912541AD0691FF79008C66F7 /* llfasttimerview.cpp */, | ||
2529 | 263E02FE05239C9A00A80050 /* llfeaturemanager.cpp */, | 2414 | 263E02FE05239C9A00A80050 /* llfeaturemanager.cpp */, |
2530 | 26F52AAC051F61DF00A80050 /* llfft.cpp */, | 2415 | 26F52AAC051F61DF00A80050 /* llfft.cpp */, |
2531 | 26F52AD3051F61DF00A80050 /* llfilepicker.cpp */, | 2416 | 26F52AD3051F61DF00A80050 /* llfilepicker.cpp */, |
2417 | 8B2ECFA00534C21A00A80059 /* llfirstuse.cpp */, | ||
2532 | 8B2ECF9E0534C17A00A80059 /* llfirstuse.h */, | 2418 | 8B2ECF9E0534C17A00A80059 /* llfirstuse.h */, |
2419 | 9CD49D5609D0BAC100192434 /* llflexibleobject.cpp */, | ||
2420 | 9CD49D5809D0BAD600192434 /* llflexibleobject.h */, | ||
2533 | 26F52A82051F61DF00A80050 /* llfloaterabout.cpp */, | 2421 | 26F52A82051F61DF00A80050 /* llfloaterabout.cpp */, |
2534 | 916083920649560B00CAF63E /* llfloateranimpreview.cpp */, | 2422 | 916083920649560B00CAF63E /* llfloateranimpreview.cpp */, |
2423 | EB3EE70A083AC23D002BF676 /* llfloateranimpreview.h */, | ||
2424 | 91D2527605C9C0620099BB54 /* llfloaterauction.cpp */, | ||
2535 | 26F52A8B051F61DF00A80050 /* llfloateravatarinfo.cpp */, | 2425 | 26F52A8B051F61DF00A80050 /* llfloateravatarinfo.cpp */, |
2426 | 1A61A7EF0A5ED446009FE3D2 /* llfloateravatarpicker.cpp */, | ||
2427 | 1AF9CA460AE972DA003EFF2D /* llfloateravatartextures.cpp */, | ||
2536 | 26F52A05051F61DF00A80050 /* llfloaterbuildoptions.cpp */, | 2428 | 26F52A05051F61DF00A80050 /* llfloaterbuildoptions.cpp */, |
2429 | 1A5B3B540A70147000A90391 /* llfloaterbump.cpp */, | ||
2537 | 26F52AB6051F61DF00A80050 /* llfloaterbuy.cpp */, | 2430 | 26F52AB6051F61DF00A80050 /* llfloaterbuy.cpp */, |
2431 | 9130442A057428D800571B0A /* llfloaterbuycontents.cpp */, | ||
2432 | 99E4350F092D64A4003AE728 /* llfloaterbuycurrency.cpp */, | ||
2433 | 99E43510092D64A4003AE728 /* llfloaterbuycurrency.h */, | ||
2434 | 99BB5166099ABDEB004BF9F2 /* llfloaterbuyland.cpp */, | ||
2435 | 99BB5167099ABDEB004BF9F2 /* llfloaterbuyland.h */, | ||
2538 | 26F52A02051F61DF00A80050 /* llfloaterchat.cpp */, | 2436 | 26F52A02051F61DF00A80050 /* llfloaterchat.cpp */, |
2539 | 91CB311506FB584C00DBCE1E /* llfloaterclothing.cpp */, | 2437 | 91CB311506FB584C00DBCE1E /* llfloaterclothing.cpp */, |
2438 | 916724C407551DF600CA4513 /* llfloatercolorpicker.cpp */, | ||
2439 | 916724C207551DE400CA4513 /* llfloatercolorpicker.h */, | ||
2540 | 26F52A34051F61DF00A80050 /* llfloatercustomize.cpp */, | 2440 | 26F52A34051F61DF00A80050 /* llfloatercustomize.cpp */, |
2541 | 26F52A56051F61DF00A80050 /* llfloaterdirectory.cpp */, | 2441 | 26F52A56051F61DF00A80050 /* llfloaterdirectory.cpp */, |
2442 | 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */, | ||
2443 | 1A9EC23A083EA01F0023D510 /* llfloatereditui.h */, | ||
2444 | 913AA1FC079855E900D111CE /* llfloaterfriends.cpp */, | ||
2542 | 26F52A63051F61DF00A80050 /* llfloatergesture.cpp */, | 2445 | 26F52A63051F61DF00A80050 /* llfloatergesture.cpp */, |
2446 | 91C8C05405922AC100633E8C /* llfloatergodtools.cpp */, | ||
2543 | 26F52A71051F61DF00A80050 /* llfloatergroupinfo.cpp */, | 2447 | 26F52A71051F61DF00A80050 /* llfloatergroupinfo.cpp */, |
2448 | 84401E2D0A13CC9A006720A5 /* llfloatergroupinvite.cpp */, | ||
2544 | 26F52A7E051F61DF00A80050 /* llfloatergroups.cpp */, | 2449 | 26F52A7E051F61DF00A80050 /* llfloatergroups.cpp */, |
2450 | 91A155FE081EE7F70089988C /* llfloaterhtml.cpp */, | ||
2451 | 91A15600081EE8060089988C /* llfloaterhtml.h */, | ||
2452 | 99C6BFA90A1BBD4800419AE7 /* llfloaterhtmlfind.cpp */, | ||
2453 | 99C6BFA80A1BBD4800419AE7 /* llfloaterhtmlfind.h */, | ||
2454 | A3077BFF09DCB8140059ED75 /* llfloaterhtmlhelp.cpp */, | ||
2455 | A3077C0009DCB8140059ED75 /* llfloaterhtmlhelp.h */, | ||
2545 | 91B9EC4C06370E4D007B3F3E /* llfloaterimagepreview.cpp */, | 2456 | 91B9EC4C06370E4D007B3F3E /* llfloaterimagepreview.cpp */, |
2457 | EB3EE70B083AC23D002BF676 /* llfloaterimagepreview.h */, | ||
2458 | E224ACBC0874D6150039C1A6 /* llfloaterimport.cpp */, | ||
2459 | E224ACBD0874D6150039C1A6 /* llfloaterimport.h */, | ||
2460 | C16C084E0B4AE6C7009AD67F /* llfloaterinspect.cpp */, | ||
2461 | C16C084F0B4AE6C7009AD67F /* llfloaterinspect.h */, | ||
2546 | 26F52A17051F61DF00A80050 /* llfloaterland.cpp */, | 2462 | 26F52A17051F61DF00A80050 /* llfloaterland.cpp */, |
2547 | 99EDDF5B05892E720031B20D /* llfloaterlandholdings.cpp */, | 2463 | 99EDDF5B05892E720031B20D /* llfloaterlandholdings.cpp */, |
2548 | 26F52AAD051F61DF00A80050 /* llfloatermap.cpp */, | 2464 | 26F52AAD051F61DF00A80050 /* llfloatermap.cpp */, |
2549 | 26F52A66051F61DF00A80050 /* llfloatermute.cpp */, | 2465 | 26F52A66051F61DF00A80050 /* llfloatermute.cpp */, |
2550 | 26F52A9F051F61DF00A80050 /* llfloaternamedesc.cpp */, | 2466 | 26F52A9F051F61DF00A80050 /* llfloaternamedesc.cpp */, |
2467 | A3D968F00A6EBCA7007E8BD2 /* llfloaternewim.cpp */, | ||
2468 | 1A89230608B12D2E00A04AA9 /* llfloateropenobject.cpp */, | ||
2469 | 1A89230708B12D2E00A04AA9 /* llfloateropenobject.h */, | ||
2470 | FD6C9A3409C75A8500AA1849 /* llfloaterpermissionsmgr.cpp */, | ||
2471 | FD6C9A3509C75A8500AA1849 /* llfloaterpermissionsmgr.h */, | ||
2472 | 26C5F3E605DB1E3C00994065 /* llfloaterpostcard.cpp */, | ||
2551 | 26F52A6B051F61DF00A80050 /* llfloaterpreference.cpp */, | 2473 | 26F52A6B051F61DF00A80050 /* llfloaterpreference.cpp */, |
2552 | 26F52A5B051F61DF00A80050 /* llfloaterproperties.cpp */, | 2474 | 26F52A5B051F61DF00A80050 /* llfloaterproperties.cpp */, |
2553 | 26F52A7C051F61DF00A80050 /* llfloaterrate.cpp */, | 2475 | 26F52A7C051F61DF00A80050 /* llfloaterrate.cpp */, |
2554 | 9174D2C00653FC2600A7E32B /* llfloaterregioninfo.cpp */, | 2476 | 9174D2C00653FC2600A7E32B /* llfloaterregioninfo.cpp */, |
2555 | 26F52AC2051F61DF00A80050 /* llfloaterreporter.cpp */, | 2477 | 26F52AC2051F61DF00A80050 /* llfloaterreporter.cpp */, |
2478 | 91E86C3107BD3B3A00F56E75 /* llfloatersaveavatar.cpp */, | ||
2479 | FD6C9A2109C758BC00AA1849 /* llfloaterscriptdebug.cpp */, | ||
2480 | FD6C9A2209C758BC00AA1849 /* llfloaterscriptdebug.h */, | ||
2481 | AAC121A30A93A8380080E8A9 /* llfloatersellland.cpp */, | ||
2482 | AAC121A40A93A8380080E8A9 /* llfloatersellland.h */, | ||
2483 | 2613A6D905D843D80041A7A9 /* llfloatersnapshot.cpp */, | ||
2484 | FD6C9A2309C758BC00AA1849 /* llfloatertelehub.cpp */, | ||
2485 | FD6C9A2409C758BC00AA1849 /* llfloatertelehub.h */, | ||
2486 | 1A8BF3780A1AAB99005B9D5A /* llfloatertest.cpp */, | ||
2556 | 26F52A8F051F61DF00A80050 /* llfloatertools.cpp */, | 2487 | 26F52A8F051F61DF00A80050 /* llfloatertools.cpp */, |
2488 | FD6C9A4209C75B8900AA1849 /* llfloatertopobjects.cpp */, | ||
2489 | FD6C9A4309C75B8900AA1849 /* llfloatertopobjects.h */, | ||
2557 | 26F52A8E051F61DF00A80050 /* llfloatertos.cpp */, | 2490 | 26F52A8E051F61DF00A80050 /* llfloatertos.cpp */, |
2558 | 26F52A69051F61DF00A80050 /* llfloaterworldmap.cpp */, | 2491 | 26F52A69051F61DF00A80050 /* llfloaterworldmap.cpp */, |
2559 | 26F52AA5051F61DF00A80050 /* llfolderview.cpp */, | 2492 | 26F52AA5051F61DF00A80050 /* llfolderview.cpp */, |
2493 | FD6C9A2509C758BC00AA1849 /* llfollowcam.cpp */, | ||
2494 | FD6C9A2609C758BC00AA1849 /* llfollowcam.h */, | ||
2560 | 26F52A1F051F61DF00A80050 /* llframestats.cpp */, | 2495 | 26F52A1F051F61DF00A80050 /* llframestats.cpp */, |
2561 | 26F52A1E051F61DF00A80050 /* llframestatview.cpp */, | 2496 | 26F52A1E051F61DF00A80050 /* llframestatview.cpp */, |
2562 | 26F529A1051F61DF00A80050 /* llgenepool.cpp */, | 2497 | 26F529A1051F61DF00A80050 /* llgenepool.cpp */, |
2498 | 91F8BBAB062DF91A00DE42BA /* llgesturemgr.cpp */, | ||
2563 | 26F52AA7051F61DF00A80050 /* llgivemoney.cpp */, | 2499 | 26F52AA7051F61DF00A80050 /* llgivemoney.cpp */, |
2564 | 26F52AA6051F61DF00A80050 /* llglsandbox.cpp */, | 2500 | 26F52AA6051F61DF00A80050 /* llglsandbox.cpp */, |
2501 | A3C20E490BB0BCDF007E872B /* llglslshader.cpp */, | ||
2502 | 911CAD8A075BE90600CD1090 /* llgroupmgr.cpp */, | ||
2503 | EB3EE70C083AC23D002BF676 /* llgroupmgr.h */, | ||
2504 | 2EFEA8E809F4556F00CB0193 /* llgroupnotify.cpp */, | ||
2565 | 26F52A87051F61DF00A80050 /* llhippo.cpp */, | 2505 | 26F52A87051F61DF00A80050 /* llhippo.cpp */, |
2566 | 26F52A85051F61DF00A80050 /* llhoverview.cpp */, | 2506 | 26F52A85051F61DF00A80050 /* llhoverview.cpp */, |
2567 | 26F52A52051F61DF00A80050 /* llhudconnector.cpp */, | 2507 | 26F52A52051F61DF00A80050 /* llhudconnector.cpp */, |
@@ -2570,20 +2510,35 @@ | |||
2570 | 26F52ADB051F61DF00A80050 /* llhudeffectlookat.cpp */, | 2510 | 26F52ADB051F61DF00A80050 /* llhudeffectlookat.cpp */, |
2571 | 26F52ADA051F61DF00A80050 /* llhudeffectpointat.cpp */, | 2511 | 26F52ADA051F61DF00A80050 /* llhudeffectpointat.cpp */, |
2572 | 26F52A65051F61DF00A80050 /* llhudeffecttrail.cpp */, | 2512 | 26F52A65051F61DF00A80050 /* llhudeffecttrail.cpp */, |
2513 | FD6C9A2709C758BC00AA1849 /* llhudicon.cpp */, | ||
2514 | FD6C9A2809C758BC00AA1849 /* llhudicon.h */, | ||
2573 | 26F52A25051F61DF00A80050 /* llhudmanager.cpp */, | 2515 | 26F52A25051F61DF00A80050 /* llhudmanager.cpp */, |
2574 | 26F52A24051F61DF00A80050 /* llhudobject.cpp */, | 2516 | 26F52A24051F61DF00A80050 /* llhudobject.cpp */, |
2575 | 26F52A5C051F61DF00A80050 /* llhudrender.cpp */, | 2517 | 26F52A5C051F61DF00A80050 /* llhudrender.cpp */, |
2576 | 26F52A3E051F61DF00A80050 /* llhudtext.cpp */, | 2518 | 26F52A3E051F61DF00A80050 /* llhudtext.cpp */, |
2577 | 26F52A3D051F61DF00A80050 /* llhudview.cpp */, | 2519 | 26F52A3D051F61DF00A80050 /* llhudview.cpp */, |
2578 | 26F52AD6051F61DF00A80050 /* llimpanel.cpp */, | 2520 | 26F52AD6051F61DF00A80050 /* llimpanel.cpp */, |
2521 | 1AD61F6A0AC09B1900507FB9 /* llimview.cpp */, | ||
2522 | A3285A3A0A71425100F619A5 /* llinventoryactions.cpp */, | ||
2523 | A3285A340A71419F00F619A5 /* llinventorybridge.cpp */, | ||
2579 | 26F52A57051F61DF00A80050 /* llinventoryclipboard.cpp */, | 2524 | 26F52A57051F61DF00A80050 /* llinventoryclipboard.cpp */, |
2580 | 26F529F8051F61DF00A80050 /* llinventorymodel.cpp */, | 2525 | 26F529F8051F61DF00A80050 /* llinventorymodel.cpp */, |
2526 | 911CAD86075BE87B00CD1090 /* llinventoryview.cpp */, | ||
2581 | 26F52ACC051F61DF00A80050 /* lljoystickbutton.cpp */, | 2527 | 26F52ACC051F61DF00A80050 /* lljoystickbutton.cpp */, |
2582 | 26F52A04051F61DF00A80050 /* lllandmarklist.cpp */, | 2528 | 26F52A04051F61DF00A80050 /* lllandmarklist.cpp */, |
2529 | 9CD49D5909D0BB1500192434 /* lllocalanimationobject.cpp */, | ||
2530 | 9CD49D5A09D0BB1500192434 /* lllocalanimationobject.h */, | ||
2531 | C64F673D0AFBED80009732B5 /* lllogchat.cpp */, | ||
2532 | C64F673E0AFBED80009732B5 /* lllogchat.h */, | ||
2583 | 26F529A9051F61DF00A80050 /* llmanip.cpp */, | 2533 | 26F529A9051F61DF00A80050 /* llmanip.cpp */, |
2584 | 26F52A40051F61DF00A80050 /* llmaniprotate.cpp */, | 2534 | 26F52A40051F61DF00A80050 /* llmaniprotate.cpp */, |
2585 | 26F52A9B051F61DF00A80050 /* llmanipscale.cpp */, | 2535 | 26F52A9B051F61DF00A80050 /* llmanipscale.cpp */, |
2586 | 26F52A9A051F61DF00A80050 /* llmaniptranslate.cpp */, | 2536 | 26F52A9A051F61DF00A80050 /* llmaniptranslate.cpp */, |
2537 | E34C14730AE6A3F0009BF4DE /* llmapresponders.cpp */, | ||
2538 | 9118669907F4FAF700E3D5BC /* llmediaremotectrl.cpp */, | ||
2539 | 9118669A07F4FAF700E3D5BC /* llmediaremotectrl.h */, | ||
2540 | 99E43513092D64CC003AE728 /* llmemoryview.cpp */, | ||
2541 | 99E43512092D64CC003AE728 /* llmemoryview.h */, | ||
2587 | 26F52AD8051F61DF00A80050 /* llmenucommands.cpp */, | 2542 | 26F52AD8051F61DF00A80050 /* llmenucommands.cpp */, |
2588 | 26F52A67051F61DF00A80050 /* llmorphview.cpp */, | 2543 | 26F52A67051F61DF00A80050 /* llmorphview.cpp */, |
2589 | 26F52AAB051F61DF00A80050 /* llmoveview.cpp */, | 2544 | 26F52AAB051F61DF00A80050 /* llmoveview.cpp */, |
@@ -2592,6 +2547,8 @@ | |||
2592 | 2617306405221AB700A80050 /* llnameeditor.cpp */, | 2547 | 2617306405221AB700A80050 /* llnameeditor.cpp */, |
2593 | 26F52A98051F61DF00A80050 /* llnamelistctrl.cpp */, | 2548 | 26F52A98051F61DF00A80050 /* llnamelistctrl.cpp */, |
2594 | 26F52A97051F61DF00A80050 /* llnetmap.cpp */, | 2549 | 26F52A97051F61DF00A80050 /* llnetmap.cpp */, |
2550 | 91D61FD0057ED9DF005B4B69 /* llnotify.cpp */, | ||
2551 | 91D530CE056EE55C00CD1AD7 /* lloverlaybar.cpp */, | ||
2595 | 26F52AB5051F61DF00A80050 /* llpanelaudioprefs.cpp */, | 2552 | 26F52AB5051F61DF00A80050 /* llpanelaudioprefs.cpp */, |
2596 | 26F52AB4051F61DF00A80050 /* llpanelavatar.cpp */, | 2553 | 26F52AB4051F61DF00A80050 /* llpanelavatar.cpp */, |
2597 | 99FBB044087362B60048A5CC /* llpanelclassified.cpp */, | 2554 | 99FBB044087362B60048A5CC /* llpanelclassified.cpp */, |
@@ -2606,23 +2563,43 @@ | |||
2606 | 26F52AA4051F61DF00A80050 /* llpaneldirpeople.cpp */, | 2563 | 26F52AA4051F61DF00A80050 /* llpaneldirpeople.cpp */, |
2607 | 26F52AA3051F61DF00A80050 /* llpaneldirplaces.cpp */, | 2564 | 26F52AA3051F61DF00A80050 /* llpaneldirplaces.cpp */, |
2608 | 9900330005EC0ADD0035CB09 /* llpaneldirpopular.cpp */, | 2565 | 9900330005EC0ADD0035CB09 /* llpaneldirpopular.cpp */, |
2609 | 2EFEA8EB09F455B900CB0193 /* llpanelgroup.cpp */, | ||
2610 | 26F52A47051F61DF00A80050 /* llpaneldisplay.cpp */, | 2566 | 26F52A47051F61DF00A80050 /* llpaneldisplay.cpp */, |
2611 | 26F52A19051F61DF00A80050 /* llpanelevent.cpp */, | 2567 | 26F52A19051F61DF00A80050 /* llpanelevent.cpp */, |
2612 | 26F52A18051F61DF00A80050 /* llpanelface.cpp */, | 2568 | 26F52A18051F61DF00A80050 /* llpanelface.cpp */, |
2613 | 26F529FD051F61DF00A80050 /* llpanelgeneral.cpp */, | 2569 | 26F529FD051F61DF00A80050 /* llpanelgeneral.cpp */, |
2570 | 2EFEA8EB09F455B900CB0193 /* llpanelgroup.cpp */, | ||
2571 | 2EFEA8F009F4588B00CB0193 /* llpanelgroupgeneral.cpp */, | ||
2572 | 84401E300A13CCB2006720A5 /* llpanelgroupinvite.cpp */, | ||
2573 | 2EA4CEED09F83BE8008F60F7 /* llpanelgrouplandmoney.cpp */, | ||
2574 | 2E6FE90D09FD560A00AF02FF /* llpanelgroupnotices.cpp */, | ||
2575 | 2EA4CEEC09F83AC2008F60F7 /* llpanelgrouproles.cpp */, | ||
2614 | 26F52AC7051F61DF00A80050 /* llpanelgroupvoting.cpp */, | 2576 | 26F52AC7051F61DF00A80050 /* llpanelgroupvoting.cpp */, |
2577 | 91E36BB705B4C70600C919E4 /* llpanelinput.cpp */, | ||
2615 | 26F529EE051F61DF00A80050 /* llpanelinventory.cpp */, | 2578 | 26F529EE051F61DF00A80050 /* llpanelinventory.cpp */, |
2616 | 26F529ED051F61DF00A80050 /* llpanelland.cpp */, | 2579 | 26F529ED051F61DF00A80050 /* llpanelland.cpp */, |
2580 | 1A758C930A436FD800589675 /* llpanellandobjects.cpp */, | ||
2581 | 1A758C950A436FDE00589675 /* llpanellandoptions.cpp */, | ||
2582 | A3AF6BCE0A544EF0005B5E2C /* llpanellogin.cpp */, | ||
2617 | 26F52A5A051F61DF00A80050 /* llpanelmorph.cpp */, | 2583 | 26F52A5A051F61DF00A80050 /* llpanelmorph.cpp */, |
2584 | 9104C0CB0778AE0F001EC4F6 /* llpanelmsgs.cpp */, | ||
2618 | 26F52A2B051F61DF00A80050 /* llpanelnetwork.cpp */, | 2585 | 26F52A2B051F61DF00A80050 /* llpanelnetwork.cpp */, |
2619 | 26F52A2A051F61DF00A80050 /* llpanelobject.cpp */, | 2586 | 26F52A2A051F61DF00A80050 /* llpanelobject.cpp */, |
2620 | 26F52AA1051F61DF00A80050 /* llpanelpermissions.cpp */, | 2587 | 26F52AA1051F61DF00A80050 /* llpanelpermissions.cpp */, |
2588 | 9131094305C6D5A300A18084 /* llpanelpick.cpp */, | ||
2621 | 26F52AA0051F61DF00A80050 /* llpanelplace.cpp */, | 2589 | 26F52AA0051F61DF00A80050 /* llpanelplace.cpp */, |
2590 | A3077C0309DCB8140059ED75 /* llpanelvolume.cpp */, | ||
2591 | A3077C0409DCB8140059ED75 /* llpanelvolume.h */, | ||
2592 | 1A47B8DE0860FDF100F73746 /* llpanelweb.cpp */, | ||
2593 | 1A47B8DD0860FDF100F73746 /* llpanelweb.h */, | ||
2622 | 26F52A5F051F61DF00A80050 /* llpatchvertexarray.cpp */, | 2594 | 26F52A5F051F61DF00A80050 /* llpatchvertexarray.cpp */, |
2623 | 26F529F3051F61DF00A80050 /* llpolymesh.cpp */, | 2595 | 26F529F3051F61DF00A80050 /* llpolymesh.cpp */, |
2624 | 26F529F2051F61DF00A80050 /* llpolymorph.cpp */, | 2596 | 26F529F2051F61DF00A80050 /* llpolymorph.cpp */, |
2597 | 1A3143E00A02B73D005B87E7 /* llprefschat.cpp */, | ||
2598 | 1A3143DE0A02B737005B87E7 /* llprefsim.cpp */, | ||
2625 | 26F52ABD051F61DF00A80050 /* llpreview.cpp */, | 2599 | 26F52ABD051F61DF00A80050 /* llpreview.cpp */, |
2600 | 91FC1C8706527F19009CF498 /* llpreviewanim.cpp */, | ||
2601 | EB3EE70D083AC23D002BF676 /* llpreviewanim.h */, | ||
2602 | 91F8BBA3062DF7AB00DE42BA /* llpreviewgesture.cpp */, | ||
2626 | 26F52ABC051F61DF00A80050 /* llpreviewlandmark.cpp */, | 2603 | 26F52ABC051F61DF00A80050 /* llpreviewlandmark.cpp */, |
2627 | 26F52A73051F61DF00A80050 /* llpreviewnotecard.cpp */, | 2604 | 26F52A73051F61DF00A80050 /* llpreviewnotecard.cpp */, |
2628 | 26F52A72051F61DF00A80050 /* llpreviewscript.cpp */, | 2605 | 26F52A72051F61DF00A80050 /* llpreviewscript.cpp */, |
@@ -2631,11 +2608,14 @@ | |||
2631 | 26F52AD5051F61DF00A80050 /* llprogressview.cpp */, | 2608 | 26F52AD5051F61DF00A80050 /* llprogressview.cpp */, |
2632 | 26F52AAF051F61DF00A80050 /* llregionposition.cpp */, | 2609 | 26F52AAF051F61DF00A80050 /* llregionposition.cpp */, |
2633 | 26F52A22051F61DF00A80050 /* llroam.cpp */, | 2610 | 26F52A22051F61DF00A80050 /* llroam.cpp */, |
2611 | 1AFA40B40A2DFD7200C13F70 /* llsavedsettingsglue.cpp */, | ||
2634 | 26F52AD2051F61DF00A80050 /* llselectmgr.cpp */, | 2612 | 26F52AD2051F61DF00A80050 /* llselectmgr.cpp */, |
2635 | 26F52AD1051F61DF00A80050 /* llsky.cpp */, | 2613 | 26F52AD1051F61DF00A80050 /* llsky.cpp */, |
2636 | 26F529EB051F61DF00A80050 /* llspatialpartition.cpp */, | 2614 | 26F529EB051F61DF00A80050 /* llspatialpartition.cpp */, |
2637 | 26F529E7051F61DF00A80050 /* llsphere.cpp */, | 2615 | 26F529E7051F61DF00A80050 /* llsphere.cpp */, |
2638 | 26F529E5051F61DF00A80050 /* llsprite.cpp */, | 2616 | 26F529E5051F61DF00A80050 /* llsprite.cpp */, |
2617 | 88A95BB10C14D5FC0027E363 /* llsrv.cpp */, | ||
2618 | 91DF401F06A739BA00CA7FE5 /* llstartup.cpp */, | ||
2639 | 26F529B3051F61DF00A80050 /* llstatbar.cpp */, | 2619 | 26F529B3051F61DF00A80050 /* llstatbar.cpp */, |
2640 | 26F529B2051F61DF00A80050 /* llstatgraph.cpp */, | 2620 | 26F529B2051F61DF00A80050 /* llstatgraph.cpp */, |
2641 | 26F52A94051F61DF00A80050 /* llstatusbar.cpp */, | 2621 | 26F52A94051F61DF00A80050 /* llstatusbar.cpp */, |
@@ -2643,7 +2623,11 @@ | |||
2643 | 26F52A43051F61DF00A80050 /* llsurface.cpp */, | 2623 | 26F52A43051F61DF00A80050 /* llsurface.cpp */, |
2644 | 26F52A42051F61DF00A80050 /* llsurfacepatch.cpp */, | 2624 | 26F52A42051F61DF00A80050 /* llsurfacepatch.cpp */, |
2645 | 26F52AB8051F61DF00A80050 /* lltexlayer.cpp */, | 2625 | 26F52AB8051F61DF00A80050 /* lltexlayer.cpp */, |
2626 | AAF5FFD00B13F71900D28A84 /* lltexturecache.cpp */, | ||
2627 | AAF5FFD10B13F71900D28A84 /* lltexturecache.h */, | ||
2646 | 26F52A28051F61DF00A80050 /* lltexturectrl.cpp */, | 2628 | 26F52A28051F61DF00A80050 /* lltexturectrl.cpp */, |
2629 | AA02B9BA0B0CE44D00F2996D /* lltexturefetch.cpp */, | ||
2630 | AA02B9BB0B0CE44D00F2996D /* lltexturefetch.h */, | ||
2647 | 26F52A27051F61DF00A80050 /* lltexturetable.cpp */, | 2631 | 26F52A27051F61DF00A80050 /* lltexturetable.cpp */, |
2648 | 26F529F6051F61DF00A80050 /* lltextureview.cpp */, | 2632 | 26F529F6051F61DF00A80050 /* lltextureview.cpp */, |
2649 | 26F529F5051F61DF00A80050 /* lltool.cpp */, | 2633 | 26F529F5051F61DF00A80050 /* lltool.cpp */, |
@@ -2660,16 +2644,30 @@ | |||
2660 | 26F52A6E051F61DF00A80050 /* lltoolmorph.cpp */, | 2644 | 26F52A6E051F61DF00A80050 /* lltoolmorph.cpp */, |
2661 | 26F52A6D051F61DF00A80050 /* lltoolobjpicker.cpp */, | 2645 | 26F52A6D051F61DF00A80050 /* lltoolobjpicker.cpp */, |
2662 | 26F529AE051F61DF00A80050 /* lltoolpie.cpp */, | 2646 | 26F529AE051F61DF00A80050 /* lltoolpie.cpp */, |
2647 | AA0E2A620A2FDB340066250A /* lltoolpipette.cpp */, | ||
2648 | AA0E2A630A2FDB340066250A /* lltoolpipette.h */, | ||
2663 | 26F529AD051F61DF00A80050 /* lltoolplacer.cpp */, | 2649 | 26F529AD051F61DF00A80050 /* lltoolplacer.cpp */, |
2650 | 911CAD92075BEAAC00CD1090 /* lltoolselect.cpp */, | ||
2664 | 26F529FC051F61DF00A80050 /* lltoolselectland.cpp */, | 2651 | 26F529FC051F61DF00A80050 /* lltoolselectland.cpp */, |
2665 | 26F529FB051F61DF00A80050 /* lltoolselectrect.cpp */, | 2652 | 26F529FB051F61DF00A80050 /* lltoolselectrect.cpp */, |
2666 | 26F529FA051F61DF00A80050 /* lltoolview.cpp */, | 2653 | 26F529FA051F61DF00A80050 /* lltoolview.cpp */, |
2667 | 26F52A4E051F61DF00A80050 /* lltracker.cpp */, | 2654 | 26F52A4E051F61DF00A80050 /* lltracker.cpp */, |
2668 | 26F52A0E051F61DF00A80050 /* lluploaddialog.cpp */, | 2655 | 26F52A0E051F61DF00A80050 /* lluploaddialog.cpp */, |
2669 | 26F52A0D051F61DF00A80050 /* llurl.cpp */, | 2656 | 26F52A0D051F61DF00A80050 /* llurl.cpp */, |
2657 | 1A89230308B12D1000A04AA9 /* llurlwhitelist.cpp */, | ||
2658 | 1A89230408B12D1000A04AA9 /* llurlwhitelist.h */, | ||
2670 | 26F52A0C051F61DF00A80050 /* lluserauth.cpp */, | 2659 | 26F52A0C051F61DF00A80050 /* lluserauth.cpp */, |
2671 | 26F529A5051F61DF00A80050 /* llvelocitybar.cpp */, | 2660 | 26F529A5051F61DF00A80050 /* llvelocitybar.cpp */, |
2661 | 99BB516D099AC1E9004BF9F2 /* llviewchildren.cpp */, | ||
2662 | 99BB516E099AC1E9004BF9F2 /* llviewchildren.h */, | ||
2663 | 1A5104560ABF60A800520F6D /* llviewerassetstorage.cpp */, | ||
2664 | 1A5104580ABF60BF00520F6D /* llviewerassetstorage.h */, | ||
2672 | 26F529A2051F61DF00A80050 /* llviewercamera.cpp */, | 2665 | 26F529A2051F61DF00A80050 /* llviewercamera.cpp */, |
2666 | 9C1853AD0A91175E00DA7B01 /* llviewercontrol.cpp */, | ||
2667 | EB3EE70F083AC23D002BF676 /* llviewercontrol.h */, | ||
2668 | 91E7BB2105EFCBA40026CC40 /* llviewerdisplay.cpp */, | ||
2669 | 1A83767D0BA2169600F28979 /* llviewergenericmessage.cpp */, | ||
2670 | 1A83767C0BA2169600F28979 /* llviewergenericmessage.h */, | ||
2673 | 26F52A32051F61DF00A80050 /* llviewergesture.cpp */, | 2671 | 26F52A32051F61DF00A80050 /* llviewergesture.cpp */, |
2674 | 26F52A31051F61DF00A80050 /* llviewerimage.cpp */, | 2672 | 26F52A31051F61DF00A80050 /* llviewerimage.cpp */, |
2675 | 26F52A30051F61DF00A80050 /* llviewerimagelist.cpp */, | 2673 | 26F52A30051F61DF00A80050 /* llviewerimagelist.cpp */, |
@@ -2678,20 +2676,32 @@ | |||
2678 | 26F52A38051F61DF00A80050 /* llviewerjointattachment.cpp */, | 2676 | 26F52A38051F61DF00A80050 /* llviewerjointattachment.cpp */, |
2679 | 26F52A37051F61DF00A80050 /* llviewerjointmesh.cpp */, | 2677 | 26F52A37051F61DF00A80050 /* llviewerjointmesh.cpp */, |
2680 | 26F52A36051F61DF00A80050 /* llviewerjointshape.cpp */, | 2678 | 26F52A36051F61DF00A80050 /* llviewerjointshape.cpp */, |
2679 | A3C20E4B0BB0BD12007E872B /* llviewerjoystick.cpp */, | ||
2680 | 91287B4A078DE4B300E958B2 /* llviewerkeyboard.cpp */, | ||
2681 | 91287B4B078DE4B300E958B2 /* llviewerkeyboard.h */, | ||
2681 | 26F52A35051F61DF00A80050 /* llviewerlayer.cpp */, | 2682 | 26F52A35051F61DF00A80050 /* llviewerlayer.cpp */, |
2682 | 26F529E4051F61DF00A80050 /* llviewermenu.cpp */, | 2683 | 26F529E4051F61DF00A80050 /* llviewermenu.cpp */, |
2684 | 1A8870E40BCC5A9500E89AA6 /* llviewermenufile.cpp */, | ||
2685 | 1A8870E30BCC5A9500E89AA6 /* llviewermenufile.h */, | ||
2683 | 26F529E3051F61DF00A80050 /* llviewermessage.cpp */, | 2686 | 26F529E3051F61DF00A80050 /* llviewermessage.cpp */, |
2687 | 1A3143D00A02B701005B87E7 /* llviewernetwork.cpp */, | ||
2684 | 26F529E2051F61DF00A80050 /* llviewerobject.cpp */, | 2688 | 26F529E2051F61DF00A80050 /* llviewerobject.cpp */, |
2685 | 26F529E1051F61DF00A80050 /* llviewerobjectlist.cpp */, | 2689 | 26F529E1051F61DF00A80050 /* llviewerobjectlist.cpp */, |
2686 | 26F529E0051F61DF00A80050 /* llviewerparcelmgr.cpp */, | 2690 | 26F529E0051F61DF00A80050 /* llviewerparcelmgr.cpp */, |
2687 | 26F529DF051F61DF00A80050 /* llviewerparceloverlay.cpp */, | 2691 | 26F529DF051F61DF00A80050 /* llviewerparceloverlay.cpp */, |
2688 | 26F529DE051F61DF00A80050 /* llviewerpartsim.cpp */, | 2692 | 26F529DE051F61DF00A80050 /* llviewerpartsim.cpp */, |
2689 | 26F529DD051F61DF00A80050 /* llviewerpartsource.cpp */, | 2693 | 26F529DD051F61DF00A80050 /* llviewerpartsource.cpp */, |
2694 | A241CB7B07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp */, | ||
2695 | A241CB7C07B3DE0D001A39E3 /* llviewerprecompiledheaders.h */, | ||
2690 | 26F529DC051F61DF00A80050 /* llviewerregion.cpp */, | 2696 | 26F529DC051F61DF00A80050 /* llviewerregion.cpp */, |
2691 | 26F529DB051F61DF00A80050 /* llviewerreputation.cpp */, | 2697 | 26F529DB051F61DF00A80050 /* llviewerreputation.cpp */, |
2692 | 26F529DA051F61DF00A80050 /* llviewerstats.cpp */, | 2698 | 26F529DA051F61DF00A80050 /* llviewerstats.cpp */, |
2699 | EB3EE712083AC23D002BF676 /* llviewertexteditor.cpp */, | ||
2700 | EB3EE713083AC23D002BF676 /* llviewertexteditor.h */, | ||
2693 | 26F529D9051F61DF00A80050 /* llviewertextureanim.cpp */, | 2701 | 26F529D9051F61DF00A80050 /* llviewertextureanim.cpp */, |
2694 | 26F529D8051F61DF00A80050 /* llviewerthrottle.cpp */, | 2702 | 26F529D8051F61DF00A80050 /* llviewerthrottle.cpp */, |
2703 | EB3EE714083AC23D002BF676 /* llvieweruictrlfactory.cpp */, | ||
2704 | EB3EE715083AC23D002BF676 /* llvieweruictrlfactory.h */, | ||
2695 | 26F529D7051F61DF00A80050 /* llviewervisualparam.cpp */, | 2705 | 26F529D7051F61DF00A80050 /* llviewervisualparam.cpp */, |
2696 | 26F529D6051F61DF00A80050 /* llviewerwindow.cpp */, | 2706 | 26F529D6051F61DF00A80050 /* llviewerwindow.cpp */, |
2697 | 26F529D5051F61DF00A80050 /* llvlcomposition.cpp */, | 2707 | 26F529D5051F61DF00A80050 /* llvlcomposition.cpp */, |
@@ -2701,8 +2711,14 @@ | |||
2701 | 26F529D1051F61DF00A80050 /* llvoclouds.cpp */, | 2711 | 26F529D1051F61DF00A80050 /* llvoclouds.cpp */, |
2702 | 26F529D0051F61DF00A80050 /* llvograss.cpp */, | 2712 | 26F529D0051F61DF00A80050 /* llvograss.cpp */, |
2703 | 26F529CF051F61DF00A80050 /* llvoground.cpp */, | 2713 | 26F529CF051F61DF00A80050 /* llvoground.cpp */, |
2714 | 99E43516092D64E6003AE728 /* llvoinventorylistener.cpp */, | ||
2715 | 99E43515092D64E6003AE728 /* llvoinventorylistener.h */, | ||
2716 | 910D255206484F1A0034E66F /* llvolumesliderctrl.cpp */, | ||
2717 | EB3EE716083AC23D002BF676 /* llvolumesliderctrl.h */, | ||
2704 | 26F529CD051F61DF00A80050 /* llvopartgroup.cpp */, | 2718 | 26F529CD051F61DF00A80050 /* llvopartgroup.cpp */, |
2705 | 26F529CC051F61DF00A80050 /* llvosky.cpp */, | 2719 | 26F529CC051F61DF00A80050 /* llvosky.cpp */, |
2720 | A3077C0509DCB8140059ED75 /* llvostars.cpp */, | ||
2721 | A3077C0609DCB8140059ED75 /* llvostars.h */, | ||
2706 | 26F529CB051F61DF00A80050 /* llvosurfacepatch.cpp */, | 2722 | 26F529CB051F61DF00A80050 /* llvosurfacepatch.cpp */, |
2707 | 26F529CA051F61DF00A80050 /* llvotextbubble.cpp */, | 2723 | 26F529CA051F61DF00A80050 /* llvotextbubble.cpp */, |
2708 | 26F529C9051F61DF00A80050 /* llvotree.cpp */, | 2724 | 26F529C9051F61DF00A80050 /* llvotree.cpp */, |
@@ -2711,21 +2727,20 @@ | |||
2711 | 26F529C5051F61DF00A80050 /* llwaterpatch.cpp */, | 2727 | 26F529C5051F61DF00A80050 /* llwaterpatch.cpp */, |
2712 | 26F529C4051F61DF00A80050 /* llwearable.cpp */, | 2728 | 26F529C4051F61DF00A80050 /* llwearable.cpp */, |
2713 | 26F529C3051F61DF00A80050 /* llwearablelist.cpp */, | 2729 | 26F529C3051F61DF00A80050 /* llwearablelist.cpp */, |
2730 | 1AF7C1E30AF6C44800C4BF4A /* llweb.cpp */, | ||
2731 | 1AE5D7100844FBD300278605 /* llwebbrowserctrl.cpp */, | ||
2732 | 1AE5D70F0844FBD200278605 /* llwebbrowserctrl.h */, | ||
2714 | 26F529C2051F61DF00A80050 /* llwind.cpp */, | 2733 | 26F529C2051F61DF00A80050 /* llwind.cpp */, |
2715 | 26F529C1051F61DF00A80050 /* llworld.cpp */, | 2734 | 26F529C1051F61DF00A80050 /* llworld.cpp */, |
2716 | 26F529C0051F61DF00A80050 /* llworldmap.cpp */, | 2735 | 26F529C0051F61DF00A80050 /* llworldmap.cpp */, |
2717 | 26F529BF051F61DF00A80050 /* llworldmapview.cpp */, | 2736 | 26F529BF051F61DF00A80050 /* llworldmapview.cpp */, |
2737 | 99BB516A099AC1AE004BF9F2 /* llxmlrpctransaction.cpp */, | ||
2738 | 99BB5169099AC1AE004BF9F2 /* llxmlrpctransaction.h */, | ||
2739 | 019200F004DD7D2B00A800A7 /* macview_Prefix.h */, | ||
2718 | 26F529BE051F61DF00A80050 /* moviemaker.cpp */, | 2740 | 26F529BE051F61DF00A80050 /* moviemaker.cpp */, |
2719 | 26F529BD051F61DF00A80050 /* noise.cpp */, | 2741 | 26F529BD051F61DF00A80050 /* noise.cpp */, |
2720 | 26F529BA051F61DF00A80050 /* pipeline.cpp */, | 2742 | 26F529BA051F61DF00A80050 /* pipeline.cpp */, |
2721 | 26E79A760520BEC400A80050 /* viewer.cpp */, | 2743 | 26E79A760520BEC400A80050 /* viewer.cpp */, |
2722 | 8B2ECFA00534C21A00A80059 /* llfirstuse.cpp */, | ||
2723 | 91D530CE056EE55C00CD1AD7 /* lloverlaybar.cpp */, | ||
2724 | 91D530D2056EE57900CD1AD7 /* llchatbar.cpp */, | ||
2725 | 9130442A057428D800571B0A /* llfloaterbuycontents.cpp */, | ||
2726 | 91D61FD0057ED9DF005B4B69 /* llnotify.cpp */, | ||
2727 | 91C8C05405922AC100633E8C /* llfloatergodtools.cpp */, | ||
2728 | E34C14730AE6A3F0009BF4DE /* llmapresponders.cpp */, | ||
2729 | ); | 2744 | ); |
2730 | name = newview; | 2745 | name = newview; |
2731 | sourceTree = "<group>"; | 2746 | sourceTree = "<group>"; |
@@ -3466,6 +3481,10 @@ | |||
3466 | 61923DA4074AE4F2005E1F34 /* llimagetga.cpp */, | 3481 | 61923DA4074AE4F2005E1F34 /* llimagetga.cpp */, |
3467 | 61923DA5074AE4F2005E1F34 /* llimagetga.h */, | 3482 | 61923DA5074AE4F2005E1F34 /* llimagetga.h */, |
3468 | 61923DA8074AE4F3005E1F34 /* llmapimagetype.h */, | 3483 | 61923DA8074AE4F3005E1F34 /* llmapimagetype.h */, |
3484 | 8833693B0C18AF33007F52DA /* llimagepng.cpp */, | ||
3485 | 8833693C0C18AF33007F52DA /* llpngwrapper.cpp */, | ||
3486 | 8833693D0C18AF33007F52DA /* llpngwrapper.h */, | ||
3487 | 8833693E0C18AF33007F52DA /* llimagepng.h */, | ||
3469 | ); | 3488 | ); |
3470 | name = llimage; | 3489 | name = llimage; |
3471 | path = ../llimage; | 3490 | path = ../llimage; |
@@ -3860,6 +3879,7 @@ | |||
3860 | FDAA36C209B919F600FBF1CA /* libmx.dylib */, | 3879 | FDAA36C209B919F600FBF1CA /* libmx.dylib */, |
3861 | FDAA36B609B919AD00FBF1CA /* libssl.dylib */, | 3880 | FDAA36B609B919AD00FBF1CA /* libssl.dylib */, |
3862 | FDAA36BE09B919DF00FBF1CA /* libz.dylib */, | 3881 | FDAA36BE09B919DF00FBF1CA /* libz.dylib */, |
3882 | 88A95BC90C14D92C0027E363 /* libresolv.dylib */, | ||
3863 | 26E79A630520BC6D00A80050 /* libSystem.dylib */, | 3883 | 26E79A630520BC6D00A80050 /* libSystem.dylib */, |
3864 | ); | 3884 | ); |
3865 | name = "System Libraries"; | 3885 | name = "System Libraries"; |
@@ -3879,6 +3899,7 @@ | |||
3879 | FDE8765409BEA39600AF6316 /* libogg.a */, | 3899 | FDE8765409BEA39600AF6316 /* libogg.a */, |
3880 | 99F998FA0BAA34B90034E41C /* libopenjpeg.a */, | 3900 | 99F998FA0BAA34B90034E41C /* libopenjpeg.a */, |
3881 | FDE8765509BEA39600AF6316 /* libvorbis.a */, | 3901 | FDE8765509BEA39600AF6316 /* libvorbis.a */, |
3902 | 88AA282B0C17720D0032DF53 /* libpng12.a */, | ||
3882 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */, | 3903 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */, |
3883 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */, | 3904 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */, |
3884 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */, | 3905 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */, |
@@ -4100,7 +4121,7 @@ | |||
4100 | ); | 4121 | ); |
4101 | runOnlyForDeploymentPostprocessing = 0; | 4122 | runOnlyForDeploymentPostprocessing = 0; |
4102 | shellPath = /bin/sh; | 4123 | shellPath = /bin/sh; |
4103 | shellScript = "# Glue together intel and ppc versions of .a files\nLIBS=\"apr-1 aprutil-1 expat ogg vorbis fmod freetype cares llcurl lljpeg openjpeg vorbisenc vorbisfile xmlrpc\"\nLIBDIR=\"${SRCROOT}/../../libraries\"\n\ncd \"${LIBDIR}\"\n\nif [ \\! -e ppc-darwin ]\nthen\n\tln -s powerpc-darwin ppc-darwin\nfi\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}\"\n\nfor i in ${LIBS}; do\n\tNEED_UPDATE=false\n\tARCH_COUNT=0\n\tOUT=\"${BUILT_PRODUCTS_DIR}/lib$i.a\"\n\tTEST_ARCH=`echo \"${ARCHS}\" | grep i386`\n\tif [ -n \"$TEST_ARCH\" ]; then\n\t\tIN_i386=\"i386-darwin/lib_release/lib$i.a\"\n\t\tARCH_COUNT=`expr $ARCH_COUNT \"+\" 1`\n\t\tif [ \"$IN_i386\" -nt \"$OUT\" ]; then\n\t\t\tNEED_UPDATE=true\n\t\tfi\n\tfi\n\tTEST_ARCH=`echo \"${ARCHS}\" | grep ppc`\n\tif [ -n \"$TEST_ARCH\" ]; then\n\t\tIN_ppc=\"ppc-darwin/lib_release/lib$i.a\"\n\t\tARCH_COUNT=`expr $ARCH_COUNT \"+\" 1`\n\t\tif [ \"$IN_ppc\" -nt \"$OUT\" ]; then\n\t\t\tNEED_UPDATE=true\n\t\tfi\n\tfi\n\tif [ $ARCH_COUNT -eq 0 ]; then\n\t\techo \"No supported architectures found.\"\n\t\texit 1\n\tfi\n\tif [ ! -f \"$OUT\" -o NEED_UPDATE = \"true\" ]; then\n\t\techo Preparing third party library lib$i.a\n\t\tif [ $ARCH_COUNT -eq 1 ]; then\n\t\t\tIN=\"$IN_i386\"\"$IN_ppc\"\n\t\t\t#echo cp \"$IN\" \"$OUT\"\n\t\t\tcp \"$IN\" \"$OUT\"\n\t\telse\n\t\t\t#echo libtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\t\t\tlibtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\t\tfi\n\t\tranlib \"$OUT\"\n\telse\n\t\techo Third party library lib$i.a is up to date\n\tfi\ndone\n"; | 4124 | shellScript = "# Glue together intel and ppc versions of .a files\nLIBS=\"apr-1 aprutil-1 expat ogg vorbis fmod freetype cares llcurl lljpeg png12 openjpeg vorbisenc vorbisfile xmlrpc\"\nLIBDIR=\"${SRCROOT}/../../libraries\"\n\ncd \"${LIBDIR}\"\n\nif [ \\! -e ppc-darwin ]\nthen\n\tln -s powerpc-darwin ppc-darwin\nfi\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}\"\n\nfor i in ${LIBS}; do\n\tNEED_UPDATE=false\n\tARCH_COUNT=0\n\tOUT=\"${BUILT_PRODUCTS_DIR}/lib$i.a\"\n\tTEST_ARCH=`echo \"${ARCHS}\" | grep i386`\n\tif [ -n \"$TEST_ARCH\" ]; then\n\t\tIN_i386=\"i386-darwin/lib_release/lib$i.a\"\n\t\tARCH_COUNT=`expr $ARCH_COUNT \"+\" 1`\n\t\tif [ \"$IN_i386\" -nt \"$OUT\" ]; then\n\t\t\tNEED_UPDATE=true\n\t\tfi\n\tfi\n\tTEST_ARCH=`echo \"${ARCHS}\" | grep ppc`\n\tif [ -n \"$TEST_ARCH\" ]; then\n\t\tIN_ppc=\"ppc-darwin/lib_release/lib$i.a\"\n\t\tARCH_COUNT=`expr $ARCH_COUNT \"+\" 1`\n\t\tif [ \"$IN_ppc\" -nt \"$OUT\" ]; then\n\t\t\tNEED_UPDATE=true\n\t\tfi\n\tfi\n\tif [ $ARCH_COUNT -eq 0 ]; then\n\t\techo \"No supported architectures found.\"\n\t\texit 1\n\tfi\n\tif [ ! -f \"$OUT\" -o NEED_UPDATE = \"true\" ]; then\n\t\techo Preparing third party library lib$i.a\n\t\tif [ $ARCH_COUNT -eq 1 ]; then\n\t\t\tIN=\"$IN_i386\"\"$IN_ppc\"\n\t\t\t#echo cp \"$IN\" \"$OUT\"\n\t\t\tcp \"$IN\" \"$OUT\"\n\t\telse\n\t\t\t#echo libtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\t\t\tlibtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\t\tfi\n\t\tranlib \"$OUT\"\n\telse\n\t\techo Third party library lib$i.a is up to date\n\tfi\ndone\n"; |
4104 | }; | 4125 | }; |
4105 | /* End PBXShellScriptBuildPhase section */ | 4126 | /* End PBXShellScriptBuildPhase section */ |
4106 | 4127 | ||
@@ -4552,6 +4573,9 @@ | |||
4552 | A3C20E4C0BB0BD12007E872B /* llviewerjoystick.cpp in Sources */, | 4573 | A3C20E4C0BB0BD12007E872B /* llviewerjoystick.cpp in Sources */, |
4553 | 1A8870D50BCC5A6300E89AA6 /* llinventorytype.cpp in Sources */, | 4574 | 1A8870D50BCC5A6300E89AA6 /* llinventorytype.cpp in Sources */, |
4554 | 1A8870E50BCC5A9500E89AA6 /* llviewermenufile.cpp in Sources */, | 4575 | 1A8870E50BCC5A9500E89AA6 /* llviewermenufile.cpp in Sources */, |
4576 | 88A95BB20C14D5FC0027E363 /* llsrv.cpp in Sources */, | ||
4577 | 8833693F0C18AF33007F52DA /* llimagepng.cpp in Sources */, | ||
4578 | 883369400C18AF33007F52DA /* llpngwrapper.cpp in Sources */, | ||
4555 | ); | 4579 | ); |
4556 | runOnlyForDeploymentPostprocessing = 0; | 4580 | runOnlyForDeploymentPostprocessing = 0; |
4557 | }; | 4581 | }; |
@@ -4906,10 +4930,26 @@ | |||
4906 | ); | 4930 | ); |
4907 | GCC_ALTIVEC_EXTENSIONS = YES; | 4931 | GCC_ALTIVEC_EXTENSIONS = YES; |
4908 | GCC_OPTIMIZATION_LEVEL = 3; | 4932 | GCC_OPTIMIZATION_LEVEL = 3; |
4933 | GCC_TREAT_WARNINGS_AS_ERRORS = YES; | ||
4909 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; | 4934 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; |
4935 | GCC_WARN_ABOUT_MISSING_NEWLINE = YES; | ||
4936 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; | ||
4937 | GCC_WARN_ABOUT_RETURN_TYPE = YES; | ||
4938 | GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; | ||
4910 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; | 4939 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; |
4940 | GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; | ||
4941 | GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; | ||
4942 | GCC_WARN_MISSING_PARENTHESES = YES; | ||
4943 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | ||
4911 | GCC_WARN_SHADOW = NO; | 4944 | GCC_WARN_SHADOW = NO; |
4945 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; | ||
4946 | GCC_WARN_UNINITIALIZED_AUTOS = NO; | ||
4912 | GCC_WARN_UNKNOWN_PRAGMAS = NO; | 4947 | GCC_WARN_UNKNOWN_PRAGMAS = NO; |
4948 | GCC_WARN_UNUSED_FUNCTION = YES; | ||
4949 | GCC_WARN_UNUSED_LABEL = YES; | ||
4950 | GCC_WARN_UNUSED_PARAMETER = YES; | ||
4951 | GCC_WARN_UNUSED_VALUE = YES; | ||
4952 | GCC_WARN_UNUSED_VARIABLE = YES; | ||
4913 | HEADER_SEARCH_PATHS = ( | 4953 | HEADER_SEARCH_PATHS = ( |
4914 | "../../libraries/$(arch)-darwin/include", | 4954 | "../../libraries/$(arch)-darwin/include", |
4915 | ../../libraries/include, | 4955 | ../../libraries/include, |
@@ -5150,10 +5190,26 @@ | |||
5150 | buildSettings = { | 5190 | buildSettings = { |
5151 | GCC_ALTIVEC_EXTENSIONS = YES; | 5191 | GCC_ALTIVEC_EXTENSIONS = YES; |
5152 | GCC_OPTIMIZATION_LEVEL = 0; | 5192 | GCC_OPTIMIZATION_LEVEL = 0; |
5193 | GCC_TREAT_WARNINGS_AS_ERRORS = YES; | ||
5153 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; | 5194 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; |
5195 | GCC_WARN_ABOUT_MISSING_NEWLINE = YES; | ||
5196 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; | ||
5197 | GCC_WARN_ABOUT_RETURN_TYPE = YES; | ||
5198 | GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; | ||
5154 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; | 5199 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; |
5200 | GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; | ||
5201 | GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; | ||
5202 | GCC_WARN_MISSING_PARENTHESES = YES; | ||
5203 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | ||
5155 | GCC_WARN_SHADOW = NO; | 5204 | GCC_WARN_SHADOW = NO; |
5205 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; | ||
5206 | GCC_WARN_UNINITIALIZED_AUTOS = NO; | ||
5156 | GCC_WARN_UNKNOWN_PRAGMAS = NO; | 5207 | GCC_WARN_UNKNOWN_PRAGMAS = NO; |
5208 | GCC_WARN_UNUSED_FUNCTION = YES; | ||
5209 | GCC_WARN_UNUSED_LABEL = YES; | ||
5210 | GCC_WARN_UNUSED_PARAMETER = YES; | ||
5211 | GCC_WARN_UNUSED_VALUE = YES; | ||
5212 | GCC_WARN_UNUSED_VARIABLE = YES; | ||
5157 | HEADER_SEARCH_PATHS = ( | 5213 | HEADER_SEARCH_PATHS = ( |
5158 | "../../libraries/$(arch)-darwin/include", | 5214 | "../../libraries/$(arch)-darwin/include", |
5159 | ../../libraries/include, | 5215 | ../../libraries/include, |
@@ -5188,10 +5244,26 @@ | |||
5188 | buildSettings = { | 5244 | buildSettings = { |
5189 | GCC_ALTIVEC_EXTENSIONS = YES; | 5245 | GCC_ALTIVEC_EXTENSIONS = YES; |
5190 | GCC_OPTIMIZATION_LEVEL = 3; | 5246 | GCC_OPTIMIZATION_LEVEL = 3; |
5247 | GCC_TREAT_WARNINGS_AS_ERRORS = YES; | ||
5191 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; | 5248 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; |
5249 | GCC_WARN_ABOUT_MISSING_NEWLINE = YES; | ||
5250 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; | ||
5251 | GCC_WARN_ABOUT_RETURN_TYPE = YES; | ||
5252 | GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; | ||
5192 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; | 5253 | GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; |
5254 | GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO; | ||
5255 | GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; | ||
5256 | GCC_WARN_MISSING_PARENTHESES = YES; | ||
5257 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | ||
5193 | GCC_WARN_SHADOW = NO; | 5258 | GCC_WARN_SHADOW = NO; |
5259 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; | ||
5260 | GCC_WARN_UNINITIALIZED_AUTOS = NO; | ||
5194 | GCC_WARN_UNKNOWN_PRAGMAS = NO; | 5261 | GCC_WARN_UNKNOWN_PRAGMAS = NO; |
5262 | GCC_WARN_UNUSED_FUNCTION = YES; | ||
5263 | GCC_WARN_UNUSED_LABEL = YES; | ||
5264 | GCC_WARN_UNUSED_PARAMETER = YES; | ||
5265 | GCC_WARN_UNUSED_VALUE = YES; | ||
5266 | GCC_WARN_UNUSED_VARIABLE = YES; | ||
5195 | HEADER_SEARCH_PATHS = ( | 5267 | HEADER_SEARCH_PATHS = ( |
5196 | "../../libraries/$(arch)-darwin/include", | 5268 | "../../libraries/$(arch)-darwin/include", |
5197 | ../../libraries/include, | 5269 | ../../libraries/include, |
diff --git a/linden/indra/newview/newview.vcproj b/linden/indra/newview/newview.vcproj index 699a2bc..ae0c02d 100644 --- a/linden/indra/newview/newview.vcproj +++ b/linden/indra/newview/newview.vcproj | |||
@@ -20,7 +20,7 @@ | |||
20 | <Tool | 20 | <Tool |
21 | Name="VCCLCompilerTool" | 21 | Name="VCCLCompilerTool" |
22 | Optimization="0" | 22 | Optimization="0" |
23 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime"" | 23 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" |
24 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 24 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
25 | MinimalRebuild="FALSE" | 25 | MinimalRebuild="FALSE" |
26 | BasicRuntimeChecks="3" | 26 | BasicRuntimeChecks="3" |
@@ -37,7 +37,7 @@ | |||
37 | Name="VCCustomBuildTool"/> | 37 | Name="VCCustomBuildTool"/> |
38 | <Tool | 38 | <Tool |
39 | Name="VCLinkerTool" | 39 | Name="VCLinkerTool" |
40 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 40 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
41 | OutputFile="$(ConfigurationName)/debugview.exe" | 41 | OutputFile="$(ConfigurationName)/debugview.exe" |
42 | LinkIncremental="2" | 42 | LinkIncremental="2" |
43 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 43 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
@@ -84,7 +84,7 @@ | |||
84 | EnableIntrinsicFunctions="TRUE" | 84 | EnableIntrinsicFunctions="TRUE" |
85 | OptimizeForProcessor="3" | 85 | OptimizeForProcessor="3" |
86 | OptimizeForWindowsApplication="TRUE" | 86 | OptimizeForWindowsApplication="TRUE" |
87 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime"" | 87 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" |
88 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 88 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
89 | StringPooling="TRUE" | 89 | StringPooling="TRUE" |
90 | RuntimeLibrary="0" | 90 | RuntimeLibrary="0" |
@@ -100,7 +100,7 @@ | |||
100 | Name="VCCustomBuildTool"/> | 100 | Name="VCCustomBuildTool"/> |
101 | <Tool | 101 | <Tool |
102 | Name="VCLinkerTool" | 102 | Name="VCLinkerTool" |
103 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 103 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
104 | OutputFile="$(ConfigurationName)/newview.exe" | 104 | OutputFile="$(ConfigurationName)/newview.exe" |
105 | LinkIncremental="2" | 105 | LinkIncremental="2" |
106 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 106 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -142,7 +142,7 @@ | |||
142 | CharacterSet="1"> | 142 | CharacterSet="1"> |
143 | <Tool | 143 | <Tool |
144 | Name="VCCLCompilerTool" | 144 | Name="VCCLCompilerTool" |
145 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime"" | 145 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" |
146 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 146 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
147 | RuntimeLibrary="0" | 147 | RuntimeLibrary="0" |
148 | StructMemberAlignment="0" | 148 | StructMemberAlignment="0" |
@@ -160,7 +160,7 @@ | |||
160 | Outputs="$(TargetFileName)"/> | 160 | Outputs="$(TargetFileName)"/> |
161 | <Tool | 161 | <Tool |
162 | Name="VCLinkerTool" | 162 | Name="VCLinkerTool" |
163 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 163 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
164 | OutputFile="$(ConfigurationName)/SecondLife.exe" | 164 | OutputFile="$(ConfigurationName)/SecondLife.exe" |
165 | LinkIncremental="0" | 165 | LinkIncremental="0" |
166 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" | 166 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -203,7 +203,7 @@ | |||
203 | <Tool | 203 | <Tool |
204 | Name="VCCLCompilerTool" | 204 | Name="VCCLCompilerTool" |
205 | Optimization="0" | 205 | Optimization="0" |
206 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime"" | 206 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" |
207 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 207 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
208 | RuntimeLibrary="0" | 208 | RuntimeLibrary="0" |
209 | StructMemberAlignment="0" | 209 | StructMemberAlignment="0" |
@@ -218,7 +218,7 @@ | |||
218 | Name="VCCustomBuildTool"/> | 218 | Name="VCCustomBuildTool"/> |
219 | <Tool | 219 | <Tool |
220 | Name="VCLinkerTool" | 220 | Name="VCLinkerTool" |
221 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 221 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib png12.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
222 | OutputFile="$(ConfigurationName)/newview_noopt.exe" | 222 | OutputFile="$(ConfigurationName)/newview_noopt.exe" |
223 | LinkIncremental="2" | 223 | LinkIncremental="2" |
224 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" | 224 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -947,6 +947,9 @@ | |||
947 | RelativePath=".\llsprite.cpp"> | 947 | RelativePath=".\llsprite.cpp"> |
948 | </File> | 948 | </File> |
949 | <File | 949 | <File |
950 | RelativePath=".\llsrv.cpp"> | ||
951 | </File> | ||
952 | <File | ||
950 | RelativePath=".\llstartup.cpp"> | 953 | RelativePath=".\llstartup.cpp"> |
951 | </File> | 954 | </File> |
952 | <File | 955 | <File |
@@ -1972,6 +1975,9 @@ | |||
1972 | RelativePath=".\llsprite.h"> | 1975 | RelativePath=".\llsprite.h"> |
1973 | </File> | 1976 | </File> |
1974 | <File | 1977 | <File |
1978 | RelativePath=".\llsrv.h"> | ||
1979 | </File> | ||
1980 | <File | ||
1975 | RelativePath=".\llstartup.h"> | 1981 | RelativePath=".\llstartup.h"> |
1976 | </File> | 1982 | </File> |
1977 | <File | 1983 | <File |
diff --git a/linden/indra/newview/newview_vc8.vcproj b/linden/indra/newview/newview_vc8.vcproj index 8b55869..445ebd9 100644 --- a/linden/indra/newview/newview_vc8.vcproj +++ b/linden/indra/newview/newview_vc8.vcproj | |||
@@ -67,7 +67,7 @@ | |||
67 | /> | 67 | /> |
68 | <Tool | 68 | <Tool |
69 | Name="VCLinkerTool" | 69 | Name="VCLinkerTool" |
70 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 70 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llmozlib-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
71 | OutputFile="$(ConfigurationName)/debugview.exe" | 71 | OutputFile="$(ConfigurationName)/debugview.exe" |
72 | LinkIncremental="2" | 72 | LinkIncremental="2" |
73 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 73 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
@@ -158,7 +158,7 @@ | |||
158 | /> | 158 | /> |
159 | <Tool | 159 | <Tool |
160 | Name="VCLinkerTool" | 160 | Name="VCLinkerTool" |
161 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 161 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
162 | OutputFile="$(ConfigurationName)/newview.exe" | 162 | OutputFile="$(ConfigurationName)/newview.exe" |
163 | LinkIncremental="2" | 163 | LinkIncremental="2" |
164 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 164 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -248,7 +248,7 @@ | |||
248 | /> | 248 | /> |
249 | <Tool | 249 | <Tool |
250 | Name="VCLinkerTool" | 250 | Name="VCLinkerTool" |
251 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 251 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
252 | OutputFile="$(ConfigurationName)/SecondLife.exe" | 252 | OutputFile="$(ConfigurationName)/SecondLife.exe" |
253 | LinkIncremental="0" | 253 | LinkIncremental="0" |
254 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" | 254 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -337,7 +337,7 @@ | |||
337 | /> | 337 | /> |
338 | <Tool | 338 | <Tool |
339 | Name="VCLinkerTool" | 339 | Name="VCLinkerTool" |
340 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib" | 340 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib LibOpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" |
341 | OutputFile="$(ConfigurationName)/newview_noopt.exe" | 341 | OutputFile="$(ConfigurationName)/newview_noopt.exe" |
342 | LinkIncremental="2" | 342 | LinkIncremental="2" |
343 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" | 343 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -1300,6 +1300,10 @@ | |||
1300 | > | 1300 | > |
1301 | </File> | 1301 | </File> |
1302 | <File | 1302 | <File |
1303 | RelativePath=".\llsrv.cpp" | ||
1304 | > | ||
1305 | </File> | ||
1306 | <File | ||
1303 | RelativePath=".\llstartup.cpp" | 1307 | RelativePath=".\llstartup.cpp" |
1304 | > | 1308 | > |
1305 | </File> | 1309 | </File> |
@@ -2662,6 +2666,10 @@ | |||
2662 | > | 2666 | > |
2663 | </File> | 2667 | </File> |
2664 | <File | 2668 | <File |
2669 | RelativePath=".\llsrv.h" | ||
2670 | > | ||
2671 | </File> | ||
2672 | <File | ||
2665 | RelativePath=".\llstartup.h" | 2673 | RelativePath=".\llstartup.h" |
2666 | > | 2674 | > |
2667 | </File> | 2675 | </File> |
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 408be2e..7d03e64 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp | |||
@@ -1406,7 +1406,7 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera) | |||
1406 | 1406 | ||
1407 | if (gHideSelectedObjects) | 1407 | if (gHideSelectedObjects) |
1408 | { | 1408 | { |
1409 | if (drawablep->getVObj() && | 1409 | if (drawablep->getVObj().notNull() && |
1410 | drawablep->getVObj()->isSelected()) | 1410 | drawablep->getVObj()->isSelected()) |
1411 | { | 1411 | { |
1412 | return; | 1412 | return; |
@@ -1435,7 +1435,7 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera) | |||
1435 | } | 1435 | } |
1436 | else if (drawablep->isAvatar() && drawablep->isVisible()) | 1436 | else if (drawablep->isAvatar() && drawablep->isVisible()) |
1437 | { | 1437 | { |
1438 | LLVOAvatar* vobj = (LLVOAvatar*) drawablep->getVObj(); | 1438 | LLVOAvatar* vobj = (LLVOAvatar*) drawablep->getVObj().get(); |
1439 | vobj->updateVisibility(FALSE); | 1439 | vobj->updateVisibility(FALSE); |
1440 | } | 1440 | } |
1441 | 1441 | ||
@@ -3498,7 +3498,7 @@ BOOL LLPipeline::getRenderSoundBeacons(void*) | |||
3498 | LLViewerObject* LLPipeline::pickObject(const LLVector3 &start, const LLVector3 &end, LLVector3 &collision) | 3498 | LLViewerObject* LLPipeline::pickObject(const LLVector3 &start, const LLVector3 &end, LLVector3 &collision) |
3499 | { | 3499 | { |
3500 | LLDrawable* drawable = mObjectPartition[PARTITION_VOLUME]->pickDrawable(start, end, collision); | 3500 | LLDrawable* drawable = mObjectPartition[PARTITION_VOLUME]->pickDrawable(start, end, collision); |
3501 | return drawable ? drawable->getVObj() : NULL; | 3501 | return drawable ? drawable->getVObj().get() : NULL; |
3502 | } | 3502 | } |
3503 | 3503 | ||
3504 | LLSpatialPartition* LLPipeline::getSpatialPartition(LLViewerObject* vobj) | 3504 | LLSpatialPartition* LLPipeline::getSpatialPartition(LLViewerObject* vobj) |
diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index 2f7971c..76f356b 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt | |||
@@ -1,3 +1,71 @@ | |||
1 | Release Notes for Second Life 1.17.1(0) June 22, 2007 | ||
2 | ===================================== | ||
3 | Changes: | ||
4 | * VWR-650: Make "Give money" permissions look different than the other permissions | ||
5 | * VWR-427: Added new menu item: Tools > Edit Linked Parts | ||
6 | * VWR-79: PNG image support submission | ||
7 | * Sculpties now include a one-time explanation the first time a sculptie is created. | ||
8 | * Client and Server menus now have a one-time dialog box to explain what they are. | ||
9 | * "Skip 'Show next time' Dialogs..." button added to Preferences > Popups tab to skip all one time dialog boxes. | ||
10 | * Added Japanese and German language installers (Windows only) | ||
11 | * The version of Mozilla used in the client is updated to 1.8.0.12 | ||
12 | * F1 help now opens an external browser to the Second Life support web site. | ||
13 | * F1 Help will now open an external browser to language specific support websites for Japanese, Korean and Portuguese based on client's language. | ||
14 | * Delay added to folder opening while dragging items in an inventory window with a vertical scroll bar. | ||
15 | * Default messages for postcards are replaced when adding text. | ||
16 | * In the Inventory window the Filter menu is consolidated into the File menu. | ||
17 | * The sculptie texture picker UI has changed to differentiate it from the surface texture picker. | ||
18 | |||
19 | LSL changes: | ||
20 | * Added support for alternate sculptie edge stitching. | ||
21 | * VWR-68: LSL constant expression folding and proper constant parsing | ||
22 | |||
23 | Bug fixes: | ||
24 | * Fixed MISC-217: Accounts with negative L$ balance can't buy L$0 freebie | ||
25 | * Fixed SVC-306: Objects are visible at <0,0,0> (sometimes before moving to their correct position) | ||
26 | * Fixed SVC-225: Searching for Classifieds with blank field results no results | ||
27 | * Fixed VWR-1296: Minor memory leak in lltexturecache.cpp | ||
28 | * Fixed VWR-1223: Camera Controls keyboard shortcuts broke | ||
29 | * Fixed VWR-1221: Possible crash in llfloaterland.cpp / line 1556 | ||
30 | * Fixed VWR-1217: Built-in avatar animations stop suddenly, rather than fading out. (jerky head movement) | ||
31 | * Fixed VWR-1203: Avatars eyes are constantly crossing in 1.17 | ||
32 | * Fixed VWR-1170: LLMuteList::loadFromFile() improperly parses the mute list returned from the service | ||
33 | * Fixed VWR-1140: About Land floater is not resizable, ban and access lists too small | ||
34 | * Fixed VWR-1049: Trivial sizeof() miscalculatuion results in incomplete copying of CPU Brand ID string in CProcessor::AnalyzeAMDProcessor() | ||
35 | * Fixed VWR-1044: Unchecking "Go Away/AFK When Idle" doesn't work when manually setting Away status | ||
36 | * Fixed VWR-944: Boost inclusion is inconsistent | ||
37 | * Fixed VWR-941: Reading length data for a four-byte Variable template message misstores the length | ||
38 | * Fixed VWR-938: ELFIO is technically optional, make this easy to capitalise on | ||
39 | * Fixed VWR-876: sculpt texture map does not load or low priority when the texture itself is not visible in viewer frame or not cached | ||
40 | * Fixed VWR-873: Dead members "eVertexDataMask;" in various objects | ||
41 | * Fixed VWR-856: llvfs.cpp: possible loss of memory blocks in LLVFS:audit() | ||
42 | * Fixed VWR-822: "Create new..." clothing buttons don't auto-wear items | ||
43 | * Fixed VWR-796: llStopSound() not working | ||
44 | * Fixed VWR-746: Incorrect menu item referred to when member of maximum number of groups and a group invite is received | ||
45 | * Fixed VWR-660: When turning off Flexible Object rendering, flexible objects become permanently invisible | ||
46 | * Fixed VWR-652: A harmless compiler warning in indra.l.cpp | ||
47 | * Fixed VWR-606: Some source files (llprocessor.cpp and llsdserialize_tut.cpp) contain non-ASCII characters | ||
48 | * Fixed VWR-597: Abuse report tool should autofill abuser name when reporting an object | ||
49 | * Fixed VWR-560: Crash in llscrolllistctl.cpp when sorting scroll list | ||
50 | * Fixed VWR-459: Unicode supplementary characters typed in from keybaord are not handled properly on Windows (and potentially on Linux) | ||
51 | * Fixed VWR-446: Automatically start renaming new user-created assets and automatically select new user-created folders | ||
52 | * Fixed VWR-383: Chat logs do not have timestamps | ||
53 | * Fixed VWR-364: Viewer memory leak | ||
54 | * Fixed VWR-287: Inconsistent behaviour between agent_slide_left / agent_slide_right, and the rest of the movement functions. | ||
55 | * Fixed VWR-251: Keystrokes are eaten by IME when no text input is possible, on Windows using Japanese | ||
56 | * Fixed VWR-248: Inexplicable folding of Avatars such that they are walking around with their heads up their arses | ||
57 | * Fixed VWR-247: Viewer generates undesired dialog when IM comes in while minimized | ||
58 | * Fixed VWR-227: If a Find/Search returns no results, the results list is still focused and an attempt is made to select the first result anyway. | ||
59 | * Fixed VWR-218: SConstruct script makes many assumptions that are invalid outside LL | ||
60 | * Fixed VWR-213: Calling DestroyWindow with NULL window handle (win32 version) | ||
61 | * Fixed VWR-207: Textures become increasingly blurry over time on systems with > ~2GB RAM | ||
62 | * Fixed VWR-143: Compiler errors in llwebbrowserctrl.h | ||
63 | * Fixed VWR-132: seg fault in lldrawpool.cpp | ||
64 | * Fixed VWR-119: Zero missing in Sub-unit snap grid. for small fraction like 1/16 and 1/32 | ||
65 | * Fixed VWR-101: Get rid of "Return All" | ||
66 | * Fixed Inventory's "Recent Items" tab settings not persisting across logins | ||
67 | * Fixed line breaks showing up as * in various windows. | ||
68 | |||
1 | Release Notes for Second Life 1.17.0(12) June 13, 2007 | 69 | Release Notes for Second Life 1.17.0(12) June 13, 2007 |
2 | ===================================== | 70 | ===================================== |
3 | Changes: | 71 | Changes: |
diff --git a/linden/indra/newview/res/newViewRes.rc b/linden/indra/newview/res/newViewRes.rc index 0b4a5ba..8315deb 100644 --- a/linden/indra/newview/res/newViewRes.rc +++ b/linden/indra/newview/res/newViewRes.rc | |||
@@ -227,8 +227,8 @@ TOOLPIPETTE CURSOR "toolpipette.cur" | |||
227 | // | 227 | // |
228 | 228 | ||
229 | VS_VERSION_INFO VERSIONINFO | 229 | VS_VERSION_INFO VERSIONINFO |
230 | FILEVERSION 1,17,0,12 | 230 | FILEVERSION 1,17,1,0 |
231 | PRODUCTVERSION 1,17,0,12 | 231 | PRODUCTVERSION 1,17,1,0 |
232 | FILEFLAGSMASK 0x3fL | 232 | FILEFLAGSMASK 0x3fL |
233 | #ifdef _DEBUG | 233 | #ifdef _DEBUG |
234 | FILEFLAGS 0x1L | 234 | FILEFLAGS 0x1L |
@@ -245,12 +245,12 @@ BEGIN | |||
245 | BEGIN | 245 | BEGIN |
246 | VALUE "CompanyName", "Linden Lab" | 246 | VALUE "CompanyName", "Linden Lab" |
247 | VALUE "FileDescription", "Second Life" | 247 | VALUE "FileDescription", "Second Life" |
248 | VALUE "FileVersion", "1.17.0.12" | 248 | VALUE "FileVersion", "1.17.1.0" |
249 | VALUE "InternalName", "Second Life" | 249 | VALUE "InternalName", "Second Life" |
250 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." | 250 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." |
251 | VALUE "OriginalFilename", "SecondLife.exe" | 251 | VALUE "OriginalFilename", "SecondLife.exe" |
252 | VALUE "ProductName", "Second Life" | 252 | VALUE "ProductName", "Second Life" |
253 | VALUE "ProductVersion", "1.17.0.12" | 253 | VALUE "ProductVersion", "1.17.1.0" |
254 | END | 254 | END |
255 | END | 255 | END |
256 | BLOCK "VarFileInfo" | 256 | BLOCK "VarFileInfo" |
diff --git a/linden/indra/newview/skins/textures/textures.xml b/linden/indra/newview/skins/textures/textures.xml index 89e4f53..79e910a 100644 --- a/linden/indra/newview/skins/textures/textures.xml +++ b/linden/indra/newview/skins/textures/textures.xml | |||
@@ -230,6 +230,7 @@ | |||
230 | <notify_tip_icon.tga value="74ba3584-58ea-9984-5b76-62d37942ab77"/> | 230 | <notify_tip_icon.tga value="74ba3584-58ea-9984-5b76-62d37942ab77"/> |
231 | <notify_box_icon.tga value="b2ef2d31-9714-a07b-6ca7-31638166364b"/> | 231 | <notify_box_icon.tga value="b2ef2d31-9714-a07b-6ca7-31638166364b"/> |
232 | <notify_next.tga value="07d0ea4c-af0c-aad1-dbbf-c24020ff2b80"/> | 232 | <notify_next.tga value="07d0ea4c-af0c-aad1-dbbf-c24020ff2b80"/> |
233 | <notify_caution_icon.tga value="3a22ac15-39ac-409c-acec-b08b1b6b689b"/> | ||
233 | <map_avatar_you_8.tga value="02fbdc40-5e07-a6e1-228b-58e10f8335b7"/> | 234 | <map_avatar_you_8.tga value="02fbdc40-5e07-a6e1-228b-58e10f8335b7"/> |
234 | <map_avatar_8.tga value="0be58a91-8065-c02b-7a12-2cc14dddbc37"/> | 235 | <map_avatar_8.tga value="0be58a91-8065-c02b-7a12-2cc14dddbc37"/> |
235 | <map_avatar_16.tga value="db0dadd5-026a-88cf-f5c1-523a0a2daa3e"/> | 236 | <map_avatar_16.tga value="db0dadd5-026a-88cf-f5c1-523a0a2daa3e"/> |
diff --git a/linden/indra/newview/skins/xui/en-us/alerts.xml b/linden/indra/newview/skins/xui/en-us/alerts.xml index d32b46a..6c11a06 100644 --- a/linden/indra/newview/skins/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/xui/en-us/alerts.xml | |||
@@ -561,13 +561,12 @@ Objects: [N] | |||
561 | </alert> | 561 | </alert> |
562 | <alert modal="true" name="ReturnAllTopObjects"> | 562 | <alert modal="true" name="ReturnAllTopObjects"> |
563 | <message name="message"> | 563 | <message name="message"> |
564 | Are you sure you want to return all objects | 564 | Are you sure you want to return all listed objects back to their owner's inventory? |
565 | in this region back to their owner's inventory? | ||
566 | </message> | 565 | </message> |
567 | <option name="Return"> | 566 | <option name="Return"> |
568 | OK | 567 | OK |
569 | </option> | 568 | </option> |
570 | <option name="Cancel"> | 569 | <option default = "true" name="Cancel"> |
571 | Cancel | 570 | Cancel |
572 | </option> | 571 | </option> |
573 | </alert> | 572 | </alert> |
@@ -620,6 +619,17 @@ to set its Landing Point. | |||
620 | Please enter your email address. | 619 | Please enter your email address. |
621 | </message> | 620 | </message> |
622 | </alert> | 621 | </alert> |
622 | <alert modal="true" name="PromptMissingSubjMsg"> | ||
623 | <message name="message"> | ||
624 | Send postcard with the default subject or message? | ||
625 | </message> | ||
626 | <option name="OK"> | ||
627 | OK | ||
628 | </option> | ||
629 | <option name="Cancel"> | ||
630 | Cancel | ||
631 | </option> | ||
632 | </alert> | ||
623 | <alert modal="true" name="ErrorProcessingSnapshot"> | 633 | <alert modal="true" name="ErrorProcessingSnapshot"> |
624 | <message name="message"> | 634 | <message name="message"> |
625 | Error processing snapshot data | 635 | Error processing snapshot data |
@@ -798,6 +808,17 @@ Apply those changes and quit | |||
798 | Cancel | 808 | Cancel |
799 | </option> | 809 | </option> |
800 | </alert> | 810 | </alert> |
811 | <alert modal="true" name="SkipShowNextTimeDialogs"> | ||
812 | <message name="message"> | ||
813 | Disable all 'Show next time' dialogs? | ||
814 | </message> | ||
815 | <option name="OK"> | ||
816 | OK | ||
817 | </option> | ||
818 | <option name="Cancel"> | ||
819 | Cancel | ||
820 | </option> | ||
821 | </alert> | ||
801 | <alert modal="true" name="CacheWillClear"> | 822 | <alert modal="true" name="CacheWillClear"> |
802 | <message name="message"> | 823 | <message name="message"> |
803 | Cache will be cleared after you restart [SECOND_LIFE]. | 824 | Cache will be cleared after you restart [SECOND_LIFE]. |
@@ -3074,7 +3095,7 @@ can be attached to notecards. | |||
3074 | You are a member of too many groups to join | 3095 | You are a member of too many groups to join |
3075 | another one. Please leave at least one group | 3096 | another one. Please leave at least one group |
3076 | before joining this one, or decline the offer. | 3097 | before joining this one, or decline the offer. |
3077 | To leave a group select the 'My Groups..' option | 3098 | To leave a group select the 'Groups..' option |
3078 | from the 'Edit' menu. | 3099 | from the 'Edit' menu. |
3079 | [NAME] has invited you to join a group as a member. | 3100 | [NAME] has invited you to join a group as a member. |
3080 | [INVITE] | 3101 | [INVITE] |
@@ -3091,7 +3112,7 @@ from the 'Edit' menu. | |||
3091 | You are a member of too many groups to join | 3112 | You are a member of too many groups to join |
3092 | another one. Please leave at least one group | 3113 | another one. Please leave at least one group |
3093 | before joining this one, or decline the offer. | 3114 | before joining this one, or decline the offer. |
3094 | To leave a group select the 'My Groups..' option | 3115 | To leave a group select the 'Groups..' option |
3095 | from the 'Edit' menu. | 3116 | from the 'Edit' menu. |
3096 | [NAME] has invited you to join a group as an officer. | 3117 | [NAME] has invited you to join a group as an officer. |
3097 | [INVITE] | 3118 | [INVITE] |
@@ -4067,6 +4088,20 @@ will only work if a script is added with a money() event. | |||
4067 | Cancel | 4088 | Cancel |
4068 | </option> | 4089 | </option> |
4069 | </alert> | 4090 | </alert> |
4091 | <alert modal="true" name="ClickOpenF1Help"> | ||
4092 | <message name="message"> | ||
4093 | Visit the Second Life Support Web site? | ||
4094 | </message> | ||
4095 | <ignore name="ignore"> | ||
4096 | Ignore | ||
4097 | </ignore> | ||
4098 | <option name="Gotopage"> | ||
4099 | Go | ||
4100 | </option> | ||
4101 | <option name="Cancel"> | ||
4102 | Cancel | ||
4103 | </option> | ||
4104 | </alert> | ||
4070 | <alert modal="true" name="HelpReportAbuseEmailLL" > | 4105 | <alert modal="true" name="HelpReportAbuseEmailLL" > |
4071 | <message name="message"> | 4106 | <message name="message"> |
4072 | Use this tool to report violations of the Terms of Service | 4107 | Use this tool to report violations of the Terms of Service |
@@ -4342,5 +4377,27 @@ the contents of your Lost And Found folder? | |||
4342 | they are part of an attachment. | 4377 | they are part of an attachment. |
4343 | </message> | 4378 | </message> |
4344 | </alert> | 4379 | </alert> |
4345 | 4380 | <!-- alert for more information about the debit permission --> | |
4381 | <alert modal="true" name="DebitPermissionDetails" title="About Requests for the Debit Permission"> | ||
4382 | <message name="message"> | ||
4383 | <p>Granting this request gives a script ongoing permission to take Linden dollars (L$) from your account. To revoke this permission, the object's owner must delete the object or reset the scripts in the object.</p> | ||
4384 | </message> | ||
4385 | <option default="true" name="OK"> | ||
4386 | OK | ||
4387 | </option> | ||
4388 | </alert> | ||
4389 | <alert modal="true" name="AutoWearNewClothing"> | ||
4390 | <message name="message"> | ||
4391 | Would you like to automatically wear the clothing item you create? | ||
4392 | </message> | ||
4393 | <ignore name="ignore"> | ||
4394 | Automatically wear new clothing | ||
4395 | </ignore> | ||
4396 | <option name="Yes"> | ||
4397 | Yes | ||
4398 | </option> | ||
4399 | <option name="No"> | ||
4400 | No | ||
4401 | </option> | ||
4402 | </alert> | ||
4346 | </alerts> | 4403 | </alerts> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/xui/en-us/floater_about_land.xml index 5d85deb..9366154 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_about_land.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_about_land.xml | |||
@@ -1,11 +1,11 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater bottom="-554" can_close="true" can_drag_on_left="false" can_minimize="true" | 2 | <floater bottom="-554" can_close="true" can_drag_on_left="false" can_minimize="true" |
3 | can_resize="false" can_tear_off="true" enabled="true" height="370" | 3 | can_resize="true" can_tear_off="true" enabled="true" height="385" |
4 | hidden="false" left="367" min_height="100" min_width="100" | 4 | hidden="false" left="367" min_height="385" min_width="460" |
5 | mouse_opaque="true" name="floaterland" rect_control="FloaterLandRect5" | 5 | mouse_opaque="true" name="floaterland" rect_control="FloaterLandRect5" |
6 | title="About Land" width="460"> | 6 | title="About Land" width="460"> |
7 | <tab_container bottom="-370" enabled="true" height="350" hidden="false" left="0" | 7 | <tab_container bottom="-370" enabled="true" height="350" hidden="false" left="0" |
8 | mouse_opaque="false" name="landtab" tab_position="top" width="460"> | 8 | mouse_opaque="false" name="landtab" tab_position="top" width="460" follows="left|top|right|bottom"> |
9 | <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom" | 9 | <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom" |
10 | height="333" hidden="false" label="General" left="1" mouse_opaque="true" | 10 | height="333" hidden="false" label="General" left="1" mouse_opaque="true" |
11 | name="land_general_panel" width="458"> | 11 | name="land_general_panel" width="458"> |
@@ -16,11 +16,11 @@ | |||
16 | Name: | 16 | Name: |
17 | </text> | 17 | </text> |
18 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-20" | 18 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-20" |
19 | enabled="true" follows="left|top" font="SansSerifSmall" | 19 | enabled="true" follows="left|top|right" font="SansSerifSmall" |
20 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" | 20 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" |
21 | max_length="63" mouse_opaque="true" name="Name" | 21 | max_length="63" mouse_opaque="true" name="Name" |
22 | select_all_on_focus_received="false" select_on_focus="false" | 22 | select_all_on_focus_received="false" select_on_focus="false" |
23 | text_readonly_color="0.576471 0.662745 0.835294 1" width="286" /> | 23 | text_readonly_color="0.576471 0.662745 0.835294 1" width="370" /> |
24 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 24 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
25 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | 25 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" |
26 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" | 26 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" |
@@ -28,11 +28,11 @@ | |||
28 | Description: | 28 | Description: |
29 | </text> | 29 | </text> |
30 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-40" | 30 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-40" |
31 | enabled="true" follows="left|top" font="SansSerifSmall" | 31 | enabled="true" follows="left|top|right" font="SansSerifSmall" |
32 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" | 32 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" |
33 | max_length="127" mouse_opaque="true" name="Description" | 33 | max_length="127" mouse_opaque="true" name="Description" |
34 | select_all_on_focus_received="false" select_on_focus="false" | 34 | select_all_on_focus_received="false" select_on_focus="false" |
35 | text_readonly_color="0.576471 0.662745 0.835294 1" width="286" /> | 35 | text_readonly_color="0.576471 0.662745 0.835294 1" width="370" /> |
36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
37 | bottom="-60" drop_shadow_visible="true" enabled="false" follows="left|top" | 37 | bottom="-60" drop_shadow_visible="true" enabled="false" follows="left|top" |
38 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" | 38 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" |
@@ -266,10 +266,10 @@ | |||
266 | width="350"> | 266 | width="350"> |
267 | Purchased land in this region may not be joined/subdivided. | 267 | Purchased land in this region may not be joined/subdivided. |
268 | </text> | 268 | </text> |
269 | <text_editor type="string" length="1" bottom="-305" embedded_items="false" enabled="false" follows="left|top" | 269 | <text_editor type="string" length="1" bottom="-325" embedded_items="false" enabled="false" follows="left|top|right|bottom" |
270 | font="SansSerifSmall" height="180" hidden="false" left="15" | 270 | font="SansSerifSmall" height="200" hidden="false" left="15" |
271 | max_length="65535" mouse_opaque="true" name="covenant_editor" | 271 | max_length="65535" mouse_opaque="true" name="covenant_editor" |
272 | text_readonly_color="1 1 1 1" width="375" word_wrap="true"> | 272 | text_readonly_color="1 1 1 1" width="420" word_wrap="true"> |
273 | There is no Covenant provided for this Estate. | 273 | There is no Covenant provided for this Estate. |
274 | </text_editor> | 274 | </text_editor> |
275 | <text hidden="true" name="can_resell"> | 275 | <text hidden="true" name="can_resell"> |
@@ -664,11 +664,11 @@ | |||
664 | Music URL: | 664 | Music URL: |
665 | </text> | 665 | </text> |
666 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-48" | 666 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-48" |
667 | enabled="true" follows="left|top" font="SansSerifSmall" | 667 | enabled="true" follows="left|top|right" font="SansSerifSmall" |
668 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" | 668 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" |
669 | max_length="255" mouse_opaque="true" name="music_url" | 669 | max_length="255" mouse_opaque="true" name="music_url" |
670 | select_all_on_focus_received="true" select_on_focus="true" | 670 | select_all_on_focus_received="true" select_on_focus="true" |
671 | text_readonly_color="0.576471 0.662745 0.835294 1" width="292" /> | 671 | text_readonly_color="0.576471 0.662745 0.835294 1" width="370" /> |
672 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 672 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
673 | bottom="-76" drop_shadow_visible="true" enabled="true" follows="left|top" | 673 | bottom="-76" drop_shadow_visible="true" enabled="true" follows="left|top" |
674 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" | 674 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" |
@@ -695,11 +695,11 @@ texture: | |||
695 | with content from this URL: | 695 | with content from this URL: |
696 | </text> | 696 | </text> |
697 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-172" | 697 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-172" |
698 | enabled="true" follows="left|top" font="SansSerifSmall" | 698 | enabled="true" follows="left|top|right" font="SansSerifSmall" |
699 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" | 699 | handle_edit_keys_directly="false" height="16" hidden="false" left="76" |
700 | max_length="255" mouse_opaque="true" name="media_url" | 700 | max_length="255" mouse_opaque="true" name="media_url" |
701 | select_all_on_focus_received="true" select_on_focus="true" | 701 | select_all_on_focus_received="true" select_on_focus="true" |
702 | text_readonly_color="0.576471 0.662745 0.835294 1" width="292" /> | 702 | text_readonly_color="0.576471 0.662745 0.835294 1" width="370" /> |
703 | <check_box bottom="-208" enabled="true" follows="left|top" font="SansSerifSmall" | 703 | <check_box bottom="-208" enabled="true" follows="left|top" font="SansSerifSmall" |
704 | height="16" hidden="false" initial_value="false" | 704 | height="16" hidden="false" initial_value="false" |
705 | label="Auto scale content (slower and reduced visual quality)" left="76" | 705 | label="Auto scale content (slower and reduced visual quality)" left="76" |
@@ -725,28 +725,30 @@ texture: | |||
725 | height="16" hidden="false" initial_value="false" | 725 | height="16" hidden="false" initial_value="false" |
726 | label="Avatars: (0 listed, 300 max)" left="4" mouse_opaque="true" | 726 | label="Avatars: (0 listed, 300 max)" left="4" mouse_opaque="true" |
727 | name="AccessCheck" radio_style="false" width="278" /> | 727 | name="AccessCheck" radio_style="false" width="278" /> |
728 | <name_list allow_calling_card_drop="false" background_visible="true" bottom="-144" | 728 | <name_list allow_calling_card_drop="false" background_visible="true" bottom="-234" |
729 | column_padding="5" draw_border="true" draw_heading="false" | 729 | column_padding="0" draw_border="true" draw_heading="true" heading_font="SansSerifSmall" heading_height="14" |
730 | draw_stripes="true" enabled="true" follows="left|top" height="80" | 730 | enabled="true" follows="left|top|right|bottom" height="170" |
731 | hidden="false" left="28" mouse_opaque="true" multi_select="false" | 731 | hidden="false" left="28" mouse_opaque="true" multi_select="false" |
732 | name="AccessList" width="254" /> | 732 | name="AccessList" width="400"> |
733 | <button bottom="-164" enabled="true" follows="left|top" font="SansSerifSmall" | 733 | <column label="Allowed Residents" name="name" relwidth="1.0" /> |
734 | </name_list> | ||
735 | <button bottom="-264" enabled="true" follows="left|bottom" font="SansSerifSmall" | ||
734 | halign="center" height="16" hidden="false" label="Add..." | 736 | halign="center" height="16" hidden="false" label="Add..." |
735 | label_selected="Add..." left="28" mouse_opaque="true" name="Add..." | 737 | label_selected="Add..." left="28" mouse_opaque="true" name="Add..." |
736 | scale_image="true" width="64" /> | 738 | scale_image="true" width="64" /> |
737 | <button bottom="-164" enabled="false" follows="left|top" font="SansSerifSmall" | 739 | <button bottom="-264" enabled="false" follows="left|bottom" font="SansSerifSmall" |
738 | halign="center" height="16" hidden="false" label="Remove" | 740 | halign="center" height="16" hidden="false" label="Remove" |
739 | label_selected="Remove" left="96" mouse_opaque="true" name="Remove" | 741 | label_selected="Remove" left="96" mouse_opaque="true" name="Remove" |
740 | scale_image="true" width="64" /> | 742 | scale_image="true" width="64" /> |
741 | <check_box bottom="-184" enabled="false" follows="left|top" font="SansSerifSmall" | 743 | <check_box bottom="-284" enabled="false" follows="left|bottom" font="SansSerifSmall" |
742 | height="16" hidden="false" initial_value="false" | 744 | height="16" hidden="false" initial_value="false" |
743 | label="Sell passes allowing temporary access:" left="28" | 745 | label="Sell passes allowing temporary access:" left="28" |
744 | mouse_opaque="true" name="PassCheck" radio_style="false" width="254" /> | 746 | mouse_opaque="true" name="PassCheck" radio_style="false" width="254" /> |
745 | <spinner bottom="-204" enabled="false" follows="left|top" height="16" hidden="false" | 747 | <spinner bottom="-304" enabled="false" follows="left|bottom" height="16" hidden="false" |
746 | increment="1" initial_val="10" label="Price in L$:" label_width="128" | 748 | increment="1" initial_val="10" label="Price in L$:" label_width="128" |
747 | left="76" max_val="500" min_val="1" mouse_opaque="true" name="PriceSpin" | 749 | left="76" max_val="500" min_val="1" mouse_opaque="true" name="PriceSpin" |
748 | width="206" /> | 750 | width="206" /> |
749 | <spinner bottom="-224" enabled="false" follows="left|top" height="16" hidden="false" | 751 | <spinner bottom="-324" enabled="false" follows="left|bottom" height="16" hidden="false" |
750 | increment="0.25" initial_val="1" label="Hours of access:" label_width="128" | 752 | increment="0.25" initial_val="1" label="Hours of access:" label_width="128" |
751 | left="76" max_val="24" min_val="0.01" mouse_opaque="true" name="HoursSpin" | 753 | left="76" max_val="24" min_val="0.01" mouse_opaque="true" name="HoursSpin" |
752 | width="206" /> | 754 | width="206" /> |
@@ -758,35 +760,37 @@ texture: | |||
758 | height="16" hidden="false" initial_value="false" | 760 | height="16" hidden="false" initial_value="false" |
759 | label="Ban these avatars: (0 listed, 300 max)" left="4" mouse_opaque="true" | 761 | label="Ban these avatars: (0 listed, 300 max)" left="4" mouse_opaque="true" |
760 | name="LandBanCheck" radio_style="false" width="278" /> | 762 | name="LandBanCheck" radio_style="false" width="278" /> |
761 | <name_list allow_calling_card_drop="false" background_visible="true" bottom="-104" | 763 | <name_list allow_calling_card_drop="false" background_visible="true" bottom="-200" |
762 | column_padding="5" draw_border="true" draw_heading="false" | 764 | column_padding="0" draw_border="true" draw_heading="true" heading_font="SansSerifSmall" heading_height="14" |
763 | draw_stripes="true" enabled="true" follows="left|top" height="80" | 765 | enabled="true" follows="left|top|right|bottom" height="170" |
764 | hidden="false" left="28" mouse_opaque="true" multi_select="false" | 766 | hidden="false" left="28" mouse_opaque="true" multi_select="false" |
765 | name="LandBanList" width="254" /> | 767 | name="LandBanList" width="400"> |
766 | <button bottom="-124" enabled="true" follows="left|top" font="SansSerifSmall" | 768 | <column label="Banned Residents" name="name" relwidth="1.0" /> |
769 | </name_list> | ||
770 | <button bottom="-230" enabled="true" follows="left|bottom" font="SansSerifSmall" | ||
767 | halign="center" height="16" hidden="false" label="Add..." | 771 | halign="center" height="16" hidden="false" label="Add..." |
768 | label_selected="Add..." left="28" mouse_opaque="true" name="Add..." | 772 | label_selected="Add..." left="28" mouse_opaque="true" name="Add..." |
769 | scale_image="true" width="64" /> | 773 | scale_image="true" width="64" /> |
770 | <button bottom="-124" enabled="false" follows="left|top" font="SansSerifSmall" | 774 | <button bottom="-230" enabled="false" follows="left|bottom" font="SansSerifSmall" |
771 | halign="center" height="16" hidden="false" label="Remove" | 775 | halign="center" height="16" hidden="false" label="Remove" |
772 | label_selected="Remove" left="96" mouse_opaque="true" name="Remove" | 776 | label_selected="Remove" left="96" mouse_opaque="true" name="Remove" |
773 | scale_image="true" width="64" /> | 777 | scale_image="true" width="64" /> |
774 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 778 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
775 | bottom="-144" drop_shadow_visible="true" enabled="true" follows="left|top" | 779 | bottom="-260" drop_shadow_visible="true" enabled="true" follows="left|bottom" |
776 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" | 780 | font="SansSerifSmall" h_pad="0" halign="left" height="16" hidden="false" |
777 | left="4" mouse_opaque="true" name="Deny by Payment Status:" v_pad="0" | 781 | left="4" mouse_opaque="true" name="Deny by Payment Status:" v_pad="0" |
778 | width="278"> | 782 | width="278"> |
779 | Deny by Payment Status: | 783 | Deny by Payment Status: |
780 | </text> | 784 | </text> |
781 | <check_box bottom="-164" enabled="true" follows="left|top" font="SansSerifSmall" | 785 | <check_box bottom="-280" enabled="true" follows="left|bottom" font="SansSerifSmall" |
782 | height="16" hidden="false" initial_value="false" | 786 | height="16" hidden="false" initial_value="false" |
783 | label="Deny No Payment Info On File" left="28" mouse_opaque="true" | 787 | label="Deny No Payment Info On File" left="28" mouse_opaque="true" |
784 | name="DenyAnonymousCheck" radio_style="false" width="254" /> | 788 | name="DenyAnonymousCheck" radio_style="false" width="254" /> |
785 | <check_box bottom="-184" enabled="true" follows="left|top" font="SansSerifSmall" | 789 | <check_box bottom="-300" enabled="true" follows="left|bottom" font="SansSerifSmall" |
786 | height="16" hidden="false" initial_value="false" | 790 | height="16" hidden="false" initial_value="false" |
787 | label="Deny Payment Info On File" left="28" mouse_opaque="true" | 791 | label="Deny Payment Info On File" left="28" mouse_opaque="true" |
788 | name="DenyIdentifiedCheck" radio_style="false" width="254" /> | 792 | name="DenyIdentifiedCheck" radio_style="false" width="254" /> |
789 | <check_box bottom="-204" enabled="true" follows="left|top" font="SansSerifSmall" | 793 | <check_box bottom="-320" enabled="true" follows="left|bottom" font="SansSerifSmall" |
790 | height="16" hidden="false" initial_value="false" | 794 | height="16" hidden="false" initial_value="false" |
791 | label="Deny Payment Info Used" left="28" mouse_opaque="true" | 795 | label="Deny Payment Info Used" left="28" mouse_opaque="true" |
792 | name="DenyTransactedCheck" radio_style="false" width="254" /> | 796 | name="DenyTransactedCheck" radio_style="false" width="254" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_directory.xml b/linden/indra/newview/skins/xui/en-us/floater_directory.xml index 3beb3a8..70f01fc 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_directory.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_directory.xml | |||
@@ -105,8 +105,11 @@ | |||
105 | </combo_item> | 105 | </combo_item> |
106 | </combo_box> | 106 | </combo_box> |
107 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 107 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" |
108 | label="Search" label_selected="Search" left_delta="142" mouse_opaque="true" | 108 | label="Browse" label_selected="Browse" left_delta="142" mouse_opaque="true" |
109 | name="Search" width="70" /> | 109 | name="Browse" width="70" /> |
110 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | ||
111 | label="Search" label_selected="Search" mouse_opaque="true" | ||
112 | name="Search" width="70" visible="false"/> | ||
110 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 113 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" |
111 | label="Place an Ad..." label_selected="Place an Ad..." left_delta="320" | 114 | label="Place an Ad..." label_selected="Place an Ad..." left_delta="320" |
112 | mouse_opaque="true" name="Place an Ad..." width="100" /> | 115 | mouse_opaque="true" name="Place an Ad..." width="100" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_image_preview.xml b/linden/indra/newview/skins/xui/en-us/floater_image_preview.xml index 4b668c5..2cea9e7 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_image_preview.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_image_preview.xml | |||
@@ -49,9 +49,9 @@ | |||
49 | </combo_item> | 49 | </combo_item> |
50 | </combo_box> | 50 | </combo_box> |
51 | <text bottom="250" follows="top|left" left="10" name="bad_image_text"> | 51 | <text bottom="250" follows="top|left" left="10" name="bad_image_text"> |
52 | Unable to read image. | 52 | Unable to read image. |
53 | 53 | ||
54 | Try saving image as 24 bit Targa (.tga). | 54 | Try saving image as 24 bit Targa (.tga). |
55 | </text> | 55 | </text> |
56 | <button bottom="10" follows="bottom|right" height="20" label="Cancel" left="182" | 56 | <button bottom="10" follows="bottom|right" height="20" label="Cancel" left="182" |
57 | name="cancel_btn" width="64" /> | 57 | name="cancel_btn" width="64" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_inventory.xml b/linden/indra/newview/skins/xui/en-us/floater_inventory.xml index d9d8eb8..ffed294 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_inventory.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_inventory.xml | |||
@@ -38,6 +38,10 @@ | |||
38 | mouse_opaque="true" name="Show Filters" width="128"> | 38 | mouse_opaque="true" name="Show Filters" width="128"> |
39 | <on_click filter="" function="Inventory.ShowFilters" userdata="" /> | 39 | <on_click filter="" function="Inventory.ShowFilters" userdata="" /> |
40 | </menu_item_call> | 40 | </menu_item_call> |
41 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Reset Filters" left="0" | ||
42 | mouse_opaque="true" name="Reset Current" width="118"> | ||
43 | <on_click filter="" function="Inventory.ResetFilter" userdata="" /> | ||
44 | </menu_item_call> | ||
41 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Close All Folders" | 45 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Close All Folders" |
42 | left="0" mouse_opaque="true" name="Close All Folders" width="128"> | 46 | left="0" mouse_opaque="true" name="Close All Folders" width="128"> |
43 | <on_click filter="" function="Inventory.CloseAllFolders" userdata="" /> | 47 | <on_click filter="" function="Inventory.CloseAllFolders" userdata="" /> |
@@ -155,18 +159,5 @@ | |||
155 | <on_click filter="" function="Inventory.SetSortBy" userdata="systemfolderstotop" /> | 159 | <on_click filter="" function="Inventory.SetSortBy" userdata="systemfolderstotop" /> |
156 | </menu_item_check> | 160 | </menu_item_check> |
157 | </menu> | 161 | </menu> |
158 | <menu bottom_delta="28" color="0, 0, 0, 1" drop_shadow="true" height="49" | ||
159 | hidden="false" label="Filters" left="0" mouse_opaque="false" name="Filters" | ||
160 | opaque="true" tear_off="true" width="118"> | ||
161 | <menu_item_check bottom_delta="-18" control_name="Inventory.ShowFilters" height="18" | ||
162 | hidden="false" label="Modify Current" left="0" mouse_opaque="true" | ||
163 | name="Modify Current" width="118"> | ||
164 | <on_click filter="" function="Inventory.ShowFilters" userdata="" /> | ||
165 | </menu_item_check> | ||
166 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Reset Current" left="0" | ||
167 | mouse_opaque="true" name="Reset Current" width="118"> | ||
168 | <on_click filter="" function="Inventory.ResetFilter" userdata="" /> | ||
169 | </menu_item_call> | ||
170 | </menu> | ||
171 | </menu_bar> | 162 | </menu_bar> |
172 | </floater> | 163 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_postcard.xml b/linden/indra/newview/skins/xui/en-us/floater_postcard.xml index 26fcbcb..27780a4 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_postcard.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_postcard.xml | |||
@@ -23,14 +23,14 @@ | |||
23 | name="subject_label"> | 23 | name="subject_label"> |
24 | Subject: | 24 | Subject: |
25 | </text> | 25 | </text> |
26 | <line_editor bottom_delta="-6" follows="left|top" height="20" left="120" max_length="100" | 26 | <line_editor bottom_delta="-6" follows="left|top" height="20" label="Type your subject here." |
27 | name="subject_form" width="150" /> | 27 | left="120" max_length="100" name="subject_form" width="150" /> |
28 | <text bottom_delta="-23" follows="top|left" font="SansSerif" left="12" | 28 | <text bottom_delta="-23" follows="top|left" font="SansSerif" left="12" |
29 | name="msg_label"> | 29 | name="msg_label"> |
30 | Message: | 30 | Message: |
31 | </text> | 31 | </text> |
32 | <text_editor bottom_delta="-150" follows="left|top|right|bottom" height="140" left="12" | 32 | <text_editor bottom_delta="-150" follows="left|top|right|bottom" height="140" |
33 | max_length="700" name="msg_form" width="420" /> | 33 | left="12" max_length="700" name="msg_form" width="420">Type your message here.</text_editor> |
34 | <check_box bottom_delta="-20" follows="left|bottom" height="18" label="Publish on the web" | 34 | <check_box bottom_delta="-20" follows="left|bottom" height="18" label="Publish on the web" |
35 | left="10" name="allow_publish_check" | 35 | left="10" name="allow_publish_check" |
36 | tool_tip="Publish this postcard on the web." /> | 36 | tool_tip="Publish this postcard on the web." /> |
@@ -47,4 +47,8 @@ | |||
47 | name="cancel_btn" width="150" /> | 47 | name="cancel_btn" width="150" /> |
48 | <button bottom_delta="0" follows="right|bottom" height="20" label="Send" left="285" | 48 | <button bottom_delta="0" follows="right|bottom" height="20" label="Send" left="285" |
49 | name="send_btn" width="150" /> | 49 | name="send_btn" width="150" /> |
50 | |||
51 | <text hidden="true" name="default_subject"> Postcard from Second Life. </text> | ||
52 | <text hidden="true" name="default_message"> Check this out! </text> | ||
53 | |||
50 | </floater> | 54 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_texture_ctrl.xml b/linden/indra/newview/skins/xui/en-us/floater_texture_ctrl.xml index a16448d..d0ae5da 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_texture_ctrl.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_texture_ctrl.xml | |||
@@ -54,4 +54,5 @@ | |||
54 | halign="center" height="20" hidden="false" label="Select" | 54 | halign="center" height="20" hidden="false" label="Select" |
55 | label_selected="Select" left="290" mouse_opaque="true" name="Select" | 55 | label_selected="Select" left="290" mouse_opaque="true" name="Select" |
56 | scale_image="true" width="100" /> | 56 | scale_image="true" width="100" /> |
57 | <text hidden="true" name="pick title">Pick: </text> | ||
57 | </floater> | 58 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/xui/en-us/floater_tools.xml index 835edec..305a5ef 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_tools.xml | |||
@@ -97,9 +97,10 @@ | |||
97 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" | 97 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" |
98 | hidden="false" initial_value="false" label="Select Texture" left="4" | 98 | hidden="false" initial_value="false" label="Select Texture" left="4" |
99 | mouse_opaque="true" name="radio select face" radio_style="true" width="114" /> | 99 | mouse_opaque="true" name="radio select face" radio_style="true" width="114" /> |
100 | <check_box bottom_delta="-15" follows="left|top" font="SansSerifSmall" height="16" | 100 | <check_box bottom_delta="-15" control_name="EditLinkedParts" follows="left|top" |
101 | hidden="false" initial_value="false" label="Edit linked parts" left="4" | 101 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" |
102 | mouse_opaque="true" name="checkbox edit linked parts" width="114" /> | 102 | label="Edit linked parts" left="4" mouse_opaque="true" |
103 | name="checkbox edit linked parts" width="114" /> | ||
103 | <check_box bottom="-79" control_name="SnapEnabled" follows="left|top" | 104 | <check_box bottom="-79" control_name="SnapEnabled" follows="left|top" |
104 | font="SansSerifSmall" height="16" hidden="false" initial_value="true" | 105 | font="SansSerifSmall" height="16" hidden="false" initial_value="true" |
105 | label="Use Grid" left="118" mouse_opaque="true" | 106 | label="Use Grid" left="118" mouse_opaque="true" |
diff --git a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml index 6d4840f..c14ba4b 100644 --- a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml | |||
@@ -691,6 +691,13 @@ | |||
691 | </menu_item_call> | 691 | </menu_item_call> |
692 | <menu_item_separator bottom="-243" enabled="true" height="8" hidden="false" label="-----------" | 692 | <menu_item_separator bottom="-243" enabled="true" height="8" hidden="false" label="-----------" |
693 | left="0" mouse_opaque="true" name="separator3" width="250" /> | 693 | left="0" mouse_opaque="true" name="separator3" width="250" /> |
694 | <menu_item_check bottom="" enabled="false" height="" hidden="false" label="Edit Linked Parts" | ||
695 | left="" mouse_opaque="true" name="Edit Linked Parts" shortcut="" width=""> | ||
696 | <on_click function="ToggleControl" userdata="EditLinkedParts" /> | ||
697 | <on_click function="Tools.EditLinkedParts" userdata="" /> | ||
698 | <on_check control="EditLinkedParts" /> | ||
699 | <on_enable function="Tools.EnableToolNotPie" /> | ||
700 | </menu_item_check> | ||
694 | <menu_item_call bottom="-262" enabled="false" height="19" hidden="false" label="Link" left="0" | 701 | <menu_item_call bottom="-262" enabled="false" height="19" hidden="false" label="Link" left="0" |
695 | mouse_opaque="true" name="Link" shortcut="control|L" width="250"> | 702 | mouse_opaque="true" name="Link" shortcut="control|L" width="250"> |
696 | <on_click function="Tools.Link" userdata="" /> | 703 | <on_click function="Tools.Link" userdata="" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/notify.xml b/linden/indra/newview/skins/xui/en-us/notify.xml index 54451ab..8e51bcb 100644 --- a/linden/indra/newview/skins/xui/en-us/notify.xml +++ b/linden/indra/newview/skins/xui/en-us/notify.xml | |||
@@ -634,7 +634,7 @@ Please notify the vendor from whom you purchased this item. | |||
634 | Failed to find [TYPE] named [DESC] in database. | 634 | Failed to find [TYPE] named [DESC] in database. |
635 | </message> | 635 | </message> |
636 | </notify> | 636 | </notify> |
637 | <notify name="ScriptTakeMoney" tip="false"> | 637 | <notify name="ScriptTakeMoney" tip="false" caution="true"> |
638 | <message name="message"> | 638 | <message name="message"> |
639 | Take Linden dollars (L$) from you | 639 | Take Linden dollars (L$) from you |
640 | </message> | 640 | </message> |
@@ -689,6 +689,7 @@ Please notify the vendor from whom you purchased this item. | |||
689 | Control your camera | 689 | Control your camera |
690 | </message> | 690 | </message> |
691 | </notify> | 691 | </notify> |
692 | <!-- the normal permissions prompt --> | ||
692 | <notify name="ScriptQuestion" tip="false"> | 693 | <notify name="ScriptQuestion" tip="false"> |
693 | <message name="message"> | 694 | <message name="message"> |
694 | '[OBJECTNAME]', an object owned by '[NAME]', would like to: | 695 | '[OBJECTNAME]', an object owned by '[NAME]', would like to: |
@@ -703,7 +704,39 @@ Is this OK? | |||
703 | No | 704 | No |
704 | </option> | 705 | </option> |
705 | </notify> | 706 | </notify> |
706 | <notify name="ScriptDialog" tip="false"> | 707 | <!-- the special chat messages to log when caution permissions have been granted or denied --> |
708 | <notify name="ScriptQuestionCautionChatGranted" tip="false"> | ||
709 | <message name="message">'[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been granted permission to: [PERMISSIONS].</message> | ||
710 | </notify> | ||
711 | <notify name="ScriptQuestionCautionChatDenied" tip="false"> | ||
712 | <message name="message">'[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been denied permission to: [PERMISSIONS].</message> | ||
713 | </notify> | ||
714 | <!-- the special title to display at the top of a caution permissions prompt --> | ||
715 | <notify name="ScriptQuestionCautionWarn" tip="false"> | ||
716 | <message name="message">An object wants permission to take Linden dollars (L$) from your account.</message> | ||
717 | </notify> | ||
718 | <!-- the caution permssions prompt, when auto-deny is disabled --> | ||
719 | <notify name="ScriptQuestionCaution" tip="false" caution="true"> | ||
720 | <message name="message"> | ||
721 | '[OBJECTNAME]', an object owned by '[NAME]', would like to: | ||
722 | |||
723 | [QUESTIONS] | ||
724 | If you do not trust this object and its creator, you should deny the request. For additional information, click the Details button. | ||
725 | |||
726 | Grant this request? | ||
727 | </message> | ||
728 | <option name="Grant"> | ||
729 | Grant | ||
730 | </option> | ||
731 | <option name="Deny" default="true"> | ||
732 | Deny | ||
733 | </option> | ||
734 | <!-- details button MUST be the last button --> | ||
735 | <option name="Details"> | ||
736 | Details... | ||
737 | </option> | ||
738 | </notify> | ||
739 | <notify name="ScriptDialog" tip="false"> | ||
707 | <message name="message"> | 740 | <message name="message"> |
708 | [FIRST] [LAST]'s '[TITLE]' | 741 | [FIRST] [LAST]'s '[TITLE]' |
709 | [MESSAGE] | 742 | [MESSAGE] |
@@ -815,6 +848,20 @@ Flexible objects may not be physical and must be phantom | |||
815 | until the flexible checkbox is unchecked. | 848 | until the flexible checkbox is unchecked. |
816 | </message> | 849 | </message> |
817 | </notify> | 850 | </notify> |
851 | <notify name="FirstDebugMenus" tip="false"> | ||
852 | <message name="message"> | ||
853 | You have enabled the Client and Server debugging menus. | ||
854 | These menus contain features useful for developers debugging Second Life. | ||
855 | To toggle these menus on and off press Ctrl-Alt-D. On a Mac press Cmd-Opt-Shift-D. | ||
856 | </message> | ||
857 | </notify> | ||
858 | <notify name="FirstSculptedPrim" tip="false"> | ||
859 | <message name="message"> | ||
860 | You are editting a sculpted prim. | ||
861 | Sculpted prims require a special texture to specify their shape. | ||
862 | You can find example sculpted textures in the system library. | ||
863 | </message> | ||
864 | </notify> | ||
818 | <notify name="MaxListSelectMessage" tip="true"> | 865 | <notify name="MaxListSelectMessage" tip="true"> |
819 | <message name="message"> | 866 | <message name="message"> |
820 | You may only select up to [MAX_SELECT] items | 867 | You may only select up to [MAX_SELECT] items |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_chat.xml index 4b76b18..20ccfe9 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_preferences_chat.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_chat.xml | |||
@@ -38,21 +38,26 @@ | |||
38 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" | 38 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" |
39 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" | 39 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" |
40 | enabled="true" follows="left|top" height="56" hidden="false" label="Users" | 40 | enabled="true" follows="left|top" height="56" hidden="false" label="Users" |
41 | left="210" mouse_opaque="true" name="users" width="40" /> | 41 | left="200" mouse_opaque="true" name="users" width="40" /> |
42 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" | 42 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" |
43 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 43 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
44 | control_name="ObjectChatColor" enabled="true" follows="left|top" | 44 | control_name="ObjectChatColor" enabled="true" follows="left|top" |
45 | height="56" hidden="false" label="Objects" left="272" mouse_opaque="true" | 45 | height="56" hidden="false" label="Objects" left="252" mouse_opaque="true" |
46 | name="objects" width="40" /> | 46 | name="objects" width="40" /> |
47 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" | 47 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" |
48 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | ||
49 | control_name="llOwnerSayChatColor" enabled="true" follows="left|top" | ||
50 | height="56" hidden="false" label="Owner" left="304" mouse_opaque="true" | ||
51 | name="objects" width="40" /> | ||
52 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" | ||
48 | can_apply_immediately="true" color="0 0 0 1" | 53 | can_apply_immediately="true" color="0 0 0 1" |
49 | control_name="BackgroundChatColor" enabled="true" follows="left|top" | 54 | control_name="BackgroundChatColor" enabled="true" follows="left|top" |
50 | height="56" hidden="false" label="Bubble" left="334" mouse_opaque="true" | 55 | height="56" hidden="false" label="Bubble" left="356" mouse_opaque="true" |
51 | name="background" width="40" /> | 56 | name="background" width="40" /> |
52 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" | 57 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-140" |
53 | can_apply_immediately="true" color="0.6 0.6 1 1" | 58 | can_apply_immediately="true" color="0.6 0.6 1 1" |
54 | control_name="HTMLLinkColor" enabled="true" follows="left|top" height="56" | 59 | control_name="HTMLLinkColor" enabled="true" follows="left|top" height="56" |
55 | hidden="false" label="URLs" left="396" mouse_opaque="true" name="links" | 60 | hidden="false" label="URLs" left="408" mouse_opaque="true" name="links" |
56 | width="40" /> | 61 | width="40" /> |
57 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 62 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
58 | bottom="-167" drop_shadow_visible="true" enabled="true" follows="left|top" | 63 | bottom="-167" drop_shadow_visible="true" enabled="true" follows="left|top" |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_im.xml index e787d2a..73563ae 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_preferences_im.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_im.xml | |||
@@ -33,34 +33,57 @@ | |||
33 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | 33 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" |
34 | label="Show timestamps in IM" left="148" mouse_opaque="true" | 34 | label="Show timestamps in IM" left="148" mouse_opaque="true" |
35 | name="show_timestamps_check" radio_style="false" width="237" /> | 35 | name="show_timestamps_check" radio_style="false" width="237" /> |
36 | <check_box bottom="-105" control_name="LogInstantMessages" enabled="true" | 36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
37 | bottom="-105" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
38 | font="SansSerifSmall" h_pad="0" halign="left" height="10" hidden="false" | ||
39 | left="12" mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
40 | Busy Mode Response: | ||
41 | </text> | ||
42 | <text_editor type="string" length="1" bottom="-165" embedded_items="false" enabled="true" follows="left|top" | ||
43 | font="SansSerifSmall" height="70" hidden="false" left="148" | ||
44 | max_length="255" mouse_opaque="true" name="busy_response" width="330" | ||
45 | word_wrap="true" /> | ||
46 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
47 | bottom="-185" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
48 | font="SansSerifSmall" h_pad="0" halign="left" height="10" hidden="false" | ||
49 | left="12" mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
50 | Logging Options: | ||
51 | </text> | ||
52 | <check_box bottom="-205" control_name="LogInstantMessages" enabled="true" | ||
37 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 53 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
38 | initial_value="false" label="Log Instant Messages" left="148" | 54 | initial_value="false" label="Log Instant Messages" left="148" |
39 | mouse_opaque="true" name="log_instant_messages" radio_style="false" | 55 | mouse_opaque="true" name="log_instant_messages" radio_style="false" |
40 | width="237" /> | 56 | width="237" /> |
41 | <check_box bottom="-125" control_name="LogChat" enabled="true" follows="left|top" | 57 | <check_box bottom="-225" control_name="IMLogTimestamp" enabled="true" |
58 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
59 | initial_value="false" label="Show timestamps in IM Log" left="148" | ||
60 | mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" | ||
61 | width="237" /> | ||
62 | <check_box bottom="-245" control_name="LogShowHistory" enabled="true" follows="left|top" | ||
63 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | ||
64 | label="Show end of last IM conversation" left="148" mouse_opaque="true" | ||
65 | name="log_show_history" radio_style="false" width="237" /> | ||
66 | <check_box bottom="-265" control_name="LogChat" enabled="true" follows="left|top" | ||
42 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | 67 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" |
43 | label="Log Chat" left="148" mouse_opaque="true" name="log_chat" | 68 | label="Log Chat" left="148" mouse_opaque="true" name="log_chat" |
44 | radio_style="false" width="237" /> | 69 | radio_style="false" width="237" /> |
45 | <check_box bottom="-145" control_name="LogShowHistory" enabled="true" follows="left|top" | 70 | <check_box bottom="-285" control_name="LogChatTimestamp" enabled="true" follows="left|top" |
46 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | 71 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" |
47 | label="Show end of last IM conversation" left="148" mouse_opaque="true" | 72 | label="Show timestamps in Chat Log" left="148" mouse_opaque="true" name="log_chat_timestamp" |
48 | name="log_show_history" radio_style="false" width="237" /> | 73 | radio_style="false" width="237" /> |
49 | <button bottom="-167" follows="right|bottom" font="SansSerif" halign="center" | 74 | <check_box bottom="-305" control_name="LogChatIM" enabled="true" follows="left|top" |
75 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | ||
76 | label="Show incoming IM in Chat Log" left="148" mouse_opaque="true" name="log_chat_IM" | ||
77 | radio_style="false" width="237" /> | ||
78 | <check_box bottom="-325" control_name="LogTimestampDate" enabled="true" follows="left|top" | ||
79 | font="SansSerifSmall" height="16" hidden="false" initial_value="false" | ||
80 | label="Include Date with Timestamp" left="148" mouse_opaque="true" name="log_date_timestamp" | ||
81 | radio_style="false" width="237" /> | ||
82 | <button bottom="-347" follows="right|bottom" font="SansSerif" halign="center" | ||
50 | height="20" label="Change Path" label_selected="Change Path" left="170" | 83 | height="20" label="Change Path" label_selected="Change Path" left="170" |
51 | mouse_opaque="true" name="log_path_button" width="90" /> | 84 | mouse_opaque="true" name="log_path_button" width="90" /> |
52 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom="-166" | 85 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom="-346" |
53 | drop_shadow_visible="true" enabled="false" follows="top|left|right" | 86 | drop_shadow_visible="true" enabled="false" follows="top|left|right" |
54 | font="SansSerifSmall" halign="right" height="19" left="248" | 87 | font="SansSerifSmall" halign="right" height="19" left="248" |
55 | max_length="254" mouse_opaque="false" name="log_path_string" right="-20" /> | 88 | max_length="254" mouse_opaque="false" name="log_path_string" right="-20" /> |
56 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
57 | bottom="-195" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
58 | font="SansSerifSmall" h_pad="0" halign="left" height="10" hidden="false" | ||
59 | left="12" mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
60 | Busy Mode Response: | ||
61 | </text> | ||
62 | <text_editor type="string" length="1" bottom="-255" embedded_items="false" enabled="true" follows="left|top" | ||
63 | font="SansSerifSmall" height="70" hidden="false" left="148" | ||
64 | max_length="255" mouse_opaque="true" name="busy_response" width="330" | ||
65 | word_wrap="true" /> | ||
66 | </panel> | 89 | </panel> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_popups.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_popups.xml index 24c3b19..f471256 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_preferences_popups.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_popups.xml | |||
@@ -4,13 +4,13 @@ | |||
4 | <text bottom="-20" follows="top|left" left="15" width="300"> | 4 | <text bottom="-20" follows="top|left" left="15" width="300"> |
5 | Do not show popups: | 5 | Do not show popups: |
6 | </text> | 6 | </text> |
7 | <scroll_list follows="top|left" height="100" left="15" name="disabled_popups" width="480" /> | 7 | <scroll_list follows="top|left" height="88" left="15" name="disabled_popups" width="480" /> |
8 | <button follows="top|left" height="20" label="Enable this popup" left="15" | 8 | <button follows="top|left" height="20" label="Enable this popup" left="15" |
9 | name="enable_popup" width="150" /> | 9 | name="enable_popup" width="150" /> |
10 | <text follows="top|left" left="15" width="128"> | 10 | <text follows="top|left" left="15" width="128"> |
11 | Show popups: | 11 | Show popups: |
12 | </text> | 12 | </text> |
13 | <scroll_list follows="top|left" height="100" left="15" name="enabled_popups" width="480" /> | 13 | <scroll_list follows="top|left" height="88" left="15" name="enabled_popups" width="480" /> |
14 | 14 | ||
15 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 15 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
16 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 16 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" |
@@ -32,6 +32,12 @@ | |||
32 | width="270" /> | 32 | width="270" /> |
33 | 33 | ||
34 | <button bottom_delta="-35" follows="top|left" height="20" | 34 | <button bottom_delta="-35" follows="top|left" height="20" |
35 | label="Reset 'Show next time' Dialogs..." left="15" | 35 | label="Show all 'Skip next time' Dialogs..." left="15" |
36 | name="reset_dialogs_btn" width="210" /> | 36 | name="reset_dialogs_btn" width="210" |
37 | tool_tip="Enable all of the optional popups and 'first time use' notifications."/> | ||
38 | |||
39 | <button bottom_delta="0" follows="top|right" height="20" | ||
40 | label="Skip all 'Skip next time' Dialogs..." left="-225" | ||
41 | name="skip_dialogs_btn" width="210" | ||
42 | tool_tip="Disable all of the optional popups and 'first time use' notifications."/> | ||
37 | </panel> | 43 | </panel> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_region_debug.xml b/linden/indra/newview/skins/xui/en-us/panel_region_debug.xml index b5c6858..fb917f6 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_region_debug.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_region_debug.xml | |||
@@ -53,7 +53,7 @@ | |||
53 | tool_tip="Give 2 minute countdown and restart region" width="100" /> | 53 | tool_tip="Give 2 minute countdown and restart region" width="100" /> |
54 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" | 54 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" |
55 | left="120" name="restart_help" width="18" /> | 55 | left="120" name="restart_help" width="18" /> |
56 | <button bottom_delta="-20" follows="left|top" height="20" label="Cancel Restart" | 56 | <button bottom_delta="-20" follows="left|top" height="20" label="Delay Restart" |
57 | left="10" name="cancel_restart_btn" tool_tip="Cancel region restart" | 57 | left="10" name="cancel_restart_btn" tool_tip="Delay region restart by one hour" |
58 | width="100" /> | 58 | width="100" /> |
59 | </panel> | 59 | </panel> |
diff --git a/linden/indra/newview/viewer.cpp b/linden/indra/newview/viewer.cpp index 2f05754..7ff6cc3 100644 --- a/linden/indra/newview/viewer.cpp +++ b/linden/indra/newview/viewer.cpp | |||
@@ -81,7 +81,9 @@ | |||
81 | #if LL_LINUX | 81 | #if LL_LINUX |
82 | # include <dlfcn.h> // RTLD_LAZY | 82 | # include <dlfcn.h> // RTLD_LAZY |
83 | # include <execinfo.h> // backtrace - glibc only | 83 | # include <execinfo.h> // backtrace - glibc only |
84 | # ifndef LL_ELFBIN | ||
84 | #define LL_ELFBIN 1 | 85 | #define LL_ELFBIN 1 |
86 | # endif // LL_ELFBIN | ||
85 | # if LL_ELFBIN | 87 | # if LL_ELFBIN |
86 | # include <cxxabi.h> // for symbol demangling | 88 | # include <cxxabi.h> // for symbol demangling |
87 | # include "ELFIO.h" // for better backtraces | 89 | # include "ELFIO.h" // for better backtraces |
@@ -189,6 +191,7 @@ | |||
189 | #include "llnotify.h" | 191 | #include "llnotify.h" |
190 | #include "llselectmgr.h" | 192 | #include "llselectmgr.h" |
191 | #include "llsky.h" | 193 | #include "llsky.h" |
194 | #include "llsrv.h" | ||
192 | #include "llstartup.h" | 195 | #include "llstartup.h" |
193 | #include "llstatusbar.h" | 196 | #include "llstatusbar.h" |
194 | #include "llsurface.h" | 197 | #include "llsurface.h" |
@@ -337,8 +340,7 @@ static EUserServerDomain UserServerDefaultChoice = USERSERVER_DMZ; | |||
337 | BOOL gHackGodmode = FALSE; | 340 | BOOL gHackGodmode = FALSE; |
338 | #endif | 341 | #endif |
339 | 342 | ||
340 | // Only used if not empty. Otherwise uses value from table above. | 343 | std::vector<std::string> gLoginURIs; |
341 | static std::string gLoginURI; | ||
342 | static std::string gHelperURI; | 344 | static std::string gHelperURI; |
343 | 345 | ||
344 | LLAgent gAgent; | 346 | LLAgent gAgent; |
@@ -382,7 +384,7 @@ LLUUID gViewerDigest; // MD5 digest of the viewer's executable file. | |||
382 | LLPumpIO* gServicePump = NULL; | 384 | LLPumpIO* gServicePump = NULL; |
383 | S32 gNumSessions = 0; | 385 | S32 gNumSessions = 0; |
384 | 386 | ||
385 | BOOL gAllowAFK = TRUE; | 387 | BOOL gAllowIdleAFK = TRUE; |
386 | F32 gAFKTimeout = DEFAULT_AFK_TIMEOUT; | 388 | F32 gAFKTimeout = DEFAULT_AFK_TIMEOUT; |
387 | F32 gMouseSensitivity = 3.f; | 389 | F32 gMouseSensitivity = 3.f; |
388 | BOOL gInvertMouse = FALSE; | 390 | BOOL gInvertMouse = FALSE; |
@@ -2397,7 +2399,7 @@ static inline BOOL do_elfio_glibc_backtrace() | |||
2397 | } | 2399 | } |
2398 | // print offset from symbol start | 2400 | // print offset from symbol start |
2399 | fprintf(StraceFile, | 2401 | fprintf(StraceFile, |
2400 | "+0x%x) [%p]\n", | 2402 | "+0x%lx) [%p]\n", |
2401 | uintptr_t(array[btpos]) - | 2403 | uintptr_t(array[btpos]) - |
2402 | value, | 2404 | value, |
2403 | array[btpos]); | 2405 | array[btpos]); |
@@ -2429,8 +2431,57 @@ static inline BOOL do_elfio_glibc_backtrace() | |||
2429 | #endif // LL_ELFBIN | 2431 | #endif // LL_ELFBIN |
2430 | #endif // LL_LINUX | 2432 | #endif // LL_LINUX |
2431 | 2433 | ||
2434 | /* Report whether we're being run under the control of a debugger. */ | ||
2435 | static inline bool being_debugged() | ||
2436 | { | ||
2437 | static enum {unknown, no, yes} debugged = unknown; | ||
2438 | |||
2439 | if (debugged == unknown) | ||
2440 | { | ||
2441 | #if LL_LINUX | ||
2442 | pid_t ppid = getppid(); | ||
2443 | char *name; | ||
2444 | int ret; | ||
2445 | |||
2446 | ret = asprintf(&name, "/proc/%d/exe", ppid); | ||
2447 | if (ret != -1) | ||
2448 | { | ||
2449 | char buf[1024]; | ||
2450 | size_t n; | ||
2451 | |||
2452 | n = readlink(name, buf, sizeof(buf) - 1); | ||
2453 | if (n != -1) | ||
2454 | { | ||
2455 | char *base = strrchr(buf, '/'); | ||
2456 | buf[n + 1] = '\0'; | ||
2457 | if (base == NULL) | ||
2458 | { | ||
2459 | base = buf; | ||
2460 | } else { | ||
2461 | base += 1; | ||
2462 | } | ||
2463 | |||
2464 | if (strcmp(base, "gdb") == 0) | ||
2465 | { | ||
2466 | debugged = yes; | ||
2467 | } | ||
2468 | } | ||
2469 | free(name); | ||
2470 | } | ||
2471 | #endif // LL_LINUX | ||
2472 | } | ||
2473 | |||
2474 | return debugged == yes; | ||
2475 | } | ||
2476 | |||
2432 | void viewer_crash_callback() | 2477 | void viewer_crash_callback() |
2433 | { | 2478 | { |
2479 | // This will drop us into the debugger. | ||
2480 | if (being_debugged()) | ||
2481 | { | ||
2482 | abort(); | ||
2483 | } | ||
2484 | |||
2434 | // Returns whether a dialog was shown. | 2485 | // Returns whether a dialog was shown. |
2435 | // Only do the logic in here once | 2486 | // Only do the logic in here once |
2436 | if (gReportedCrash) | 2487 | if (gReportedCrash) |
@@ -3483,7 +3534,7 @@ void idle_network() | |||
3483 | void idle_afk_check() | 3534 | void idle_afk_check() |
3484 | { | 3535 | { |
3485 | // check idle timers | 3536 | // check idle timers |
3486 | if (gAwayTriggerTimer.getElapsedTimeF32() > gAFKTimeout) | 3537 | if (gAllowIdleAFK && (gAwayTriggerTimer.getElapsedTimeF32() > gAFKTimeout)) |
3487 | { | 3538 | { |
3488 | gAgent.setAFK(); | 3539 | gAgent.setAFK(); |
3489 | } | 3540 | } |
@@ -4970,7 +5021,7 @@ void saved_settings_to_globals() | |||
4970 | gAgent.mHideGroupTitle = gSavedSettings.getBOOL("RenderHideGroupTitle"); | 5021 | gAgent.mHideGroupTitle = gSavedSettings.getBOOL("RenderHideGroupTitle"); |
4971 | 5022 | ||
4972 | gDebugWindowProc = gSavedSettings.getBOOL("DebugWindowProc"); | 5023 | gDebugWindowProc = gSavedSettings.getBOOL("DebugWindowProc"); |
4973 | gAllowAFK = gSavedSettings.getBOOL("AllowAFK"); | 5024 | gAllowIdleAFK = gSavedSettings.getBOOL("AllowIdleAFK"); |
4974 | gAFKTimeout = gSavedSettings.getF32("AFKTimeout"); | 5025 | gAFKTimeout = gSavedSettings.getF32("AFKTimeout"); |
4975 | gMouseSensitivity = gSavedSettings.getF32("MouseSensitivity"); | 5026 | gMouseSensitivity = gSavedSettings.getF32("MouseSensitivity"); |
4976 | gInvertMouse = gSavedSettings.getBOOL("InvertMouse"); | 5027 | gInvertMouse = gSavedSettings.getBOOL("InvertMouse"); |
@@ -5044,7 +5095,7 @@ void cleanup_saved_settings() | |||
5044 | 5095 | ||
5045 | gSavedSettings.setBOOL("DebugWindowProc", gDebugWindowProc); | 5096 | gSavedSettings.setBOOL("DebugWindowProc", gDebugWindowProc); |
5046 | 5097 | ||
5047 | gSavedSettings.setBOOL("AllowAFK", gAllowAFK); | 5098 | gSavedSettings.setBOOL("AllowIdleAFK", gAllowIdleAFK); |
5048 | gSavedSettings.setBOOL("ShowObjectUpdates", gShowObjectUpdates); | 5099 | gSavedSettings.setBOOL("ShowObjectUpdates", gShowObjectUpdates); |
5049 | 5100 | ||
5050 | if (!gNoRender) | 5101 | if (!gNoRender) |
@@ -5483,7 +5534,14 @@ void catch_signals() | |||
5483 | // Handle the signals that default to causing a core image to be created, as per the man page on signal(2). | 5534 | // Handle the signals that default to causing a core image to be created, as per the man page on signal(2). |
5484 | signal(SIGILL, signal_handlers); | 5535 | signal(SIGILL, signal_handlers); |
5485 | signal(SIGTRAP, signal_handlers); | 5536 | signal(SIGTRAP, signal_handlers); |
5486 | signal(SIGABRT, signal_handlers); | 5537 | if (being_debugged()) |
5538 | { | ||
5539 | // If we're being run under the control of a debugger, give | ||
5540 | // ourselves a way to bail into the debugger. | ||
5541 | signal(SIGABRT, SIG_DFL); | ||
5542 | } else { | ||
5543 | signal(SIGABRT, signal_handlers); | ||
5544 | } | ||
5487 | signal(SIGFPE, signal_handlers); | 5545 | signal(SIGFPE, signal_handlers); |
5488 | signal(SIGBUS, signal_handlers); | 5546 | signal(SIGBUS, signal_handlers); |
5489 | signal(SIGSEGV, signal_handlers); | 5547 | signal(SIGSEGV, signal_handlers); |
@@ -5658,8 +5716,7 @@ int parse_args(int argc, char **argv) | |||
5658 | } | 5716 | } |
5659 | else if (!strcmp(argv[j], "-loginuri") && (++j < argc)) | 5717 | else if (!strcmp(argv[j], "-loginuri") && (++j < argc)) |
5660 | { | 5718 | { |
5661 | gLoginURI = argv[j]; | 5719 | gLoginURIs.push_back(utf8str_trim(argv[j])); |
5662 | gLoginURI = utf8str_trim(gLoginURI); | ||
5663 | } | 5720 | } |
5664 | else if (!strcmp(argv[j], "-helperuri") && (++j < argc)) | 5721 | else if (!strcmp(argv[j], "-helperuri") && (++j < argc)) |
5665 | { | 5722 | { |
@@ -5934,13 +5991,13 @@ void LLURLSimString::setString(const LLString& url) | |||
5934 | // static | 5991 | // static |
5935 | S32 LLURLSimString::parseGridIdx(const LLString& in_string, S32 idx0, S32* res, S32 max) | 5992 | S32 LLURLSimString::parseGridIdx(const LLString& in_string, S32 idx0, S32* res, S32 max) |
5936 | { | 5993 | { |
5937 | if ((std::string::size_type)idx0 == LLString::npos || in_string[idx0] != '/') | 5994 | if (idx0 == INT_MAX || in_string[idx0] != '/') |
5938 | { | 5995 | { |
5939 | return LLString::npos; // parse error | 5996 | return INT_MAX; // parse error |
5940 | } | 5997 | } |
5941 | idx0++; | 5998 | idx0++; |
5942 | std::string::size_type idx1 = in_string.find_first_of('/', idx0); | 5999 | std::string::size_type idx1 = in_string.find_first_of('/', idx0); |
5943 | S32 len = (idx1 == LLString::npos) ? LLString::npos : idx1-idx0; | 6000 | std::string::size_type len = (idx1 == LLString::npos) ? LLString::npos : idx1-idx0; |
5944 | LLString tstring = in_string.substr(idx0,len); | 6001 | LLString tstring = in_string.substr(idx0,len); |
5945 | S32 val = atoi(tstring.c_str()); | 6002 | S32 val = atoi(tstring.c_str()); |
5946 | *res = llclamp(val,0,max); | 6003 | *res = llclamp(val,0,max); |
@@ -5964,7 +6021,7 @@ bool LLURLSimString::parse() | |||
5964 | idx0 = sInstance.mSimString.find_first_not_of('/'); // strip any bogus initial '/' | 6021 | idx0 = sInstance.mSimString.find_first_not_of('/'); // strip any bogus initial '/' |
5965 | if (idx0 == LLString::npos) idx0 = 0; | 6022 | if (idx0 == LLString::npos) idx0 = 0; |
5966 | idx1 = sInstance.mSimString.find_first_of('/', idx0); | 6023 | idx1 = sInstance.mSimString.find_first_of('/', idx0); |
5967 | S32 len = (idx1 == LLString::npos) ? LLString::npos : idx1-idx0; | 6024 | std::string::size_type len = (idx1 == LLString::npos) ? LLString::npos : idx1-idx0; |
5968 | LLString tstring = sInstance.mSimString.substr(idx0,len); | 6025 | LLString tstring = sInstance.mSimString.substr(idx0,len); |
5969 | char* curlstr = curl_unescape(tstring.c_str(), tstring.size()); | 6026 | char* curlstr = curl_unescape(tstring.c_str(), tstring.size()); |
5970 | sInstance.mSimName = LLString(curlstr); | 6027 | sInstance.mSimName = LLString(curlstr); |
@@ -6577,14 +6634,14 @@ void cleanup_app() | |||
6577 | end_messaging_system(); | 6634 | end_messaging_system(); |
6578 | } | 6635 | } |
6579 | 6636 | ||
6580 | const std::string& getLoginURI() | 6637 | const std::vector<std::string>& getLoginURIs() |
6581 | { | 6638 | { |
6582 | if (gLoginURI.empty()) | 6639 | if (gLoginURIs.empty()) |
6583 | { | 6640 | { |
6584 | // not specified on the command line, use value from table | 6641 | // not specified on the command line, use value from table |
6585 | gLoginURI = gUserServerDomainName[gUserServerChoice].mLoginURI; | 6642 | gLoginURIs = LLSRV::rewriteURI(gUserServerDomainName[gUserServerChoice].mLoginURI); |
6586 | } | 6643 | } |
6587 | return gLoginURI; | 6644 | return gLoginURIs; |
6588 | } | 6645 | } |
6589 | 6646 | ||
6590 | const std::string& getHelperURI() | 6647 | const std::string& getHelperURI() |
diff --git a/linden/indra/newview/viewer.h b/linden/indra/newview/viewer.h index 141206c..22edc73 100644 --- a/linden/indra/newview/viewer.h +++ b/linden/indra/newview/viewer.h | |||
@@ -135,7 +135,7 @@ extern BOOL gDisplayNearestWater; | |||
135 | extern BOOL gDisplayFOV; | 135 | extern BOOL gDisplayFOV; |
136 | extern BOOL gForceRenderLandFence; | 136 | extern BOOL gForceRenderLandFence; |
137 | 137 | ||
138 | extern BOOL gAllowAFK; | 138 | extern BOOL gAllowIdleAFK; |
139 | extern BOOL gShowObjectUpdates; | 139 | extern BOOL gShowObjectUpdates; |
140 | 140 | ||
141 | extern BOOL gTeleportDisplay; | 141 | extern BOOL gTeleportDisplay; |
@@ -331,7 +331,7 @@ const LLUUID& agent_get_session_id(); | |||
331 | void agent_send_reliable_message(); | 331 | void agent_send_reliable_message(); |
332 | 332 | ||
333 | // Helpers for URIs | 333 | // Helpers for URIs |
334 | const std::string& getLoginURI(); | 334 | const std::vector<std::string>& getLoginURIs(); |
335 | const std::string& getHelperURI(); | 335 | const std::string& getHelperURI(); |
336 | 336 | ||
337 | #endif | 337 | #endif |
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index d22a7b5..2da4a22 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -430,7 +430,6 @@ class Linux_i686Manifest(LinuxManifest): | |||
430 | self.path("libssl.so.0.9.7") | 430 | self.path("libssl.so.0.9.7") |
431 | self.path("libexpat.so.1") | 431 | self.path("libexpat.so.1") |
432 | # self.path("libstdc++.so.6") | 432 | # self.path("libstdc++.so.6") |
433 | self.path("libelfio.so") | ||
434 | self.path("libuuid.so", "libuuid.so.1") | 433 | self.path("libuuid.so", "libuuid.so.1") |
435 | self.path("libSDL-1.2.so.0") | 434 | self.path("libSDL-1.2.so.0") |
436 | self.path("libtcmalloc.so.0") | 435 | self.path("libtcmalloc.so.0") |
@@ -442,7 +441,8 @@ class Linux_i686Manifest(LinuxManifest): | |||
442 | class Linux_x86_64Manifest(LinuxManifest): | 441 | class Linux_x86_64Manifest(LinuxManifest): |
443 | def construct(self): | 442 | def construct(self): |
444 | super(Linux_x86_64Manifest, self).construct() | 443 | super(Linux_x86_64Manifest, self).construct() |
445 | self.path("secondlife-x86_64-bin-stripped","bin/secondlife-bin") | 444 | self.path("secondlife-x86_64-bin-stripped","bin/do-not-directly-run-secondlife-bin") |
445 | # self.path("../linux_crash_logger/linux-crash-logger-x86_64-bin-stripped","linux-crash-logger.bin") | ||
446 | # TODO: I get the sense that this isn't fully fleshed out | 446 | # TODO: I get the sense that this isn't fully fleshed out |
447 | if self.prefix("../../libraries/x86_64-linux/lib_release_client", "lib"): | 447 | if self.prefix("../../libraries/x86_64-linux/lib_release_client", "lib"): |
448 | # self.path("libkdu_v42R.so") | 448 | # self.path("libkdu_v42R.so") |