diff options
72 files changed, 3422 insertions, 2567 deletions
diff --git a/linden/indra/cmake/DirectX.cmake b/linden/indra/cmake/DirectX.cmake index d406f37..e455755 100644 --- a/linden/indra/cmake/DirectX.cmake +++ b/linden/indra/cmake/DirectX.cmake | |||
@@ -3,6 +3,8 @@ | |||
3 | if (VIEWER AND WINDOWS) | 3 | if (VIEWER AND WINDOWS) |
4 | find_path(DIRECTX_INCLUDE_DIR dxdiag.h | 4 | find_path(DIRECTX_INCLUDE_DIR dxdiag.h |
5 | "$ENV{DXSDK_DIR}/Include" | 5 | "$ENV{DXSDK_DIR}/Include" |
6 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include" | ||
7 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include" | ||
6 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include" | 8 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include" |
7 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include" | 9 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include" |
8 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include" | 10 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include" |
@@ -23,6 +25,8 @@ if (VIEWER AND WINDOWS) | |||
23 | 25 | ||
24 | find_path(DIRECTX_LIBRARY_DIR dxguid.lib | 26 | find_path(DIRECTX_LIBRARY_DIR dxguid.lib |
25 | "$ENV{DXSDK_DIR}/Lib/x86" | 27 | "$ENV{DXSDK_DIR}/Lib/x86" |
28 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86" | ||
29 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86" | ||
26 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86" | 30 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86" |
27 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86" | 31 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86" |
28 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86" | 32 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86" |
diff --git a/linden/indra/llcommon/llsdserialize.cpp b/linden/indra/llcommon/llsdserialize.cpp index 9f4ce64..e2be922 100644 --- a/linden/indra/llcommon/llsdserialize.cpp +++ b/linden/indra/llcommon/llsdserialize.cpp | |||
@@ -441,7 +441,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
441 | } | 441 | } |
442 | if(istr.fail()) | 442 | if(istr.fail()) |
443 | { | 443 | { |
444 | llinfos << "STREAM FAILURE reading map." << llendl; | 444 | llwarns << "STREAM FAILURE reading map." << llendl; |
445 | parse_count = PARSE_FAILURE; | 445 | parse_count = PARSE_FAILURE; |
446 | } | 446 | } |
447 | break; | 447 | break; |
@@ -460,7 +460,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
460 | } | 460 | } |
461 | if(istr.fail()) | 461 | if(istr.fail()) |
462 | { | 462 | { |
463 | llinfos << "STREAM FAILURE reading array." << llendl; | 463 | llwarns << "STREAM FAILURE reading array." << llendl; |
464 | parse_count = PARSE_FAILURE; | 464 | parse_count = PARSE_FAILURE; |
465 | } | 465 | } |
466 | break; | 466 | break; |
@@ -496,7 +496,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
496 | } | 496 | } |
497 | if(istr.fail()) | 497 | if(istr.fail()) |
498 | { | 498 | { |
499 | llinfos << "STREAM FAILURE reading boolean." << llendl; | 499 | llwarns << "STREAM FAILURE reading boolean." << llendl; |
500 | parse_count = PARSE_FAILURE; | 500 | parse_count = PARSE_FAILURE; |
501 | } | 501 | } |
502 | break; | 502 | break; |
@@ -522,7 +522,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
522 | } | 522 | } |
523 | if(istr.fail()) | 523 | if(istr.fail()) |
524 | { | 524 | { |
525 | llinfos << "STREAM FAILURE reading boolean." << llendl; | 525 | llwarns << "STREAM FAILURE reading boolean." << llendl; |
526 | parse_count = PARSE_FAILURE; | 526 | parse_count = PARSE_FAILURE; |
527 | } | 527 | } |
528 | break; | 528 | break; |
@@ -535,7 +535,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
535 | data = integer; | 535 | data = integer; |
536 | if(istr.fail()) | 536 | if(istr.fail()) |
537 | { | 537 | { |
538 | llinfos << "STREAM FAILURE reading integer." << llendl; | 538 | llwarns << "STREAM FAILURE reading integer." << llendl; |
539 | parse_count = PARSE_FAILURE; | 539 | parse_count = PARSE_FAILURE; |
540 | } | 540 | } |
541 | break; | 541 | break; |
@@ -549,7 +549,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
549 | data = real; | 549 | data = real; |
550 | if(istr.fail()) | 550 | if(istr.fail()) |
551 | { | 551 | { |
552 | llinfos << "STREAM FAILURE reading real." << llendl; | 552 | llwarns << "STREAM FAILURE reading real." << llendl; |
553 | parse_count = PARSE_FAILURE; | 553 | parse_count = PARSE_FAILURE; |
554 | } | 554 | } |
555 | break; | 555 | break; |
@@ -563,7 +563,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
563 | data = id; | 563 | data = id; |
564 | if(istr.fail()) | 564 | if(istr.fail()) |
565 | { | 565 | { |
566 | llinfos << "STREAM FAILURE reading uuid." << llendl; | 566 | llwarns << "STREAM FAILURE reading uuid." << llendl; |
567 | parse_count = PARSE_FAILURE; | 567 | parse_count = PARSE_FAILURE; |
568 | } | 568 | } |
569 | break; | 569 | break; |
@@ -578,7 +578,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
578 | } | 578 | } |
579 | if(istr.fail()) | 579 | if(istr.fail()) |
580 | { | 580 | { |
581 | llinfos << "STREAM FAILURE reading string." << llendl; | 581 | llwarns << "STREAM FAILURE reading string." << llendl; |
582 | parse_count = PARSE_FAILURE; | 582 | parse_count = PARSE_FAILURE; |
583 | } | 583 | } |
584 | break; | 584 | break; |
@@ -600,7 +600,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
600 | } | 600 | } |
601 | if(istr.fail()) | 601 | if(istr.fail()) |
602 | { | 602 | { |
603 | llinfos << "STREAM FAILURE reading link." << llendl; | 603 | llwarns << "STREAM FAILURE reading link." << llendl; |
604 | parse_count = PARSE_FAILURE; | 604 | parse_count = PARSE_FAILURE; |
605 | } | 605 | } |
606 | break; | 606 | break; |
@@ -623,7 +623,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
623 | } | 623 | } |
624 | if(istr.fail()) | 624 | if(istr.fail()) |
625 | { | 625 | { |
626 | llinfos << "STREAM FAILURE reading date." << llendl; | 626 | llwarns << "STREAM FAILURE reading date." << llendl; |
627 | parse_count = PARSE_FAILURE; | 627 | parse_count = PARSE_FAILURE; |
628 | } | 628 | } |
629 | break; | 629 | break; |
@@ -636,14 +636,14 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
636 | } | 636 | } |
637 | if(istr.fail()) | 637 | if(istr.fail()) |
638 | { | 638 | { |
639 | llinfos << "STREAM FAILURE reading data." << llendl; | 639 | llwarns << "STREAM FAILURE reading data." << llendl; |
640 | parse_count = PARSE_FAILURE; | 640 | parse_count = PARSE_FAILURE; |
641 | } | 641 | } |
642 | break; | 642 | break; |
643 | 643 | ||
644 | default: | 644 | default: |
645 | parse_count = PARSE_FAILURE; | 645 | parse_count = PARSE_FAILURE; |
646 | llinfos << "Unrecognized character while parsing: int(" << (int)c | 646 | llwarns << "Unrecognized character while parsing: int(" << (int)c |
647 | << ")" << llendl; | 647 | << ")" << llendl; |
648 | break; | 648 | break; |
649 | } | 649 | } |
@@ -905,7 +905,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
905 | } | 905 | } |
906 | if(istr.fail()) | 906 | if(istr.fail()) |
907 | { | 907 | { |
908 | llinfos << "STREAM FAILURE reading binary map." << llendl; | 908 | llwarns << "STREAM FAILURE reading binary map." << llendl; |
909 | parse_count = PARSE_FAILURE; | 909 | parse_count = PARSE_FAILURE; |
910 | } | 910 | } |
911 | break; | 911 | break; |
@@ -924,7 +924,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
924 | } | 924 | } |
925 | if(istr.fail()) | 925 | if(istr.fail()) |
926 | { | 926 | { |
927 | llinfos << "STREAM FAILURE reading binary array." << llendl; | 927 | llwarns << "STREAM FAILURE reading binary array." << llendl; |
928 | parse_count = PARSE_FAILURE; | 928 | parse_count = PARSE_FAILURE; |
929 | } | 929 | } |
930 | break; | 930 | break; |
@@ -949,7 +949,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
949 | data = (S32)ntohl(value_nbo); | 949 | data = (S32)ntohl(value_nbo); |
950 | if(istr.fail()) | 950 | if(istr.fail()) |
951 | { | 951 | { |
952 | llinfos << "STREAM FAILURE reading binary integer." << llendl; | 952 | llwarns << "STREAM FAILURE reading binary integer." << llendl; |
953 | } | 953 | } |
954 | break; | 954 | break; |
955 | } | 955 | } |
@@ -961,7 +961,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
961 | data = ll_ntohd(real_nbo); | 961 | data = ll_ntohd(real_nbo); |
962 | if(istr.fail()) | 962 | if(istr.fail()) |
963 | { | 963 | { |
964 | llinfos << "STREAM FAILURE reading binary real." << llendl; | 964 | llwarns << "STREAM FAILURE reading binary real." << llendl; |
965 | } | 965 | } |
966 | break; | 966 | break; |
967 | } | 967 | } |
@@ -973,7 +973,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
973 | data = id; | 973 | data = id; |
974 | if(istr.fail()) | 974 | if(istr.fail()) |
975 | { | 975 | { |
976 | llinfos << "STREAM FAILURE reading binary uuid." << llendl; | 976 | llwarns << "STREAM FAILURE reading binary uuid." << llendl; |
977 | } | 977 | } |
978 | break; | 978 | break; |
979 | } | 979 | } |
@@ -994,7 +994,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
994 | } | 994 | } |
995 | if(istr.fail()) | 995 | if(istr.fail()) |
996 | { | 996 | { |
997 | llinfos << "STREAM FAILURE reading binary (notation-style) string." | 997 | llwarns << "STREAM FAILURE reading binary (notation-style) string." |
998 | << llendl; | 998 | << llendl; |
999 | parse_count = PARSE_FAILURE; | 999 | parse_count = PARSE_FAILURE; |
1000 | } | 1000 | } |
@@ -1014,7 +1014,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1014 | } | 1014 | } |
1015 | if(istr.fail()) | 1015 | if(istr.fail()) |
1016 | { | 1016 | { |
1017 | llinfos << "STREAM FAILURE reading binary string." << llendl; | 1017 | llwarns << "STREAM FAILURE reading binary string." << llendl; |
1018 | parse_count = PARSE_FAILURE; | 1018 | parse_count = PARSE_FAILURE; |
1019 | } | 1019 | } |
1020 | break; | 1020 | break; |
@@ -1033,7 +1033,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1033 | } | 1033 | } |
1034 | if(istr.fail()) | 1034 | if(istr.fail()) |
1035 | { | 1035 | { |
1036 | llinfos << "STREAM FAILURE reading binary link." << llendl; | 1036 | llwarns << "STREAM FAILURE reading binary link." << llendl; |
1037 | parse_count = PARSE_FAILURE; | 1037 | parse_count = PARSE_FAILURE; |
1038 | } | 1038 | } |
1039 | break; | 1039 | break; |
@@ -1046,7 +1046,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1046 | data = LLDate(real); | 1046 | data = LLDate(real); |
1047 | if(istr.fail()) | 1047 | if(istr.fail()) |
1048 | { | 1048 | { |
1049 | llinfos << "STREAM FAILURE reading binary date." << llendl; | 1049 | llwarns << "STREAM FAILURE reading binary date." << llendl; |
1050 | parse_count = PARSE_FAILURE; | 1050 | parse_count = PARSE_FAILURE; |
1051 | } | 1051 | } |
1052 | break; | 1052 | break; |
@@ -1075,7 +1075,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1075 | } | 1075 | } |
1076 | if(istr.fail()) | 1076 | if(istr.fail()) |
1077 | { | 1077 | { |
1078 | llinfos << "STREAM FAILURE reading binary." << llendl; | 1078 | llwarns << "STREAM FAILURE reading binary." << llendl; |
1079 | parse_count = PARSE_FAILURE; | 1079 | parse_count = PARSE_FAILURE; |
1080 | } | 1080 | } |
1081 | break; | 1081 | break; |
@@ -1083,7 +1083,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1083 | 1083 | ||
1084 | default: | 1084 | default: |
1085 | parse_count = PARSE_FAILURE; | 1085 | parse_count = PARSE_FAILURE; |
1086 | llinfos << "Unrecognized character while parsing: int(" << (int)c | 1086 | llwarns << "Unrecognized character while parsing: int(" << (int)c |
1087 | << ")" << llendl; | 1087 | << ")" << llendl; |
1088 | break; | 1088 | break; |
1089 | } | 1089 | } |
diff --git a/linden/indra/llcommon/llsdserialize_xml.cpp b/linden/indra/llcommon/llsdserialize_xml.cpp index 33206b4..dab6c1d 100644 --- a/linden/indra/llcommon/llsdserialize_xml.cpp +++ b/linden/indra/llcommon/llsdserialize_xml.cpp | |||
@@ -391,6 +391,14 @@ S32 LLSDXMLParser::Impl::parse(std::istream& input, LLSD& data) | |||
391 | 391 | ||
392 | if (status == XML_STATUS_ERROR) | 392 | if (status == XML_STATUS_ERROR) |
393 | { | 393 | { |
394 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser ))); | ||
395 | if ("parsing aborted" != error_string )//end of input | ||
396 | { | ||
397 | S32 line_number = XML_GetCurrentLineNumber( mParser ); | ||
398 | llwarns << "LLXmlTree parse failed. Line " << line_number << ": " | ||
399 | << error_string << llendl; | ||
400 | } | ||
401 | |||
394 | break; | 402 | break; |
395 | } | 403 | } |
396 | } | 404 | } |
@@ -408,7 +416,8 @@ S32 LLSDXMLParser::Impl::parse(std::istream& input, LLSD& data) | |||
408 | { | 416 | { |
409 | ((char*) buffer)[count ? count - 1 : 0] = '\0'; | 417 | ((char*) buffer)[count ? count - 1 : 0] = '\0'; |
410 | } | 418 | } |
411 | llinfos << "LLSDXMLParser::Impl::parse: XML_STATUS_ERROR parsing:" << (char*) buffer << llendl; | 419 | |
420 | |||
412 | data = LLSD(); | 421 | data = LLSD(); |
413 | return LLSDParser::PARSE_FAILURE; | 422 | return LLSDParser::PARSE_FAILURE; |
414 | } | 423 | } |
@@ -486,7 +495,13 @@ S32 LLSDXMLParser::Impl::parseLines(std::istream& input, LLSD& data) | |||
486 | if (status == XML_STATUS_ERROR | 495 | if (status == XML_STATUS_ERROR |
487 | && !mGracefullStop) | 496 | && !mGracefullStop) |
488 | { | 497 | { |
489 | llinfos << "LLSDXMLParser::Impl::parseLines: XML_STATUS_ERROR" << llendl; | 498 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser ))); |
499 | if ("parsing aborted" != error_string )//end of input | ||
500 | { | ||
501 | S32 line_number = XML_GetCurrentLineNumber( mParser ); | ||
502 | llwarns << "LLXmlTree parse failed. Line " << line_number << ": " | ||
503 | << error_string << llendl; | ||
504 | } | ||
490 | return LLSDParser::PARSE_FAILURE; | 505 | return LLSDParser::PARSE_FAILURE; |
491 | } | 506 | } |
492 | 507 | ||
@@ -552,7 +567,9 @@ void LLSDXMLParser::Impl::parsePart(const char* buf, int len) | |||
552 | XML_Status status = XML_Parse(mParser, buf, len, false); | 567 | XML_Status status = XML_Parse(mParser, buf, len, false); |
553 | if (status == XML_STATUS_ERROR) | 568 | if (status == XML_STATUS_ERROR) |
554 | { | 569 | { |
555 | llinfos << "Unexpected XML parsing error at start" << llendl; | 570 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser )) ); |
571 | |||
572 | llwarns << "Unexpected XML parsing error at start: " << error_string << llendl; | ||
556 | } | 573 | } |
557 | } | 574 | } |
558 | } | 575 | } |
diff --git a/linden/indra/llplugin/llpluginclassmedia.cpp b/linden/indra/llplugin/llpluginclassmedia.cpp index f0a44f7..31a9d1d 100755 --- a/linden/indra/llplugin/llpluginclassmedia.cpp +++ b/linden/indra/llplugin/llpluginclassmedia.cpp | |||
@@ -1143,6 +1143,15 @@ void LLPluginClassMedia::setBrowserUserAgent(const std::string& user_agent) | |||
1143 | sendMessage(message); | 1143 | sendMessage(message); |
1144 | } | 1144 | } |
1145 | 1145 | ||
1146 | #if LL_WINDOWS | ||
1147 | void LLPluginClassMedia::showConsole() | ||
1148 | { | ||
1149 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "show_console"); | ||
1150 | |||
1151 | sendMessage(message); | ||
1152 | } | ||
1153 | #endif | ||
1154 | |||
1146 | void LLPluginClassMedia::crashPlugin() | 1155 | void LLPluginClassMedia::crashPlugin() |
1147 | { | 1156 | { |
1148 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); | 1157 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); |
diff --git a/linden/indra/llplugin/llpluginclassmedia.h b/linden/indra/llplugin/llpluginclassmedia.h index 0004971..098312d 100755 --- a/linden/indra/llplugin/llpluginclassmedia.h +++ b/linden/indra/llplugin/llpluginclassmedia.h | |||
@@ -229,6 +229,11 @@ public: | |||
229 | std::string getMediaName() const { return mMediaName; }; | 229 | std::string getMediaName() const { return mMediaName; }; |
230 | std::string getMediaDescription() const { return mMediaDescription; }; | 230 | std::string getMediaDescription() const { return mMediaDescription; }; |
231 | 231 | ||
232 | #if LL_WINDOWS | ||
233 | //Open a debug console for this plugin. | ||
234 | void showConsole(); | ||
235 | #endif | ||
236 | |||
232 | // Crash the plugin. If you use this outside of a testbed, you will be punished. | 237 | // Crash the plugin. If you use this outside of a testbed, you will be punished. |
233 | void crashPlugin(); | 238 | void crashPlugin(); |
234 | 239 | ||
diff --git a/linden/indra/llplugin/llpluginmessage.cpp b/linden/indra/llplugin/llpluginmessage.cpp index 0810a04..9c4940a 100755 --- a/linden/indra/llplugin/llpluginmessage.cpp +++ b/linden/indra/llplugin/llpluginmessage.cpp | |||
@@ -368,7 +368,8 @@ std::string LLPluginMessage::generate(void) const | |||
368 | 368 | ||
369 | // Pretty XML may be slightly easier to deal with while debugging... | 369 | // Pretty XML may be slightly easier to deal with while debugging... |
370 | // LLSDSerialize::toXML(mMessage, result); | 370 | // LLSDSerialize::toXML(mMessage, result); |
371 | LLSDSerialize::toPrettyXML(mMessage, result); | 371 | // LLSDSerialize::toPrettyXML(mMessage, result); |
372 | result << mMessage; | ||
372 | 373 | ||
373 | return result.str(); | 374 | return result.str(); |
374 | } | 375 | } |
@@ -383,10 +384,12 @@ int LLPluginMessage::parse(const std::string &message) | |||
383 | // clear any previous state | 384 | // clear any previous state |
384 | clear(); | 385 | clear(); |
385 | 386 | ||
386 | std::istringstream input(message); | 387 | std::istringstream input(message); |
387 | 388 | ||
388 | S32 parse_result = LLSDSerialize::fromXML(mMessage, input); | 389 | |
389 | 390 | // S32 parse_result = LLSDSerialize::fromXML(test, input); | |
391 | S32 parse_result = LLSDSerialize::fromNotation( mMessage, input, LLSDSerialize::SIZE_UNLIMITED) ; | ||
392 | |||
390 | return (int)parse_result; | 393 | return (int)parse_result; |
391 | } | 394 | } |
392 | 395 | ||
diff --git a/linden/indra/llplugin/llpluginprocesschild.cpp b/linden/indra/llplugin/llpluginprocesschild.cpp index 0d95cac..168236e 100755 --- a/linden/indra/llplugin/llpluginprocesschild.cpp +++ b/linden/indra/llplugin/llpluginprocesschild.cpp | |||
@@ -42,6 +42,14 @@ | |||
42 | #include "llpluginmessagepipe.h" | 42 | #include "llpluginmessagepipe.h" |
43 | #include "llpluginmessageclasses.h" | 43 | #include "llpluginmessageclasses.h" |
44 | 44 | ||
45 | #if LL_WINDOWS | ||
46 | #include <windows.h> | ||
47 | #include <fcntl.h> | ||
48 | #include <io.h> | ||
49 | #include <iostream> | ||
50 | #include <fstream> | ||
51 | #endif | ||
52 | |||
45 | static const F32 HEARTBEAT_SECONDS = 1.0f; | 53 | static const F32 HEARTBEAT_SECONDS = 1.0f; |
46 | static const F32 PLUGIN_IDLE_SECONDS = 1.0f / 100.0f; // Each call to idle will give the plugin this much time. | 54 | static const F32 PLUGIN_IDLE_SECONDS = 1.0f / 100.0f; // Each call to idle will give the plugin this much time. |
47 | 55 | ||
@@ -420,6 +428,12 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message) | |||
420 | { | 428 | { |
421 | mSleepTime = parsed.getValueReal("time"); | 429 | mSleepTime = parsed.getValueReal("time"); |
422 | } | 430 | } |
431 | #if LL_WINDOWS | ||
432 | else if(message_name == "show_console") | ||
433 | { | ||
434 | createConsole(); | ||
435 | } | ||
436 | #endif | ||
423 | else if(message_name == "crash") | 437 | else if(message_name == "crash") |
424 | { | 438 | { |
425 | // Crash the plugin | 439 | // Crash the plugin |
@@ -569,3 +583,46 @@ void LLPluginProcessChild::deliverQueuedMessages() | |||
569 | } | 583 | } |
570 | } | 584 | } |
571 | } | 585 | } |
586 | |||
587 | #if LL_WINDOWS | ||
588 | void LLPluginProcessChild::createConsole() | ||
589 | { | ||
590 | const S32 MAX_CONSOLE_LINES = 500; | ||
591 | |||
592 | int h_con_handle; | ||
593 | long l_std_handle; | ||
594 | |||
595 | CONSOLE_SCREEN_BUFFER_INFO coninfo; | ||
596 | FILE *fp; | ||
597 | |||
598 | // allocate a console for this app | ||
599 | AllocConsole(); | ||
600 | |||
601 | // set the screen buffer to be big enough to let us scroll text | ||
602 | GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); | ||
603 | coninfo.dwSize.Y = MAX_CONSOLE_LINES; | ||
604 | SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); | ||
605 | |||
606 | // redirect unbuffered STDOUT to the console | ||
607 | l_std_handle = (long)GetStdHandle(STD_OUTPUT_HANDLE); | ||
608 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
609 | fp = _fdopen( h_con_handle, "w" ); | ||
610 | *stdout = *fp; | ||
611 | setvbuf( stdout, NULL, _IONBF, 0 ); | ||
612 | |||
613 | // redirect unbuffered STDIN to the console | ||
614 | l_std_handle = (long)GetStdHandle(STD_INPUT_HANDLE); | ||
615 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
616 | fp = _fdopen( h_con_handle, "r" ); | ||
617 | *stdin = *fp; | ||
618 | setvbuf( stdin, NULL, _IONBF, 0 ); | ||
619 | |||
620 | // redirect unbuffered STDERR to the console | ||
621 | l_std_handle = (long)GetStdHandle(STD_ERROR_HANDLE); | ||
622 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
623 | fp = _fdopen( h_con_handle, "w" ); | ||
624 | *stderr = *fp; | ||
625 | setvbuf( stderr, NULL, _IOFBF, 1024 ); //Assigning a buffer improves speed a LOT, esp on vista/win7 | ||
626 | //_IOLBF is borked. | ||
627 | } | ||
628 | #endif \ No newline at end of file | ||
diff --git a/linden/indra/llplugin/llpluginprocesschild.h b/linden/indra/llplugin/llpluginprocesschild.h index 5d643d7..6d864bb 100755 --- a/linden/indra/llplugin/llpluginprocesschild.h +++ b/linden/indra/llplugin/llpluginprocesschild.h | |||
@@ -76,7 +76,11 @@ public: | |||
76 | 76 | ||
77 | // Inherited from LLPluginInstanceMessageListener | 77 | // Inherited from LLPluginInstanceMessageListener |
78 | /* virtual */ void receivePluginMessage(const std::string &message); | 78 | /* virtual */ void receivePluginMessage(const std::string &message); |
79 | 79 | ||
80 | #if LL_WINDOWS | ||
81 | void createConsole(); | ||
82 | #endif | ||
83 | |||
80 | private: | 84 | private: |
81 | 85 | ||
82 | enum EState | 86 | enum EState |
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index 453bb50..c4f9525 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -1344,7 +1344,7 @@ void LLLineEditor::defineMenuCallbacks(LLMenuGL* menu) { | |||
1344 | "Select All Text", | 1344 | "Select All Text", |
1345 | this, | 1345 | this, |
1346 | (void*)context_enable_selectall); | 1346 | (void*)context_enable_selectall); |
1347 | menu->setCtrlResponse(1+LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, | 1347 | menu->setCtrlResponse(LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, |
1348 | "Select All Text", | 1348 | "Select All Text", |
1349 | this, | 1349 | this, |
1350 | (void*)context_selectall); | 1350 | (void*)context_selectall); |
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index 5bddcbc..dd72a69 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp | |||
@@ -636,7 +636,7 @@ void LLTextEditor::defineMenuCallbacks(LLMenuGL* menu) { | |||
636 | "Select All Text", | 636 | "Select All Text", |
637 | this, | 637 | this, |
638 | (void*)context_enable_selectall); | 638 | (void*)context_enable_selectall); |
639 | menu->setCtrlResponse(1+LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, | 639 | menu->setCtrlResponse(LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, |
640 | "Select All Text", | 640 | "Select All Text", |
641 | this, | 641 | this, |
642 | (void*)context_selectall); | 642 | (void*)context_selectall); |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index 72b2d02..5500a73 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -330,7 +330,6 @@ set(viewer_SOURCE_FILES | |||
330 | llpanelplace.cpp | 330 | llpanelplace.cpp |
331 | llpanelskins.cpp | 331 | llpanelskins.cpp |
332 | llpanelvolume.cpp | 332 | llpanelvolume.cpp |
333 | llpanelweb.cpp | ||
334 | llparcelselection.cpp | 333 | llparcelselection.cpp |
335 | llpatchvertexarray.cpp | 334 | llpatchvertexarray.cpp |
336 | llpolymesh.cpp | 335 | llpolymesh.cpp |
@@ -793,7 +792,6 @@ set(viewer_HEADER_FILES | |||
793 | llpanelplace.h | 792 | llpanelplace.h |
794 | llpanelskins.h | 793 | llpanelskins.h |
795 | llpanelvolume.h | 794 | llpanelvolume.h |
796 | llpanelweb.h | ||
797 | llparcelselection.h | 795 | llparcelselection.h |
798 | llpatchvertexarray.h | 796 | llpatchvertexarray.h |
799 | llpolymesh.h | 797 | llpolymesh.h |
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml index c9e9127..f0db00f 100644 --- a/linden/indra/newview/app_settings/logcontrol.xml +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -90,7 +90,12 @@ | |||
90 | <!--<string>TextureCache</string>--> | 90 | <!--<string>TextureCache</string>--> |
91 | <!--<string>Throttle</string>--> | 91 | <!--<string>Throttle</string>--> |
92 | <!--<string>Voice</string>--> | 92 | <!--<string>Voice</string>--> |
93 | <!--<string>"VoiceCaps"</string>--> | ||
94 | <!--<string>VoiceSession</string>--> | ||
95 | <!--<string>VoiceDaemon</string>--> | ||
96 | <!--<string>VoiceDevice</string>--> | ||
93 | <!--<string>VivoxProtocolParser</string>--> | 97 | <!--<string>VivoxProtocolParser</string>--> |
98 | |||
94 | <!--<string>Wearable</string>--> | 99 | <!--<string>Wearable</string>--> |
95 | <!--<string>WindLight</string>--> | 100 | <!--<string>WindLight</string>--> |
96 | 101 | ||
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 80eb65a..1ada9f8 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -39,16 +39,27 @@ | |||
39 | <key>Value</key> | 39 | <key>Value</key> |
40 | <integer>0</integer> | 40 | <integer>0</integer> |
41 | </map> | 41 | </map> |
42 | <key>VoiceModule</key> | 42 | <key>VoiceModuleMumble</key> |
43 | <map> | 43 | <map> |
44 | <key>Comment</key> | 44 | <key>Comment</key> |
45 | <string>Executable file that runs voice. Platform specific parts (like .exe on windows) are added automatically.</string> | 45 | <string>Executable file that runs mumble voice . Platform specific parts (like .exe on windows) are added automatically, paths are stripped off if present. Defaults to mumble if empty</string> |
46 | <key>Persist</key> | 46 | <key>Persist</key> |
47 | <integer>1</integer> | 47 | <integer>1</integer> |
48 | <key>Type</key> | 48 | <key>Type</key> |
49 | <string>String</string> | 49 | <string>String</string> |
50 | <key>Value</key> | 50 | <key>Value</key> |
51 | <string>SLVoice</string> | 51 | <string /> |
52 | </map> | ||
53 | <key>VoiceModuleVivox</key> | ||
54 | <map> | ||
55 | <key>Comment</key> | ||
56 | <string>Executable file that runs vivox voice. Platform specific parts (like .exe on windows) are added automatically, paths are stripped off if present. Defaults to SLVoice if empty.</string> | ||
57 | <key>Persist</key> | ||
58 | <integer>1</integer> | ||
59 | <key>Type</key> | ||
60 | <string>String</string> | ||
61 | <key>Value</key> | ||
62 | <string /> | ||
52 | </map> | 63 | </map> |
53 | 64 | ||
54 | <!-- end Aurora-specific settings --> | 65 | <!-- end Aurora-specific settings --> |
@@ -204,7 +215,7 @@ | |||
204 | <key>AutoCloseOOC</key> | 215 | <key>AutoCloseOOC</key> |
205 | <map> | 216 | <map> |
206 | <key>Comment</key> | 217 | <key>Comment</key> |
207 | <string>Auto-close OOC chat (i.e. add \"))\" if not found and \"((\" was used)</string> | 218 | <string>Auto-close OOC chat (i.e. add '"))'" if not found and '"(('" was used)</string> |
208 | <key>Persist</key> | 219 | <key>Persist</key> |
209 | <integer>1</integer> | 220 | <integer>1</integer> |
210 | <key>Type</key> | 221 | <key>Type</key> |
@@ -459,7 +470,7 @@ | |||
459 | <key>OmitResidentAsLastName</key> | 470 | <key>OmitResidentAsLastName</key> |
460 | <map> | 471 | <map> |
461 | <key>Comment</key> | 472 | <key>Comment</key> |
462 | <string>Do not display "Resident" as the last name for new residents in their legacy name</string> | 473 | <string>Do not display "Resident" as the last name for new residents in their legacy name</string> |
463 | <key>Persist</key> | 474 | <key>Persist</key> |
464 | <integer>1</integer> | 475 | <integer>1</integer> |
465 | <key>Type</key> | 476 | <key>Type</key> |
@@ -639,7 +650,7 @@ | |||
639 | <key>GoAction</key> | 650 | <key>GoAction</key> |
640 | <map> | 651 | <map> |
641 | <key>Comment</key> | 652 | <key>Comment</key> |
642 | <string>How to move for "Go Here" or double-click move. Either "Autopilot" or "Teleport".</string> | 653 | <string>How to move for "Go Here" or double-click move. Either "Autopilot" or "Teleport".</string> |
643 | <key>Persist</key> | 654 | <key>Persist</key> |
644 | <integer>1</integer> | 655 | <integer>1</integer> |
645 | <key>Type</key> | 656 | <key>Type</key> |
@@ -1004,6 +1015,17 @@ | |||
1004 | <key>Value</key> | 1015 | <key>Value</key> |
1005 | <integer>1</integer> | 1016 | <integer>1</integer> |
1006 | </map> | 1017 | </map> |
1018 | <key>ShowTimestamps</key> | ||
1019 | <map> | ||
1020 | <key>Comment</key> | ||
1021 | <string>Show timestamps in chat and IMs</string> | ||
1022 | <key>Persist</key> | ||
1023 | <integer>1</integer> | ||
1024 | <key>Type</key> | ||
1025 | <string>Boolean</string> | ||
1026 | <key>Value</key> | ||
1027 | <integer>1</integer> | ||
1028 | </map> | ||
1007 | <key>SpeedRez</key> | 1029 | <key>SpeedRez</key> |
1008 | <map> | 1030 | <map> |
1009 | <key>Comment</key> | 1031 | <key>Comment</key> |
@@ -1038,7 +1060,7 @@ | |||
1038 | <integer>1</integer> | 1060 | <integer>1</integer> |
1039 | </map> | 1061 | </map> |
1040 | <key>RenderWaterVoidCulling</key> | 1062 | <key>RenderWaterVoidCulling</key> |
1041 | <map> | 1063 | <map> |
1042 | <key>Comment</key> | 1064 | <key>Comment</key> |
1043 | <string>Cull void water objects when off-screen.</string> | 1065 | <string>Cull void water objects when off-screen.</string> |
1044 | <key>Persist</key> | 1066 | <key>Persist</key> |
@@ -1060,16 +1082,16 @@ | |||
1060 | <integer>0</integer> | 1082 | <integer>0</integer> |
1061 | </map> | 1083 | </map> |
1062 | <key>ResetFocusOnSelfClick</key> | 1084 | <key>ResetFocusOnSelfClick</key> |
1063 | <map> | 1085 | <map> |
1064 | <key>Comment</key> | 1086 | <key>Comment</key> |
1065 | <string>Setting this to TRUE resets your camera when you left-click your avatar</string> | 1087 | <string>Setting this to TRUE resets your camera when you left-click your avatar</string> |
1066 | <key>Persist</key> | 1088 | <key>Persist</key> |
1067 | <integer>1</integer> | 1089 | <integer>1</integer> |
1068 | <key>Type</key> | 1090 | <key>Type</key> |
1069 | <string>Boolean</string> | 1091 | <string>Boolean</string> |
1070 | <key>Value</key> | 1092 | <key>Value</key> |
1071 | <integer>1</integer> | 1093 | <integer>1</integer> |
1072 | </map> | 1094 | </map> |
1073 | <key>RezWithLandGroup</key> | 1095 | <key>RezWithLandGroup</key> |
1074 | <map> | 1096 | <map> |
1075 | <key>Comment</key> | 1097 | <key>Comment</key> |
@@ -1513,7 +1535,7 @@ | |||
1513 | </map> | 1535 | </map> |
1514 | 1536 | ||
1515 | <!-- Begin: OpenRegionInfo --> | 1537 | <!-- Begin: OpenRegionInfo --> |
1516 | 1538 | ||
1517 | <key>ToggleTeenMode</key> | 1539 | <key>ToggleTeenMode</key> |
1518 | <map> | 1540 | <map> |
1519 | <key>Comment</key> | 1541 | <key>Comment</key> |
@@ -1525,7 +1547,7 @@ | |||
1525 | <key>Value</key> | 1547 | <key>Value</key> |
1526 | <integer>1</integer> | 1548 | <integer>1</integer> |
1527 | </map> | 1549 | </map> |
1528 | 1550 | ||
1529 | <!-- Begin: AO--> | 1551 | <!-- Begin: AO--> |
1530 | 1552 | ||
1531 | <key>AOEnabled</key> | 1553 | <key>AOEnabled</key> |
@@ -1776,7 +1798,7 @@ | |||
1776 | <key>Value</key> | 1798 | <key>Value</key> |
1777 | <integer>1</integer> | 1799 | <integer>1</integer> |
1778 | </map> | 1800 | </map> |
1779 | 1801 | ||
1780 | <key>DownloadClientTags</key> | 1802 | <key>DownloadClientTags</key> |
1781 | <map> | 1803 | <map> |
1782 | <key>Comment</key> | 1804 | <key>Comment</key> |
@@ -2131,9 +2153,9 @@ | |||
2131 | <key>Value</key> | 2153 | <key>Value</key> |
2132 | <string>English (United States of America)</string> | 2154 | <string>English (United States of America)</string> |
2133 | </map> | 2155 | </map> |
2134 | 2156 | ||
2135 | <!-- End: Spellcheck & Translation --> | 2157 | <!-- End: Spellcheck & Translation --> |
2136 | 2158 | ||
2137 | <!-- Begin: RLVa --> | 2159 | <!-- Begin: RLVa --> |
2138 | 2160 | ||
2139 | <key>RestrainedLove</key> | 2161 | <key>RestrainedLove</key> |
@@ -2205,7 +2227,7 @@ | |||
2205 | <key>RLVaEnableWear</key> | 2227 | <key>RLVaEnableWear</key> |
2206 | <map> | 2228 | <map> |
2207 | <key>Comment</key> | 2229 | <key>Comment</key> |
2208 | <string>Enables the "Wear" option on the inventory item context menu for attachments</string> | 2230 | <string>Enables the "Wear" option on the inventory item context menu for attachments</string> |
2209 | <key>Persist</key> | 2231 | <key>Persist</key> |
2210 | <integer>1</integer> | 2232 | <integer>1</integer> |
2211 | <key>Type</key> | 2233 | <key>Type</key> |
@@ -2227,7 +2249,7 @@ | |||
2227 | <key>RLVaHideLockedLayers</key> | 2249 | <key>RLVaHideLockedLayers</key> |
2228 | <map> | 2250 | <map> |
2229 | <key>Comment</key> | 2251 | <key>Comment</key> |
2230 | <string>Hides "remove outfit" restricted worn clothing layers from @getoufit</string> | 2252 | <string>Hides "remove outfit" restricted worn clothing layers from @getoufit</string> |
2231 | <key>Persist</key> | 2253 | <key>Persist</key> |
2232 | <integer>1</integer> | 2254 | <integer>1</integer> |
2233 | <key>Type</key> | 2255 | <key>Type</key> |
@@ -2260,7 +2282,7 @@ | |||
2260 | <key>RLVaShowNameTags</key> | 2282 | <key>RLVaShowNameTags</key> |
2261 | <map> | 2283 | <map> |
2262 | <key>Comment</key> | 2284 | <key>Comment</key> |
2263 | <string>Display of names above avatars is subject to the general "Show Names" setting when @shownames=n restricted</string> | 2285 | <string>Display of names above avatars is subject to the general "Show Names" setting when @shownames=n restricted</string> |
2264 | <key>Persist</key> | 2286 | <key>Persist</key> |
2265 | <integer>1</integer> | 2287 | <integer>1</integer> |
2266 | <key>Type</key> | 2288 | <key>Type</key> |
@@ -2314,7 +2336,7 @@ | |||
2314 | </map> | 2336 | </map> |
2315 | 2337 | ||
2316 | <!-- End: RLVa --> | 2338 | <!-- End: RLVa --> |
2317 | 2339 | ||
2318 | <!-- Begin: socks5 --> | 2340 | <!-- Begin: socks5 --> |
2319 | 2341 | ||
2320 | <key>Socks5ProxyEnabled</key> | 2342 | <key>Socks5ProxyEnabled</key> |
@@ -2525,11 +2547,11 @@ | |||
2525 | <key>Value</key> | 2547 | <key>Value</key> |
2526 | <integer>-8888888</integer> | 2548 | <integer>-8888888</integer> |
2527 | </map> | 2549 | </map> |
2528 | 2550 | ||
2529 | <!-- End: full radar (Advanced menu) --> | 2551 | <!-- End: full radar (Advanced menu) --> |
2530 | 2552 | ||
2531 | <!-- END IMPRUDENCE-SPECIFIC SETTINGS --> | 2553 | <!-- END IMPRUDENCE-SPECIFIC SETTINGS --> |
2532 | 2554 | ||
2533 | <key>AFKTimeout</key> | 2555 | <key>AFKTimeout</key> |
2534 | <map> | 2556 | <map> |
2535 | <key>Comment</key> | 2557 | <key>Comment</key> |
@@ -2985,7 +3007,7 @@ | |||
2985 | <key>AutomaticFly</key> | 3007 | <key>AutomaticFly</key> |
2986 | <map> | 3008 | <map> |
2987 | <key>Comment</key> | 3009 | <key>Comment</key> |
2988 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> | 3010 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> |
2989 | <key>Persist</key> | 3011 | <key>Persist</key> |
2990 | <integer>1</integer> | 3012 | <integer>1</integer> |
2991 | <key>Type</key> | 3013 | <key>Type</key> |
@@ -3944,17 +3966,6 @@ | |||
3944 | <key>Value</key> | 3966 | <key>Value</key> |
3945 | <real>20.0</real> | 3967 | <real>20.0</real> |
3946 | </map> | 3968 | </map> |
3947 | <key>ChatShowTimestamps</key> | ||
3948 | <map> | ||
3949 | <key>Comment</key> | ||
3950 | <string>Show timestamps in chat</string> | ||
3951 | <key>Persist</key> | ||
3952 | <integer>1</integer> | ||
3953 | <key>Type</key> | ||
3954 | <string>Boolean</string> | ||
3955 | <key>Value</key> | ||
3956 | <integer>1</integer> | ||
3957 | </map> | ||
3958 | <key>ChatVisible</key> | 3969 | <key>ChatVisible</key> |
3959 | <map> | 3970 | <map> |
3960 | <key>Comment</key> | 3971 | <key>Comment</key> |
@@ -5626,7 +5637,7 @@ | |||
5626 | <key>DoubleClickAction</key> | 5637 | <key>DoubleClickAction</key> |
5627 | <map> | 5638 | <map> |
5628 | <key>Comment</key> | 5639 | <key>Comment</key> |
5629 | <string>What to do when you double-click. Either "None" or "Go".</string> | 5640 | <string>What to do when you double-click. Either "None" or "Go".</string> |
5630 | <key>Persist</key> | 5641 | <key>Persist</key> |
5631 | <integer>1</integer> | 5642 | <integer>1</integer> |
5632 | <key>Type</key> | 5643 | <key>Type</key> |
@@ -5862,7 +5873,7 @@ | |||
5862 | <key>FindLandType</key> | 5873 | <key>FindLandType</key> |
5863 | <map> | 5874 | <map> |
5864 | <key>Comment</key> | 5875 | <key>Comment</key> |
5865 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> | 5876 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> |
5866 | <key>Persist</key> | 5877 | <key>Persist</key> |
5867 | <integer>1</integer> | 5878 | <integer>1</integer> |
5868 | <key>Type</key> | 5879 | <key>Type</key> |
@@ -7413,17 +7424,6 @@ | |||
7413 | <key>Value</key> | 7424 | <key>Value</key> |
7414 | <integer>0</integer> | 7425 | <integer>0</integer> |
7415 | </map> | 7426 | </map> |
7416 | <key>IMShowTimestamps</key> | ||
7417 | <map> | ||
7418 | <key>Comment</key> | ||
7419 | <string>Show timestamps in IM</string> | ||
7420 | <key>Persist</key> | ||
7421 | <integer>1</integer> | ||
7422 | <key>Type</key> | ||
7423 | <string>Boolean</string> | ||
7424 | <key>Value</key> | ||
7425 | <integer>1</integer> | ||
7426 | </map> | ||
7427 | <key>IgnorePixelDepth</key> | 7427 | <key>IgnorePixelDepth</key> |
7428 | <map> | 7428 | <map> |
7429 | <key>Comment</key> | 7429 | <key>Comment</key> |
@@ -7795,7 +7795,7 @@ | |||
7795 | <key>LastFindPanel</key> | 7795 | <key>LastFindPanel</key> |
7796 | <map> | 7796 | <map> |
7797 | <key>Comment</key> | 7797 | <key>Comment</key> |
7798 | <string>Controls which find operation appears by default when clicking "Find" button </string> | 7798 | <string>Controls which find operation appears by default when clicking "Find" button </string> |
7799 | <key>Persist</key> | 7799 | <key>Persist</key> |
7800 | <integer>1</integer> | 7800 | <integer>1</integer> |
7801 | <key>Type</key> | 7801 | <key>Type</key> |
@@ -8317,7 +8317,7 @@ | |||
8317 | <key>MediaOnAPrimUI</key> | 8317 | <key>MediaOnAPrimUI</key> |
8318 | <map> | 8318 | <map> |
8319 | <key>Comment</key> | 8319 | <key>Comment</key> |
8320 | <string>Whether or not to show the "link sharing" UI</string> | 8320 | <string>Whether or not to show the "link sharing" UI</string> |
8321 | <key>Persist</key> | 8321 | <key>Persist</key> |
8322 | <integer>1</integer> | 8322 | <integer>1</integer> |
8323 | <key>Type</key> | 8323 | <key>Type</key> |
@@ -8914,7 +8914,7 @@ | |||
8914 | <key>OverlayTitle</key> | 8914 | <key>OverlayTitle</key> |
8915 | <map> | 8915 | <map> |
8916 | <key>Comment</key> | 8916 | <key>Comment</key> |
8917 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> | 8917 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> |
8918 | <key>Persist</key> | 8918 | <key>Persist</key> |
8919 | <integer>1</integer> | 8919 | <integer>1</integer> |
8920 | <key>Type</key> | 8920 | <key>Type</key> |
@@ -13257,7 +13257,7 @@ | |||
13257 | <key>UISndHealthReductionThreshold</key> | 13257 | <key>UISndHealthReductionThreshold</key> |
13258 | <map> | 13258 | <map> |
13259 | <key>Comment</key> | 13259 | <key>Comment</key> |
13260 | <string>Amount of health reduction required to trigger "pain" sound</string> | 13260 | <string>Amount of health reduction required to trigger "pain" sound</string> |
13261 | <key>Persist</key> | 13261 | <key>Persist</key> |
13262 | <integer>1</integer> | 13262 | <integer>1</integer> |
13263 | <key>Type</key> | 13263 | <key>Type</key> |
@@ -13290,7 +13290,7 @@ | |||
13290 | <key>UISndMoneyChangeThreshold</key> | 13290 | <key>UISndMoneyChangeThreshold</key> |
13291 | <map> | 13291 | <map> |
13292 | <key>Comment</key> | 13292 | <key>Comment</key> |
13293 | <string>Amount of change in L$ balance required to trigger "money" sound</string> | 13293 | <string>Amount of change in L$ balance required to trigger "money" sound</string> |
13294 | <key>Persist</key> | 13294 | <key>Persist</key> |
13295 | <integer>1</integer> | 13295 | <integer>1</integer> |
13296 | <key>Type</key> | 13296 | <key>Type</key> |
@@ -13587,7 +13587,7 @@ | |||
13587 | <key>UseDebugMenus</key> | 13587 | <key>UseDebugMenus</key> |
13588 | <map> | 13588 | <map> |
13589 | <key>Comment</key> | 13589 | <key>Comment</key> |
13590 | <string>Turns on "Debug" menu</string> | 13590 | <string>Turns on "Debug" menu</string> |
13591 | <key>Persist</key> | 13591 | <key>Persist</key> |
13592 | <integer>1</integer> | 13592 | <integer>1</integer> |
13593 | <key>Type</key> | 13593 | <key>Type</key> |
diff --git a/linden/indra/newview/hippogridmanager.cpp b/linden/indra/newview/hippogridmanager.cpp index 78539f8..4c46d3e 100644 --- a/linden/indra/newview/hippogridmanager.cpp +++ b/linden/indra/newview/hippogridmanager.cpp | |||
@@ -89,7 +89,7 @@ HippoGridInfo::HippoGridInfo(const std::string& gridNick) : | |||
89 | mPasswordAvatar(LLStringUtil::null), | 89 | mPasswordAvatar(LLStringUtil::null), |
90 | mXmlState(XML_VOID), | 90 | mXmlState(XML_VOID), |
91 | mVoiceConnector("SLVoice"), | 91 | mVoiceConnector("SLVoice"), |
92 | mRenderCompat(true), | 92 | mRenderCompat(false), |
93 | mMaxAgentGroups(-1), | 93 | mMaxAgentGroups(-1), |
94 | mCurrencySymbol("OS$"), | 94 | mCurrencySymbol("OS$"), |
95 | mRealCurrencySymbol("US$"), | 95 | mRealCurrencySymbol("US$"), |
diff --git a/linden/indra/newview/impprefsfonts.cpp b/linden/indra/newview/impprefsfonts.cpp index a4dcd34..505761b 100644 --- a/linden/indra/newview/impprefsfonts.cpp +++ b/linden/indra/newview/impprefsfonts.cpp | |||
@@ -51,6 +51,10 @@ ImpPrefsFonts::~ImpPrefsFonts() | |||
51 | 51 | ||
52 | BOOL ImpPrefsFonts::postBuild() | 52 | BOOL ImpPrefsFonts::postBuild() |
53 | { | 53 | { |
54 | childSetValue("ui_scale_slider", gSavedSettings.getF32("UIScaleFactor")); | ||
55 | childSetValue("ui_auto_scale", gSavedSettings.getBOOL("UIAutoScale")); | ||
56 | childSetAction("reset_ui_size", onClickResetUISize, this); | ||
57 | |||
54 | refresh(); | 58 | refresh(); |
55 | return true; | 59 | return true; |
56 | } | 60 | } |
@@ -79,6 +83,9 @@ void ImpPrefsFonts::refresh() | |||
79 | 83 | ||
80 | void ImpPrefsFonts::apply() | 84 | void ImpPrefsFonts::apply() |
81 | { | 85 | { |
86 | gSavedSettings.setF32("UIScaleFactor", childGetValue("ui_scale_slider").asReal()); | ||
87 | gSavedSettings.setBOOL("UIAutoScale", childGetValue("ui_auto_scale")); | ||
88 | |||
82 | bool changed = false; | 89 | bool changed = false; |
83 | 90 | ||
84 | LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts"); | 91 | LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts"); |
@@ -126,3 +133,11 @@ void ImpPrefsFonts::apply() | |||
126 | void ImpPrefsFonts::cancel() | 133 | void ImpPrefsFonts::cancel() |
127 | { | 134 | { |
128 | } | 135 | } |
136 | |||
137 | // static | ||
138 | void ImpPrefsFonts::onClickResetUISize(void* user_data) | ||
139 | { | ||
140 | ImpPrefsFonts* self = (ImpPrefsFonts*)user_data; | ||
141 | F32 def = gSavedSettings.getControl("UIScaleFactor")->getDefault().asReal(); | ||
142 | self->childSetValue("ui_scale_slider", def); | ||
143 | } | ||
diff --git a/linden/indra/newview/impprefsfonts.h b/linden/indra/newview/impprefsfonts.h index 12aa0bb..0319261 100644 --- a/linden/indra/newview/impprefsfonts.h +++ b/linden/indra/newview/impprefsfonts.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file impprefsfonts.h | 2 | * @file impprefsfonts.h |
3 | * @brief Font preferences panel | 3 | * @brief UI and font preferences panel |
4 | * | 4 | * |
5 | * Copyright (c) 2010, Jacek Antonelli | 5 | * Copyright (c) 2010, Jacek Antonelli |
6 | * | 6 | * |
@@ -40,6 +40,9 @@ public: | |||
40 | void refresh(); | 40 | void refresh(); |
41 | void apply(); | 41 | void apply(); |
42 | void cancel(); | 42 | void cancel(); |
43 | |||
44 | private: | ||
45 | static void onClickResetUISize(void*); | ||
43 | }; | 46 | }; |
44 | 47 | ||
45 | #endif // IMP_PREFSFONTS_H | 48 | #endif // IMP_PREFSFONTS_H |
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss index 398c26d..aa31c3b 100644 --- a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss +++ b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss | |||
@@ -9,11 +9,11 @@ | |||
9 | ; These will change | 9 | ; These will change |
10 | AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460} | 10 | AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460} |
11 | AppName=Imprudence Viewer Experimental | 11 | AppName=Imprudence Viewer Experimental |
12 | AppVerName=Imprudence Viewer 1.4.0 Experimental 2011.03.20 | 12 | AppVerName=Imprudence Viewer 1.4.0 Experimental 2011.04.19 |
13 | DefaultDirName={pf}\ImprudenceExperimental | 13 | DefaultDirName={pf}\ImprudenceExperimental |
14 | DefaultGroupName=Imprudence Viewer Experimental | 14 | DefaultGroupName=Imprudence Viewer Experimental |
15 | VersionInfoProductName=Imprudence Viewer Experimental | 15 | VersionInfoProductName=Imprudence Viewer Experimental |
16 | OutputBaseFilename=Imprudence-1.4.0-Experimental-2011.03.20-Setup | 16 | OutputBaseFilename=Imprudence-1.4.0-Experimental-2011.04.19-Setup |
17 | VersionInfoVersion=1.4.0 | 17 | VersionInfoVersion=1.4.0 |
18 | VersionInfoTextVersion=1.4.0 | 18 | VersionInfoTextVersion=1.4.0 |
19 | VersionInfoProductVersion=1.4.0 | 19 | VersionInfoProductVersion=1.4.0 |
diff --git a/linden/indra/newview/kowopenregionsettings.cpp b/linden/indra/newview/kowopenregionsettings.cpp index 0c4bb38..6257147 100644 --- a/linden/indra/newview/kowopenregionsettings.cpp +++ b/linden/indra/newview/kowopenregionsettings.cpp | |||
@@ -36,7 +36,6 @@ | |||
36 | #include "llviewerobject.h" | 36 | #include "llviewerobject.h" |
37 | #include "llfloaterregioninfo.h" | 37 | #include "llfloaterregioninfo.h" |
38 | #include "llfloaterworldmap.h" | 38 | #include "llfloaterworldmap.h" |
39 | #include "llvoiceclient.h" | ||
40 | #include "viewertime.h" | 39 | #include "viewertime.h" |
41 | 40 | ||
42 | //DEBUG includes | 41 | //DEBUG includes |
@@ -205,12 +204,7 @@ class OpenRegionInfoUpdate : public LLHTTPNode | |||
205 | { | 204 | { |
206 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; | 205 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; |
207 | } | 206 | } |
208 | if ( body.has("Voice") ) | 207 | |
209 | { | ||
210 | gSavedSettings.setString("VoiceModule", body["Voice"].asString()); | ||
211 | //gVoiceClient->close(); | ||
212 | //gVoiceClient->start(); | ||
213 | } | ||
214 | 208 | ||
215 | if (limitschanged) | 209 | if (limitschanged) |
216 | gFloaterTools->updateToolsSizeLimits(); | 210 | gFloaterTools->updateToolsSizeLimits(); |
diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index aa8cd15..cf681fa 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp | |||
@@ -159,6 +159,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp) | |||
159 | mIndicesIndex = 0; | 159 | mIndicesIndex = 0; |
160 | mTexture = NULL; | 160 | mTexture = NULL; |
161 | mTEOffset = -1; | 161 | mTEOffset = -1; |
162 | mIndexInTex = 0; | ||
162 | 163 | ||
163 | setDrawable(drawablep); | 164 | setDrawable(drawablep); |
164 | mVObjp = objp; | 165 | mVObjp = objp; |
diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h index e31b93f..f870370 100644 --- a/linden/indra/newview/llface.h +++ b/linden/indra/newview/llface.h | |||
@@ -228,7 +228,7 @@ private: | |||
228 | U16 mGeomIndex; // index into draw pool | 228 | U16 mGeomIndex; // index into draw pool |
229 | U32 mIndicesCount; | 229 | U32 mIndicesCount; |
230 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) | 230 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) |
231 | S32 mIndexInTex ; | 231 | S32 mIndexInTex ; // index of this face in the texture's face list |
232 | 232 | ||
233 | //previous rebuild's geometry info | 233 | //previous rebuild's geometry info |
234 | U16 mLastGeomCount; | 234 | U16 mLastGeomCount; |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index f3d71d7..1142e5c 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -216,7 +216,7 @@ void add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, const LLColor4& | |||
216 | { | 216 | { |
217 | std::string line = chat.mText; | 217 | std::string line = chat.mText; |
218 | bool prepend_newline = true; | 218 | bool prepend_newline = true; |
219 | if (gSavedSettings.getBOOL("ChatShowTimestamps")) | 219 | if (gSavedSettings.getBOOL("ShowTimestamps")) |
220 | { | 220 | { |
221 | edit->appendTime(prepend_newline); | 221 | edit->appendTime(prepend_newline); |
222 | prepend_newline = false; | 222 | prepend_newline = false; |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 52192b8..d518eac 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -60,7 +60,6 @@ | |||
60 | #include "llpanellogin.h" | 60 | #include "llpanellogin.h" |
61 | #include "llpanelLCD.h" | 61 | #include "llpanelLCD.h" |
62 | #include "llpanelmsgs.h" | 62 | #include "llpanelmsgs.h" |
63 | #include "llpanelweb.h" | ||
64 | #include "llpanelskins.h" | 63 | #include "llpanelskins.h" |
65 | #include "llprefsadvanced.h" | 64 | #include "llprefsadvanced.h" |
66 | #include "llprefschat.h" | 65 | #include "llprefschat.h" |
@@ -151,10 +150,6 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
151 | mTabContainer->addTabPanel(mNetworkPanel, mNetworkPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 150 | mTabContainer->addTabPanel(mNetworkPanel, mNetworkPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
152 | mNetworkPanel->setDefaultBtn(default_btn); | 151 | mNetworkPanel->setDefaultBtn(default_btn); |
153 | 152 | ||
154 | mWebPanel = new LLPanelWeb(); | ||
155 | mTabContainer->addTabPanel(mWebPanel, mWebPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
156 | mWebPanel->setDefaultBtn(default_btn); | ||
157 | |||
158 | mDisplayPanel = new LLPanelDisplay(); | 153 | mDisplayPanel = new LLPanelDisplay(); |
159 | mTabContainer->addTabPanel(mDisplayPanel, mDisplayPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 154 | mTabContainer->addTabPanel(mDisplayPanel, mDisplayPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
160 | mDisplayPanel->setDefaultBtn(default_btn); | 155 | mDisplayPanel->setDefaultBtn(default_btn); |
@@ -167,10 +162,6 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
167 | mTabContainer->addTabPanel(mPrefsChat->getPanel(), mPrefsChat->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); | 162 | mTabContainer->addTabPanel(mPrefsChat->getPanel(), mPrefsChat->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); |
168 | mPrefsChat->getPanel()->setDefaultBtn(default_btn); | 163 | mPrefsChat->getPanel()->setDefaultBtn(default_btn); |
169 | 164 | ||
170 | mPrefsColors = new LLPrefsColors(); | ||
171 | mTabContainer->addTabPanel(mPrefsColors, mPrefsColors->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
172 | mPrefsColors->setDefaultBtn(default_btn); | ||
173 | |||
174 | mPrefsIM = new LLPrefsIM(); | 165 | mPrefsIM = new LLPrefsIM(); |
175 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); | 166 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); |
176 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); | 167 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); |
@@ -197,6 +188,10 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
197 | mMsgPanel = new LLPanelMsgs(); | 188 | mMsgPanel = new LLPanelMsgs(); |
198 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 189 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
199 | mMsgPanel->setDefaultBtn(default_btn); | 190 | mMsgPanel->setDefaultBtn(default_btn); |
191 | |||
192 | mPrefsColors = new LLPrefsColors(); | ||
193 | mTabContainer->addTabPanel(mPrefsColors, mPrefsColors->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
194 | mPrefsColors->setDefaultBtn(default_btn); | ||
200 | 195 | ||
201 | mSkinsPanel = new LLPanelSkins(); | 196 | mSkinsPanel = new LLPanelSkins(); |
202 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 197 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
@@ -259,11 +254,6 @@ LLPreferenceCore::~LLPreferenceCore() | |||
259 | delete mMsgPanel; | 254 | delete mMsgPanel; |
260 | mMsgPanel = NULL; | 255 | mMsgPanel = NULL; |
261 | } | 256 | } |
262 | if (mWebPanel) | ||
263 | { | ||
264 | delete mWebPanel; | ||
265 | mWebPanel = NULL; | ||
266 | } | ||
267 | if (mSkinsPanel) | 257 | if (mSkinsPanel) |
268 | { | 258 | { |
269 | delete mSkinsPanel; | 259 | delete mSkinsPanel; |
@@ -306,7 +296,6 @@ void LLPreferenceCore::apply() | |||
306 | // hardware menu apply | 296 | // hardware menu apply |
307 | LLFloaterHardwareSettings::instance()->apply(); | 297 | LLFloaterHardwareSettings::instance()->apply(); |
308 | 298 | ||
309 | mWebPanel->apply(); | ||
310 | #if LL_LCD_COMPILE | 299 | #if LL_LCD_COMPILE |
311 | // only add this option if we actually have a logitech keyboard / speaker set | 300 | // only add this option if we actually have a logitech keyboard / speaker set |
312 | if (gLcdScreen->Enabled()) | 301 | if (gLcdScreen->Enabled()) |
@@ -314,7 +303,6 @@ void LLPreferenceCore::apply() | |||
314 | mLCDPanel->apply(); | 303 | mLCDPanel->apply(); |
315 | } | 304 | } |
316 | #endif | 305 | #endif |
317 | // mWebPanel->apply(); | ||
318 | } | 306 | } |
319 | 307 | ||
320 | 308 | ||
@@ -337,7 +325,6 @@ void LLPreferenceCore::cancel() | |||
337 | // cancel hardware menu | 325 | // cancel hardware menu |
338 | LLFloaterHardwareSettings::instance()->cancel(); | 326 | LLFloaterHardwareSettings::instance()->cancel(); |
339 | 327 | ||
340 | mWebPanel->cancel(); | ||
341 | #if LL_LCD_COMPILE | 328 | #if LL_LCD_COMPILE |
342 | // only add this option if we actually have a logitech keyboard / speaker set | 329 | // only add this option if we actually have a logitech keyboard / speaker set |
343 | if (gLcdScreen->Enabled()) | 330 | if (gLcdScreen->Enabled()) |
@@ -345,7 +332,6 @@ void LLPreferenceCore::cancel() | |||
345 | mLCDPanel->cancel(); | 332 | mLCDPanel->cancel(); |
346 | } | 333 | } |
347 | #endif | 334 | #endif |
348 | // mWebPanel->cancel(); | ||
349 | } | 335 | } |
350 | 336 | ||
351 | // static | 337 | // static |
@@ -359,7 +345,8 @@ void LLPreferenceCore::onTabChanged(void* user_data, bool from_click) | |||
359 | 345 | ||
360 | void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 346 | void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) |
361 | { | 347 | { |
362 | mPrefsIM->setPersonalInfo(visibility, im_via_email, email); | 348 | mPrefsIM->setPersonalInfo(visibility); |
349 | mPrefsChat->setPersonalInfo(im_via_email, email); | ||
363 | } | 350 | } |
364 | 351 | ||
365 | void LLPreferenceCore::updateIsLoggedIn(bool enable) | 352 | void LLPreferenceCore::updateIsLoggedIn(bool enable) |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index d5eccbc..ae4f4d9 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -48,7 +48,6 @@ class LLPanelDisplay; | |||
48 | class LLPanelAudioPrefs; | 48 | class LLPanelAudioPrefs; |
49 | class LLPanelDebug; | 49 | class LLPanelDebug; |
50 | class LLPanelNetwork; | 50 | class LLPanelNetwork; |
51 | class LLPanelWeb; | ||
52 | class LLMessageSystem; | 51 | class LLMessageSystem; |
53 | class LLPrefsChat; | 52 | class LLPrefsChat; |
54 | class LLPrefsVoice; | 53 | class LLPrefsVoice; |
@@ -92,7 +91,6 @@ private: | |||
92 | LLPrefsChat *mPrefsChat; | 91 | LLPrefsChat *mPrefsChat; |
93 | LLPrefsVoice *mPrefsVoice; | 92 | LLPrefsVoice *mPrefsVoice; |
94 | LLPrefsIM *mPrefsIM; | 93 | LLPrefsIM *mPrefsIM; |
95 | LLPanelWeb *mWebPanel; | ||
96 | LLPanelMsgs *mMsgPanel; | 94 | LLPanelMsgs *mMsgPanel; |
97 | LLPanelLCD *mLCDPanel; | 95 | LLPanelLCD *mLCDPanel; |
98 | LLPrefsAdvanced *mPrefsAdvanced; | 96 | LLPrefsAdvanced *mPrefsAdvanced; |
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index ccd723f..333bd13 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp | |||
@@ -702,6 +702,11 @@ bool LLHUDEffectLookAt::calcTargetPosition() | |||
702 | 702 | ||
703 | LLVOAvatar* source_avatar = (LLVOAvatar*)(LLViewerObject*)mSourceObject; | 703 | LLVOAvatar* source_avatar = (LLVOAvatar*)(LLViewerObject*)mSourceObject; |
704 | 704 | ||
705 | if (!source_avatar->isBuilt()) | ||
706 | { | ||
707 | return false; | ||
708 | } | ||
709 | |||
705 | if (target_obj && target_obj->mDrawable.notNull()) | 710 | if (target_obj && target_obj->mDrawable.notNull()) |
706 | { | 711 | { |
707 | LLQuaternion target_rot; | 712 | LLQuaternion target_rot; |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index a3e917f..5f6624b 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -1618,7 +1618,7 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
1618 | // Actually add the line | 1618 | // Actually add the line |
1619 | std::string timestring; | 1619 | std::string timestring; |
1620 | bool prepend_newline = true; | 1620 | bool prepend_newline = true; |
1621 | if (gSavedSettings.getBOOL("IMShowTimestamps")) | 1621 | if (gSavedSettings.getBOOL("ShowTimestamps")) |
1622 | { | 1622 | { |
1623 | timestring = mHistoryEditor->appendTime(prepend_newline); | 1623 | timestring = mHistoryEditor->appendTime(prepend_newline); |
1624 | prepend_newline = false; | 1624 | prepend_newline = false; |
diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp index a5c0d97..9ee7dc3 100644 --- a/linden/indra/newview/llpaneldisplay.cpp +++ b/linden/indra/newview/llpaneldisplay.cpp | |||
@@ -120,7 +120,6 @@ BOOL LLPanelDisplay::postBuild() | |||
120 | mCtrlWindowed->setCallbackUserData(this); | 120 | mCtrlWindowed->setCallbackUserData(this); |
121 | 121 | ||
122 | mAspectRatioLabel1 = getChild<LLTextBox>("AspectRatioLabel1"); | 122 | mAspectRatioLabel1 = getChild<LLTextBox>("AspectRatioLabel1"); |
123 | mFullScreenInfo = getChild<LLTextEditor>("FullScreenInfo"); | ||
124 | mDisplayResLabel = getChild<LLTextBox>("DisplayResLabel"); | 123 | mDisplayResLabel = getChild<LLTextBox>("DisplayResLabel"); |
125 | 124 | ||
126 | S32 num_resolutions = 0; | 125 | S32 num_resolutions = 0; |
@@ -229,7 +228,7 @@ BOOL LLPanelDisplay::postBuild() | |||
229 | mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections"); | 228 | mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections"); |
230 | mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable); | 229 | mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable); |
231 | mCtrlReflections->setCallbackUserData(this); | 230 | mCtrlReflections->setCallbackUserData(this); |
232 | mRadioReflectionDetail = getChild<LLRadioGroup>("ReflectionDetailRadio"); | 231 | mComboReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo"); |
233 | 232 | ||
234 | // WindLight | 233 | // WindLight |
235 | mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); | 234 | mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); |
@@ -251,11 +250,11 @@ BOOL LLPanelDisplay::postBuild() | |||
251 | 250 | ||
252 | //---------------------------------------------------------------------------- | 251 | //---------------------------------------------------------------------------- |
253 | // radio set for lighting detail | 252 | // radio set for lighting detail |
254 | mRadioLightingDetail2 = getChild<LLRadioGroup>("LightingDetailRadio"); | 253 | mComboLightingDetail = getChild<LLComboBox>("LightingDetailCombo"); |
255 | 254 | ||
256 | //---------------------------------------------------------------------------- | 255 | //---------------------------------------------------------------------------- |
257 | // radio set for terrain detail mode | 256 | // radio set for terrain detail mode |
258 | mRadioTerrainDetail = getChild<LLRadioGroup>("TerrainDetailRadio"); | 257 | mComboTerrainDetail = getChild<LLComboBox>("TerrainDetailCombo"); |
259 | 258 | ||
260 | //---------------------------------------------------------------------------- | 259 | //---------------------------------------------------------------------------- |
261 | // Global Shader Enable | 260 | // Global Shader Enable |
@@ -316,7 +315,6 @@ BOOL LLPanelDisplay::postBuild() | |||
316 | 315 | ||
317 | // Avatar imposter count | 316 | // Avatar imposter count |
318 | mCtrlAvatarMaxVisible = getChild<LLSliderCtrl>("AvatarMaxVisible"); | 317 | mCtrlAvatarMaxVisible = getChild<LLSliderCtrl>("AvatarMaxVisible"); |
319 | mAvatarCountText = getChild<LLTextBox>("AvatarCountText"); | ||
320 | 318 | ||
321 | // Text boxes (for enabling/disabling) | 319 | // Text boxes (for enabling/disabling) |
322 | mShaderText = getChild<LLTextBox>("ShadersText"); | 320 | mShaderText = getChild<LLTextBox>("ShadersText"); |
@@ -325,10 +323,7 @@ BOOL LLPanelDisplay::postBuild() | |||
325 | mTerrainText = getChild<LLTextBox>("TerrainDetailText"); | 323 | mTerrainText = getChild<LLTextBox>("TerrainDetailText"); |
326 | mLightingText = getChild<LLTextBox>("LightingDetailText"); | 324 | mLightingText = getChild<LLTextBox>("LightingDetailText"); |
327 | mMeshDetailText = getChild<LLTextBox>("MeshDetailText"); | 325 | mMeshDetailText = getChild<LLTextBox>("MeshDetailText"); |
328 | 326 | mLimitsText = getChild<LLTextBox>("LimitsText"); | |
329 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
330 | childSetValue("toggle_windlight_control", (*sEnableWindlightRemote)); | ||
331 | mWLControl = (*sEnableWindlightRemote); | ||
332 | 327 | ||
333 | refresh(); | 328 | refresh(); |
334 | 329 | ||
@@ -420,10 +415,6 @@ void LLPanelDisplay::refresh() | |||
420 | mLightingDetail = gSavedSettings.getS32("RenderLightingDetail"); | 415 | mLightingDetail = gSavedSettings.getS32("RenderLightingDetail"); |
421 | mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail"); | 416 | mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail"); |
422 | 417 | ||
423 | // windlight remote | ||
424 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
425 | mWLControl = (*sEnableWindlightRemote); | ||
426 | |||
427 | // max avatar count | 418 | // max avatar count |
428 | mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible"); | 419 | mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible"); |
429 | 420 | ||
@@ -449,7 +440,6 @@ void LLPanelDisplay::refreshEnabledState() | |||
449 | mCtrlAspectRatio->setVisible(isFullScreen); | 440 | mCtrlAspectRatio->setVisible(isFullScreen); |
450 | mAspectRatioLabel1->setVisible(isFullScreen); | 441 | mAspectRatioLabel1->setVisible(isFullScreen); |
451 | mCtrlAutoDetectAspect->setVisible(isFullScreen); | 442 | mCtrlAutoDetectAspect->setVisible(isFullScreen); |
452 | mFullScreenInfo->setVisible(!isFullScreen); | ||
453 | mWindowSizeLabel->setVisible(!isFullScreen); | 443 | mWindowSizeLabel->setVisible(!isFullScreen); |
454 | 444 | ||
455 | // disable graphics settings and exit if it's not set to custom | 445 | // disable graphics settings and exit if it's not set to custom |
@@ -475,10 +465,7 @@ void LLPanelDisplay::refreshEnabledState() | |||
475 | bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump"); | 465 | bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump"); |
476 | mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE); | 466 | mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE); |
477 | 467 | ||
478 | for (S32 i = 0; i < mRadioReflectionDetail->getItemCount(); ++i) | 468 | mComboReflectionDetail->setEnabled(mCtrlReflections->get() && reflections); |
479 | { | ||
480 | mRadioReflectionDetail->setIndexEnabled(i, mCtrlReflections->get() && reflections); | ||
481 | } | ||
482 | 469 | ||
483 | // Avatar Mode | 470 | // Avatar Mode |
484 | S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel; | 471 | S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel; |
@@ -505,12 +492,12 @@ void LLPanelDisplay::refreshEnabledState() | |||
505 | BOOL shaders = mCtrlShaderEnable->get(); | 492 | BOOL shaders = mCtrlShaderEnable->get(); |
506 | if (shaders) | 493 | if (shaders) |
507 | { | 494 | { |
508 | mRadioTerrainDetail->setValue(1); | 495 | mComboTerrainDetail->setValue(1); |
509 | mRadioTerrainDetail->setEnabled(FALSE); | 496 | mComboTerrainDetail->setEnabled(FALSE); |
510 | } | 497 | } |
511 | else | 498 | else |
512 | { | 499 | { |
513 | mRadioTerrainDetail->setEnabled(TRUE); | 500 | mComboTerrainDetail->setEnabled(TRUE); |
514 | } | 501 | } |
515 | 502 | ||
516 | // *HACK just checks to see if we can use shaders... | 503 | // *HACK just checks to see if we can use shaders... |
@@ -588,7 +575,6 @@ void LLPanelDisplay::disableUnavailableSettings() | |||
588 | } | 575 | } |
589 | 576 | ||
590 | mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); | 577 | mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); |
591 | mAvatarCountText->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); | ||
592 | } | 578 | } |
593 | 579 | ||
594 | void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | 580 | void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) |
@@ -622,10 +608,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
622 | llassert(mCtrlShaderEnable != NULL); | 608 | llassert(mCtrlShaderEnable != NULL); |
623 | llassert(mCtrlAvatarImpostors != NULL); | 609 | llassert(mCtrlAvatarImpostors != NULL); |
624 | llassert(mCtrlAvatarCloth != NULL); | 610 | llassert(mCtrlAvatarCloth != NULL); |
625 | llassert(mRadioLightingDetail2 != NULL); | 611 | llassert(mComboLightingDetail != NULL); |
626 | 612 | ||
627 | llassert(mRadioTerrainDetail != NULL); | 613 | llassert(mComboTerrainDetail != NULL); |
628 | llassert(mRadioReflectionDetail != NULL); | 614 | llassert(mComboReflectionDetail != NULL); |
629 | 615 | ||
630 | llassert(mMeshDetailText != NULL); | 616 | llassert(mMeshDetailText != NULL); |
631 | llassert(mShaderText != NULL); | 617 | llassert(mShaderText != NULL); |
@@ -633,7 +619,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
633 | llassert(mAvatarText != NULL); | 619 | llassert(mAvatarText != NULL); |
634 | llassert(mLightingText != NULL); | 620 | llassert(mLightingText != NULL); |
635 | llassert(mTerrainText != NULL); | 621 | llassert(mTerrainText != NULL); |
636 | llassert(mAvatarCountText != NULL); | 622 | llassert(mLimitsText != NULL); |
637 | 623 | ||
638 | // enable/disable the states | 624 | // enable/disable the states |
639 | mGraphicsBorder->setVisible(!isHidden); | 625 | mGraphicsBorder->setVisible(!isHidden); |
@@ -668,10 +654,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
668 | mCtrlShaderEnable->setVisible(!isHidden); | 654 | mCtrlShaderEnable->setVisible(!isHidden); |
669 | mCtrlAvatarImpostors->setVisible(!isHidden); | 655 | mCtrlAvatarImpostors->setVisible(!isHidden); |
670 | mCtrlAvatarCloth->setVisible(!isHidden); | 656 | mCtrlAvatarCloth->setVisible(!isHidden); |
671 | mRadioLightingDetail2->setVisible(!isHidden); | 657 | mComboLightingDetail->setVisible(!isHidden); |
672 | 658 | ||
673 | mRadioTerrainDetail->setVisible(!isHidden); | 659 | mComboTerrainDetail->setVisible(!isHidden); |
674 | mRadioReflectionDetail->setVisible(!isHidden); | 660 | mComboReflectionDetail->setVisible(!isHidden); |
675 | 661 | ||
676 | // text boxes | 662 | // text boxes |
677 | mShaderText->setVisible(!isHidden); | 663 | mShaderText->setVisible(!isHidden); |
@@ -679,8 +665,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
679 | mAvatarText->setVisible(!isHidden); | 665 | mAvatarText->setVisible(!isHidden); |
680 | mLightingText->setVisible(!isHidden); | 666 | mLightingText->setVisible(!isHidden); |
681 | mTerrainText->setVisible(!isHidden); | 667 | mTerrainText->setVisible(!isHidden); |
682 | mAvatarCountText->setVisible(!isHidden); | 668 | mLimitsText->setVisible(!isHidden); |
683 | |||
684 | mMeshDetailText->setVisible(!isHidden); | 669 | mMeshDetailText->setVisible(!isHidden); |
685 | 670 | ||
686 | mCtrlAvatarMaxVisible->setVisible(!isHidden); | 671 | mCtrlAvatarMaxVisible->setVisible(!isHidden); |
@@ -719,8 +704,6 @@ void LLPanelDisplay::cancel() | |||
719 | gSavedSettings.setS32("RenderMaxPartCount", mParticleCount); | 704 | gSavedSettings.setS32("RenderMaxPartCount", mParticleCount); |
720 | gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess); | 705 | gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess); |
721 | 706 | ||
722 | gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl); | ||
723 | |||
724 | gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible); | 707 | gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible); |
725 | } | 708 | } |
726 | 709 | ||
@@ -992,5 +975,4 @@ void LLPanelDisplay::onImpostorsEnable(LLUICtrl* ctrl, void* user_data) | |||
992 | LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl; | 975 | LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl; |
993 | 976 | ||
994 | self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean()); | 977 | self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean()); |
995 | self->mAvatarCountText->setEnabled(checkbox->getValue().asBoolean()); | ||
996 | } | 978 | } |
diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h index d7727e7..e64e9ba 100644 --- a/linden/indra/newview/llpaneldisplay.h +++ b/linden/indra/newview/llpaneldisplay.h | |||
@@ -113,14 +113,13 @@ protected: | |||
113 | LLCheckBoxCtrl *mCtrlShaderEnable; | 113 | LLCheckBoxCtrl *mCtrlShaderEnable; |
114 | LLCheckBoxCtrl *mCtrlAvatarImpostors; | 114 | LLCheckBoxCtrl *mCtrlAvatarImpostors; |
115 | LLCheckBoxCtrl *mCtrlAvatarCloth; | 115 | LLCheckBoxCtrl *mCtrlAvatarCloth; |
116 | LLRadioGroup *mRadioLightingDetail2; | 116 | LLComboBox *mComboLightingDetail; |
117 | 117 | ||
118 | LLRadioGroup *mRadioTerrainDetail; | 118 | LLComboBox *mComboTerrainDetail; |
119 | LLRadioGroup *mRadioReflectionDetail; | 119 | LLComboBox *mComboReflectionDetail; |
120 | 120 | ||
121 | LLTextBox *mAspectRatioLabel1; | 121 | LLTextBox *mAspectRatioLabel1; |
122 | LLTextBox *mDisplayResLabel; | 122 | LLTextBox *mDisplayResLabel; |
123 | LLTextEditor *mFullScreenInfo; | ||
124 | LLTextBox *mWindowSizeLabel; | 123 | LLTextBox *mWindowSizeLabel; |
125 | 124 | ||
126 | LLTextBox *mShaderText; | 125 | LLTextBox *mShaderText; |
@@ -137,7 +136,7 @@ protected: | |||
137 | LLTextBox *mTerrainFactorText; | 136 | LLTextBox *mTerrainFactorText; |
138 | LLTextBox *mSkyFactorText; | 137 | LLTextBox *mSkyFactorText; |
139 | LLTextBox *mPostProcessText; | 138 | LLTextBox *mPostProcessText; |
140 | LLTextBox *mAvatarCountText; | 139 | LLTextBox *mLimitsText; |
141 | 140 | ||
142 | BOOL mFSAutoDetectAspect; | 141 | BOOL mFSAutoDetectAspect; |
143 | F32 mAspectRatio; | 142 | F32 mAspectRatio; |
@@ -173,8 +172,6 @@ protected: | |||
173 | 172 | ||
174 | S32 mAvatarMaxVisible; | 173 | S32 mAvatarMaxVisible; |
175 | 174 | ||
176 | BOOL mWLControl; | ||
177 | |||
178 | static void setGraphicsSettings(LLControlGroup& group); | 175 | static void setGraphicsSettings(LLControlGroup& group); |
179 | static void createGroup(); | 176 | static void createGroup(); |
180 | 177 | ||
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp index 70146ce..ac957ed 100644 --- a/linden/indra/newview/llpanelgeneral.cpp +++ b/linden/indra/newview/llpanelgeneral.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llpanelgeneral.h" | 36 | #include "llpanelgeneral.h" |
37 | 37 | ||
38 | // project includes | 38 | // project includes |
39 | #include "llcolorswatch.h" | 39 | #include "llcheckboxctrl.h" |
40 | #include "llcombobox.h" | 40 | #include "llcombobox.h" |
41 | #include "lluictrlfactory.h" | 41 | #include "lluictrlfactory.h" |
42 | #include "llurlsimstring.h" | 42 | #include "llurlsimstring.h" |
@@ -90,28 +90,25 @@ BOOL LLPanelGeneral::postBuild() | |||
90 | childSetValue("show_location_checkbox", gSavedSettings.getBOOL("ShowStartLocation")); | 90 | childSetValue("show_location_checkbox", gSavedSettings.getBOOL("ShowStartLocation")); |
91 | childSetValue("show_all_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitleAll")); | 91 | childSetValue("show_all_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitleAll")); |
92 | childSetValue("show_my_name_checkbox", gSavedSettings.getBOOL("RenderNameHideSelf")); | 92 | childSetValue("show_my_name_checkbox", gSavedSettings.getBOOL("RenderNameHideSelf")); |
93 | childSetValue("small_avatar_names_checkbox", gSavedSettings.getBOOL("SmallAvatarNames")); | 93 | childSetValue("large_avatar_names_checkbox", !gSavedSettings.getBOOL("SmallAvatarNames")); |
94 | childSetValue("highlight_friends_checkbox", gSavedSettings.getBOOL("HighlightFriends")); | 94 | childSetValue("highlight_friends_checkbox", gSavedSettings.getBOOL("HighlightFriends")); |
95 | childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle")); | 95 | //childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle")); -- MC |
96 | childSetValue("afk_timeout_spinner", gSavedSettings.getF32("AFKTimeout")); | 96 | |
97 | childSetEnabled("afk_timeout_spinner", gSavedSettings.getBOOL("AllowIdleAFK")); | ||
98 | childSetValue("afk_timeout_spinner", llround(gSavedSettings.getF32("AFKTimeout") / 60)); // User enters minutes, we store as seconds -- MC | ||
97 | childSetValue("afk_timeout_checkbox", gSavedSettings.getBOOL("AllowIdleAFK")); | 99 | childSetValue("afk_timeout_checkbox", gSavedSettings.getBOOL("AllowIdleAFK")); |
100 | childSetCommitCallback("afk_timeout_checkbox", onCommitAFKCheckbox, this); | ||
101 | |||
98 | childSetValue("mini_map_notify_chat", gSavedSettings.getBOOL("MiniMapNotifyChatRange")); | 102 | childSetValue("mini_map_notify_chat", gSavedSettings.getBOOL("MiniMapNotifyChatRange")); |
99 | childSetValue("mini_map_notify_sim", gSavedSettings.getBOOL("MiniMapNotifySimRange")); | 103 | childSetValue("mini_map_notify_sim", gSavedSettings.getBOOL("MiniMapNotifySimRange")); |
100 | 104 | ||
101 | // mDisplayNamesUsage = gSavedSettings.getU32("DisplayNamesUsage"); | 105 | // mDisplayNamesUsage = gSavedSettings.getU32("DisplayNamesUsage"); |
102 | // mLegacyNamesForFriends = gSavedSettings.getBOOL("LegacyNamesForFriends"); | 106 | // mLegacyNamesForFriends = gSavedSettings.getBOOL("LegacyNamesForFriends"); |
103 | 107 | ||
104 | getChild<LLColorSwatchCtrl>("effect_color_swatch")->set(gSavedSettings.getColor4("EffectColor")); | ||
105 | |||
106 | childSetValue("ui_scale_slider", gSavedSettings.getF32("UIScaleFactor")); | ||
107 | childSetValue("ui_auto_scale", gSavedSettings.getBOOL("UIAutoScale")); | ||
108 | |||
109 | LLComboBox* time_combobox = getChild<LLComboBox>("time_combobox"); | 108 | LLComboBox* time_combobox = getChild<LLComboBox>("time_combobox"); |
110 | time_combobox->setCurrentByIndex(gSavedSettings.getU32("TimeFormat")); | 109 | time_combobox->setCurrentByIndex(gSavedSettings.getU32("TimeFormat")); |
111 | 110 | ||
112 | childSetValue("language_combobox", gSavedSettings.getString("Language")); | 111 | childSetValue("language_combobox", gSavedSettings.getString("Language")); |
113 | |||
114 | childSetAction("reset_ui_size", onClickResetUISize, this); | ||
115 | 112 | ||
116 | // if we have no agent, we can't let them choose anything | 113 | // if we have no agent, we can't let them choose anything |
117 | // if we have an agent, then we only let them choose if they have a choice | 114 | // if we have an agent, then we only let them choose if they have a choice |
@@ -166,16 +163,13 @@ void LLPanelGeneral::apply() | |||
166 | gSavedSettings.setBOOL("ShowStartLocation", childGetValue("show_location_checkbox")); | 163 | gSavedSettings.setBOOL("ShowStartLocation", childGetValue("show_location_checkbox")); |
167 | gSavedSettings.setBOOL("RenderHideGroupTitleAll", childGetValue("show_all_title_checkbox")); | 164 | gSavedSettings.setBOOL("RenderHideGroupTitleAll", childGetValue("show_all_title_checkbox")); |
168 | gSavedSettings.setBOOL("RenderNameHideSelf", childGetValue("show_my_name_checkbox")); | 165 | gSavedSettings.setBOOL("RenderNameHideSelf", childGetValue("show_my_name_checkbox")); |
169 | gSavedSettings.setBOOL("SmallAvatarNames", childGetValue("small_avatar_names_checkbox")); | 166 | gSavedSettings.setBOOL("SmallAvatarNames", !childGetValue("large_avatar_names_checkbox")); |
170 | gSavedSettings.setBOOL("HighlightFriends", childGetValue("highlight_friends_checkbox")); | 167 | gSavedSettings.setBOOL("HighlightFriends", childGetValue("highlight_friends_checkbox")); |
171 | gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox")); | 168 | //gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox")); -- MC |
172 | gSavedSettings.setF32("AFKTimeout", childGetValue("afk_timeout_spinner").asReal()); | 169 | gSavedSettings.setF32("AFKTimeout", 60 * childGetValue("afk_timeout_spinner").asReal()); // User enters minutes, we store as seconds -- MC |
173 | gSavedSettings.setBOOL("AllowIdleAFK", childGetValue("afk_timeout_checkbox")); | 170 | gSavedSettings.setBOOL("AllowIdleAFK", childGetValue("afk_timeout_checkbox")); |
174 | gSavedSettings.setBOOL("MiniMapNotifyChatRange", childGetValue("mini_map_notify_chat")); | 171 | gSavedSettings.setBOOL("MiniMapNotifyChatRange", childGetValue("mini_map_notify_chat")); |
175 | gSavedSettings.setBOOL("MiniMapNotifySimRange", childGetValue("mini_map_notify_sim")); | 172 | gSavedSettings.setBOOL("MiniMapNotifySimRange", childGetValue("mini_map_notify_sim")); |
176 | gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch")); | ||
177 | gSavedSettings.setF32("UIScaleFactor", childGetValue("ui_scale_slider").asReal()); | ||
178 | gSavedSettings.setBOOL("UIAutoScale", childGetValue("ui_auto_scale")); | ||
179 | gSavedSettings.setString("Language", childGetValue("language_combobox")); | 173 | gSavedSettings.setString("Language", childGetValue("language_combobox")); |
180 | 174 | ||
181 | /* | 175 | /* |
@@ -218,14 +212,6 @@ void LLPanelGeneral::cancel() | |||
218 | } | 212 | } |
219 | 213 | ||
220 | // static | 214 | // static |
221 | void LLPanelGeneral::onClickResetUISize(void* user_data) | ||
222 | { | ||
223 | LLPanelGeneral* self = (LLPanelGeneral*)user_data; | ||
224 | F32 def = gSavedSettings.getControl("UIScaleFactor")->getDefault().asReal(); | ||
225 | self->childSetValue("ui_scale_slider", def); | ||
226 | } | ||
227 | |||
228 | // static | ||
229 | void LLPanelGeneral::onClickGrid(void *) | 215 | void LLPanelGeneral::onClickGrid(void *) |
230 | { | 216 | { |
231 | FloaterGridManager::getInstance()->open(); | 217 | FloaterGridManager::getInstance()->open(); |
@@ -241,3 +227,14 @@ void LLPanelGeneral::onLocationChanged(LLUICtrl* ctrl, void* data) | |||
241 | self->getChild<LLComboBox>("default_location_combo")->setTextEntry(LLURLSimString::sInstance.mSimString); | 227 | self->getChild<LLComboBox>("default_location_combo")->setTextEntry(LLURLSimString::sInstance.mSimString); |
242 | } | 228 | } |
243 | } | 229 | } |
230 | |||
231 | // static | ||
232 | void LLPanelGeneral::onCommitAFKCheckbox(LLUICtrl* ctrl, void* data) | ||
233 | { | ||
234 | LLPanelGeneral* self = (LLPanelGeneral*)data; | ||
235 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
236 | |||
237 | if (!self || !check) return; | ||
238 | self->childSetEnabled("afk_timeout_spinner", check->get()); | ||
239 | self->childSetEnabled("minutes_textbox", check->get()); | ||
240 | } | ||
diff --git a/linden/indra/newview/llpanelgeneral.h b/linden/indra/newview/llpanelgeneral.h index 56cc3de..4080079 100644 --- a/linden/indra/newview/llpanelgeneral.h +++ b/linden/indra/newview/llpanelgeneral.h | |||
@@ -48,9 +48,9 @@ public: | |||
48 | void cancel(); | 48 | void cancel(); |
49 | 49 | ||
50 | private: | 50 | private: |
51 | static void onClickResetUISize(void*); | ||
52 | static void onClickGrid(void*); | 51 | static void onClickGrid(void*); |
53 | static void onLocationChanged(LLUICtrl* ctrl, void* data); | 52 | static void onLocationChanged(LLUICtrl* ctrl, void* data); |
53 | static void onCommitAFKCheckbox(LLUICtrl* ctrl, void* data); | ||
54 | 54 | ||
55 | U32 mDisplayNamesUsage; | 55 | U32 mDisplayNamesUsage; |
56 | bool mLegacyNamesForFriends; | 56 | bool mLegacyNamesForFriends; |
diff --git a/linden/indra/newview/llpanelinput.cpp b/linden/indra/newview/llpanelinput.cpp index 32c4af3..9664b6f 100644 --- a/linden/indra/newview/llpanelinput.cpp +++ b/linden/indra/newview/llpanelinput.cpp | |||
@@ -31,7 +31,10 @@ | |||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | |||
34 | #include "llpanelinput.h" | 35 | #include "llpanelinput.h" |
36 | |||
37 | #include "llcombobox.h" | ||
35 | #include "lluictrlfactory.h" | 38 | #include "lluictrlfactory.h" |
36 | #include "llviewercamera.h" | 39 | #include "llviewercamera.h" |
37 | #include "llviewercontrol.h" | 40 | #include "llviewercontrol.h" |
@@ -60,7 +63,6 @@ BOOL LLPanelInput::postBuild() | |||
60 | mPreAdjustCameraOffsetScale = gSavedSettings.getF32("CameraOffsetScale"); | 63 | mPreAdjustCameraOffsetScale = gSavedSettings.getF32("CameraOffsetScale"); |
61 | 64 | ||
62 | childSetValue("mouse_sensitivity", gSavedSettings.getF32("MouseSensitivity")); | 65 | childSetValue("mouse_sensitivity", gSavedSettings.getF32("MouseSensitivity")); |
63 | childSetValue("automatic_fly", gSavedSettings.getBOOL("AutomaticFly")); | ||
64 | childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse")); | 66 | childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse")); |
65 | childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement")); | 67 | childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement")); |
66 | childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement")); | 68 | childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement")); |
@@ -75,6 +77,7 @@ BOOL LLPanelInput::postBuild() | |||
75 | fov_slider->setValue(LLViewerCamera::getInstance()->getView()); | 77 | fov_slider->setValue(LLViewerCamera::getInstance()->getView()); |
76 | 78 | ||
77 | childSetValue("double_click_action", gSavedSettings.getString("DoubleClickAction")); | 79 | childSetValue("double_click_action", gSavedSettings.getString("DoubleClickAction")); |
80 | childSetCommitCallback("double_click_action", onCommitAction, this); | ||
78 | childSetValue("go_action", gSavedSettings.getString("GoAction")); | 81 | childSetValue("go_action", gSavedSettings.getString("GoAction")); |
79 | 82 | ||
80 | childSetValue("Disable camera constraints", gSavedSettings.getBOOL("DisableCameraConstraints")); | 83 | childSetValue("Disable camera constraints", gSavedSettings.getBOOL("DisableCameraConstraints")); |
@@ -95,7 +98,6 @@ void LLPanelInput::apply() | |||
95 | mPreAdjustCameraOffsetScale = childGetValue("camera_offset_scale").asReal(); | 98 | mPreAdjustCameraOffsetScale = childGetValue("camera_offset_scale").asReal(); |
96 | 99 | ||
97 | gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal()); | 100 | gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal()); |
98 | gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly")); | ||
99 | gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse")); | 101 | gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse")); |
100 | gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); | 102 | gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); |
101 | gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); | 103 | gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); |
@@ -130,3 +132,14 @@ void LLPanelInput::onClickJoystickSetup(void* user_data) | |||
130 | } | 132 | } |
131 | } | 133 | } |
132 | 134 | ||
135 | // static | ||
136 | void LLPanelInput::onCommitAction(LLUICtrl* ctrl, void* user_data) | ||
137 | { | ||
138 | LLPanelInput* self = (LLPanelInput*)user_data; | ||
139 | LLComboBox* combo = (LLComboBox*)ctrl; | ||
140 | if (self && combo) | ||
141 | { | ||
142 | self->childSetEnabled("go_action_label", combo->getSimple() == "Go"); | ||
143 | self->childSetEnabled("go_action", combo->getSimple() == "Go"); | ||
144 | } | ||
145 | } | ||
diff --git a/linden/indra/newview/llpanelinput.h b/linden/indra/newview/llpanelinput.h index 9a2bebe..29bc04e 100644 --- a/linden/indra/newview/llpanelinput.h +++ b/linden/indra/newview/llpanelinput.h | |||
@@ -47,6 +47,8 @@ public: | |||
47 | 47 | ||
48 | private: | 48 | private: |
49 | static void onClickJoystickSetup(void* user_data); | 49 | static void onClickJoystickSetup(void* user_data); |
50 | static void onCommitAction(LLUICtrl* ctrl, void* user_data); | ||
51 | |||
50 | F32 mPreAdjustFOV; | 52 | F32 mPreAdjustFOV; |
51 | F32 mPreAdjustCameraOffsetScale; | 53 | F32 mPreAdjustCameraOffsetScale; |
52 | }; | 54 | }; |
diff --git a/linden/indra/newview/llpanelmsgs.cpp b/linden/indra/newview/llpanelmsgs.cpp index 9e04070..572bcc3 100644 --- a/linden/indra/newview/llpanelmsgs.cpp +++ b/linden/indra/newview/llpanelmsgs.cpp | |||
@@ -70,6 +70,8 @@ BOOL LLPanelMsgs::postBuild() | |||
70 | childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange")); | 70 | childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange")); |
71 | childSetLabelArg("notify_money_change_checkbox", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); | 71 | childSetLabelArg("notify_money_change_checkbox", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); |
72 | 72 | ||
73 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); | ||
74 | |||
73 | return TRUE; | 75 | return TRUE; |
74 | } | 76 | } |
75 | 77 | ||
@@ -166,6 +168,8 @@ void LLPanelMsgs::apply() | |||
166 | gSavedSettings.setBOOL("ShowNewInventory", childGetValue("show_new_inventory")); | 168 | gSavedSettings.setBOOL("ShowNewInventory", childGetValue("show_new_inventory")); |
167 | gSavedSettings.setBOOL("ShowInInventory", childGetValue("show_in_inventory")); | 169 | gSavedSettings.setBOOL("ShowInInventory", childGetValue("show_in_inventory")); |
168 | gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox")); | 170 | gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox")); |
171 | |||
172 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
169 | } | 173 | } |
170 | 174 | ||
171 | void LLPanelMsgs::cancel() | 175 | void LLPanelMsgs::cancel() |
diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp index 3b866eb..b4ebe42 100644 --- a/linden/indra/newview/llpanelnetwork.cpp +++ b/linden/indra/newview/llpanelnetwork.cpp | |||
@@ -44,6 +44,30 @@ | |||
44 | #include "llviewercontrol.h" | 44 | #include "llviewercontrol.h" |
45 | #include "llviewerwindow.h" | 45 | #include "llviewerwindow.h" |
46 | 46 | ||
47 | // project includes | ||
48 | #include "llcheckboxctrl.h" | ||
49 | #include "hippogridmanager.h" | ||
50 | #include "lluictrlfactory.h" | ||
51 | #include "llviewercontrol.h" | ||
52 | #include "llviewermedia.h" | ||
53 | #include "llviewerwindow.h" | ||
54 | #include "llpluginclassmedia.h" | ||
55 | |||
56 | #include "hippogridmanager.h" | ||
57 | #include "llpluginclassmedia.h" | ||
58 | #include "llviewermedia.h" | ||
59 | |||
60 | // helper functions for getting/freeing the web browser media | ||
61 | // if creating/destroying these is too slow, we'll need to create | ||
62 | // a static member and update all our static callbacks | ||
63 | viewer_media_t get_web_media() | ||
64 | { | ||
65 | |||
66 | viewer_media_t media_source = LLViewerMedia::newMediaImpl("", LLUUID::null, 0, 0, 0, 0, "text/html"); | ||
67 | |||
68 | return media_source; | ||
69 | } | ||
70 | |||
47 | bool LLPanelNetwork::sSocksSettingsChanged; | 71 | bool LLPanelNetwork::sSocksSettingsChanged; |
48 | 72 | ||
49 | LLPanelNetwork::LLPanelNetwork() | 73 | LLPanelNetwork::LLPanelNetwork() |
@@ -54,16 +78,16 @@ LLPanelNetwork::LLPanelNetwork() | |||
54 | BOOL LLPanelNetwork::postBuild() | 78 | BOOL LLPanelNetwork::postBuild() |
55 | { | 79 | { |
56 | std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""); | 80 | std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""); |
57 | childSetText("cache_location", cache_location); | 81 | childSetText("disk_cache_location", cache_location); |
58 | 82 | ||
59 | childSetAction("clear_cache", onClickClearCache, this); | 83 | childSetAction("clear_disk_cache", onClickClearDiskCache, this); |
60 | childSetAction("set_cache", onClickSetCache, this); | 84 | childSetAction("set_disk_cache", onClickSetDiskCache, this); |
61 | childSetAction("reset_cache", onClickResetCache, this); | 85 | childSetAction("reset_disk_cache", onClickResetDiskCache, this); |
62 | 86 | ||
63 | childSetEnabled("connection_port", gSavedSettings.getBOOL("ConnectionPortEnabled")); | 87 | childSetEnabled("connection_port", gSavedSettings.getBOOL("ConnectionPortEnabled")); |
64 | childSetCommitCallback("connection_port_enabled", onCommitPort, this); | 88 | childSetCommitCallback("connection_port_enabled", onCommitPort, this); |
65 | 89 | ||
66 | childSetValue("cache_size", (F32)gSavedSettings.getU32("CacheSize")); | 90 | childSetValue("disk_cache_size", (F32)gSavedSettings.getU32("CacheSize")); |
67 | childSetValue("max_bandwidth", gSavedSettings.getF32("ThrottleBandwidthKBPS")); | 91 | childSetValue("max_bandwidth", gSavedSettings.getF32("ThrottleBandwidthKBPS")); |
68 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); | 92 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); |
69 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); | 93 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); |
@@ -99,8 +123,48 @@ BOOL LLPanelNetwork::postBuild() | |||
99 | // Socks 5 settings, Set all controls and labels enabled state | 123 | // Socks 5 settings, Set all controls and labels enabled state |
100 | updateProxyEnabled(this, gSavedSettings.getBOOL("Socks5ProxyEnabled"), gSavedSettings.getString("Socks5AuthType")); | 124 | updateProxyEnabled(this, gSavedSettings.getBOOL("Socks5ProxyEnabled"), gSavedSettings.getString("Socks5AuthType")); |
101 | 125 | ||
126 | childSetEnabled("xmlrpc_proxy_editor", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
127 | childSetEnabled("xmlrpc_proxy_port", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
128 | childSetEnabled("xmlrpc_proxy_text_label", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
129 | |||
130 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); | ||
131 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); | ||
132 | childSetValue("speed_rez_interval_spinner", (F32)gSavedSettings.getU32("SpeedRezInterval")); | ||
133 | childSetCommitCallback("speed_rez_check", onCommitSpeedRezCheckBox, this); | ||
134 | |||
102 | sSocksSettingsChanged = false; | 135 | sSocksSettingsChanged = false; |
103 | 136 | ||
137 | // formerly the Web panel -- MC | ||
138 | childSetAction("clear_web_cache", onClickClearWebCache, this); | ||
139 | childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this); | ||
140 | |||
141 | std::string value = gSavedSettings.getBOOL("UseExternalBrowser") ? "external" : "internal"; | ||
142 | childSetValue("use_external_browser", value); | ||
143 | |||
144 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); | ||
145 | childSetAction("clear_cookies", onClickClearCookies,this); | ||
146 | |||
147 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
148 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); | ||
149 | childSetValue("web_proxy_port", gSavedSettings.getS32("BrowserProxyPort")); | ||
150 | |||
151 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
152 | { | ||
153 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQuery")) ; | ||
154 | } | ||
155 | else | ||
156 | { | ||
157 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQueryOpenSim")) ; | ||
158 | } | ||
159 | childSetAction("world_search_reset_default", onClickSearchDefault, this); | ||
160 | childSetAction("world_search_clear", onClickSearchClear, this); | ||
161 | |||
162 | childSetEnabled("proxy_text_label", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
163 | childSetEnabled("web_proxy_editor", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
164 | childSetEnabled("web_proxy_port", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
165 | |||
166 | refresh(); | ||
167 | |||
104 | return TRUE; | 168 | return TRUE; |
105 | } | 169 | } |
106 | 170 | ||
@@ -112,7 +176,7 @@ LLPanelNetwork::~LLPanelNetwork() | |||
112 | 176 | ||
113 | void LLPanelNetwork::apply() | 177 | void LLPanelNetwork::apply() |
114 | { | 178 | { |
115 | gSavedSettings.setU32("CacheSize", childGetValue("cache_size").asInteger()); | 179 | gSavedSettings.setU32("CacheSize", childGetValue("disk_cache_size").asInteger()); |
116 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); | 180 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); |
117 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); | 181 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); |
118 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); | 182 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); |
@@ -130,6 +194,10 @@ void LLPanelNetwork::apply() | |||
130 | gSavedSettings.setString("Socks5Username", childGetValue("socks5_proxy_username")); | 194 | gSavedSettings.setString("Socks5Username", childGetValue("socks5_proxy_username")); |
131 | gSavedSettings.setString("Socks5Password", childGetValue("socks5_proxy_password")); | 195 | gSavedSettings.setString("Socks5Password", childGetValue("socks5_proxy_password")); |
132 | 196 | ||
197 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); | ||
198 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); | ||
199 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); | ||
200 | |||
133 | if (sSocksSettingsChanged) | 201 | if (sSocksSettingsChanged) |
134 | { | 202 | { |
135 | if (LLStartUp::getStartupState() != STATE_LOGIN_WAIT) | 203 | if (LLStartUp::getStartupState() != STATE_LOGIN_WAIT) |
@@ -142,14 +210,62 @@ void LLPanelNetwork::apply() | |||
142 | LLSocks::getInstance()->updated(); | 210 | LLSocks::getInstance()->updated(); |
143 | } | 211 | } |
144 | } | 212 | } |
213 | |||
214 | // formerly the Web panel -- MC | ||
215 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); | ||
216 | |||
217 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
218 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
219 | int proxy_port = childGetValue("web_proxy_port"); | ||
220 | gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable); | ||
221 | gSavedSettings.setString("BrowserProxyAddress", proxy_address); | ||
222 | gSavedSettings.setS32("BrowserProxyPort", proxy_port); | ||
223 | LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); | ||
224 | |||
225 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
226 | { | ||
227 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); | ||
228 | } | ||
229 | else | ||
230 | { | ||
231 | gSavedSettings.setString("SearchURLQueryOpenSim", childGetValue("world_search_editor")); | ||
232 | } | ||
233 | |||
234 | bool value = childGetValue("use_external_browser").asString() == "external" ? true : false; | ||
235 | gSavedSettings.setBOOL("UseExternalBrowser", value); | ||
236 | |||
237 | viewer_media_t media_source = get_web_media(); | ||
238 | if (media_source && media_source->hasMedia()) | ||
239 | { | ||
240 | media_source->getMediaPlugin()->enable_cookies(childGetValue("cookies_enabled")); | ||
241 | |||
242 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
243 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
244 | int proxy_port = childGetValue("web_proxy_port"); | ||
245 | media_source->getMediaPlugin()->proxy_setup(proxy_enable, proxy_address, proxy_port); | ||
246 | } | ||
145 | } | 247 | } |
146 | 248 | ||
147 | void LLPanelNetwork::cancel() | 249 | void LLPanelNetwork::cancel() |
148 | { | 250 | { |
149 | } | 251 | } |
150 | 252 | ||
253 | void LLPanelNetwork::refresh() | ||
254 | { | ||
255 | if (childGetValue("speed_rez_check").asBoolean()) | ||
256 | { | ||
257 | childEnable("speed_rez_interval_spinner"); | ||
258 | childEnable("speed_rez_seconds_text"); | ||
259 | } | ||
260 | else | ||
261 | { | ||
262 | childDisable("speed_rez_interval_spinner"); | ||
263 | childDisable("speed_rez_seconds_text"); | ||
264 | } | ||
265 | } | ||
266 | |||
151 | // static | 267 | // static |
152 | void LLPanelNetwork::onClickClearCache(void*) | 268 | void LLPanelNetwork::onClickClearDiskCache(void*) |
153 | { | 269 | { |
154 | // flag client cache for clearing next time the client runs | 270 | // flag client cache for clearing next time the client runs |
155 | gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE); | 271 | gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE); |
@@ -157,7 +273,7 @@ void LLPanelNetwork::onClickClearCache(void*) | |||
157 | } | 273 | } |
158 | 274 | ||
159 | // static | 275 | // static |
160 | void LLPanelNetwork::onClickSetCache(void* user_data) | 276 | void LLPanelNetwork::onClickSetDiskCache(void* user_data) |
161 | { | 277 | { |
162 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | 278 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; |
163 | 279 | ||
@@ -173,19 +289,19 @@ void LLPanelNetwork::onClickSetCache(void* user_data) | |||
173 | std::string dir_name = picker.getDirName(); | 289 | std::string dir_name = picker.getDirName(); |
174 | if (!dir_name.empty() && dir_name != cur_name) | 290 | if (!dir_name.empty() && dir_name != cur_name) |
175 | { | 291 | { |
176 | self->childSetText("cache_location", dir_name); | 292 | self->childSetText("disk_cache_location", dir_name); |
177 | LLNotifications::instance().add("CacheWillBeMoved"); | 293 | LLNotifications::instance().add("CacheWillBeMoved"); |
178 | gSavedSettings.setString("NewCacheLocation", dir_name); | 294 | gSavedSettings.setString("NewCacheLocation", dir_name); |
179 | } | 295 | } |
180 | else | 296 | else |
181 | { | 297 | { |
182 | std::string cache_location = gDirUtilp->getCacheDir(); | 298 | std::string cache_location = gDirUtilp->getCacheDir(); |
183 | self->childSetText("cache_location", cache_location); | 299 | self->childSetText("disk_cache_location", cache_location); |
184 | } | 300 | } |
185 | } | 301 | } |
186 | 302 | ||
187 | // static | 303 | // static |
188 | void LLPanelNetwork::onClickResetCache(void* user_data) | 304 | void LLPanelNetwork::onClickResetDiskCache(void* user_data) |
189 | { | 305 | { |
190 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | 306 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; |
191 | if (!gSavedSettings.getString("CacheLocation").empty()) | 307 | if (!gSavedSettings.getString("CacheLocation").empty()) |
@@ -194,7 +310,7 @@ void LLPanelNetwork::onClickResetCache(void* user_data) | |||
194 | LLNotifications::instance().add("CacheWillBeMoved"); | 310 | LLNotifications::instance().add("CacheWillBeMoved"); |
195 | } | 311 | } |
196 | std::string cache_location = gDirUtilp->getCacheDir(true); | 312 | std::string cache_location = gDirUtilp->getCacheDir(true); |
197 | self->childSetText("cache_location", cache_location); | 313 | self->childSetText("disk_cache_location", cache_location); |
198 | } | 314 | } |
199 | 315 | ||
200 | // static | 316 | // static |
@@ -300,3 +416,104 @@ void LLPanelNetwork::updateProxyEnabled(LLPanelNetwork * self, bool enabled, std | |||
300 | self->childSetEnabled("xmlrpc_proxy_port", !enabled); | 416 | self->childSetEnabled("xmlrpc_proxy_port", !enabled); |
301 | self->childSetEnabled("xmlrpc_proxy_text_label", !enabled); | 417 | self->childSetEnabled("xmlrpc_proxy_text_label", !enabled); |
302 | } | 418 | } |
419 | |||
420 | // static | ||
421 | void LLPanelNetwork::onClickClearWebCache(void*) | ||
422 | { | ||
423 | LLNotifications::instance().add("ConfirmClearBrowserCache", LLSD(), LLSD(), callback_clear_browser_cache); | ||
424 | } | ||
425 | |||
426 | //static | ||
427 | bool LLPanelNetwork::callback_clear_browser_cache(const LLSD& notification, const LLSD& response) | ||
428 | { | ||
429 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
430 | if ( option == 0 ) // YES | ||
431 | { | ||
432 | viewer_media_t media_source = get_web_media(); | ||
433 | if (media_source && media_source->hasMedia()) | ||
434 | media_source->getMediaPlugin()->clear_cache(); | ||
435 | } | ||
436 | return false; | ||
437 | } | ||
438 | |||
439 | // static | ||
440 | void LLPanelNetwork::onClickClearCookies(void*) | ||
441 | { | ||
442 | LLNotifications::instance().add("ConfirmClearCookies", LLSD(), LLSD(), callback_clear_cookies); | ||
443 | } | ||
444 | |||
445 | //static | ||
446 | bool LLPanelNetwork::callback_clear_cookies(const LLSD& notification, const LLSD& response) | ||
447 | { | ||
448 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
449 | if ( option == 0 ) // YES | ||
450 | { | ||
451 | viewer_media_t media_source = get_web_media(); | ||
452 | if (media_source && media_source->hasMedia()) | ||
453 | media_source->getMediaPlugin()->clear_cookies(); | ||
454 | } | ||
455 | return false; | ||
456 | } | ||
457 | |||
458 | // static | ||
459 | void LLPanelNetwork::onCommitCookies(LLUICtrl* ctrl, void* data) | ||
460 | { | ||
461 | LLPanelNetwork* self = (LLPanelNetwork*)data; | ||
462 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
463 | |||
464 | if (!self || !check) return; | ||
465 | |||
466 | viewer_media_t media_source = get_web_media(); | ||
467 | if (media_source && media_source->hasMedia()) | ||
468 | media_source->getMediaPlugin()->enable_cookies(check->get()); | ||
469 | } | ||
470 | |||
471 | // static | ||
472 | void LLPanelNetwork::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data) | ||
473 | { | ||
474 | LLPanelNetwork* self = (LLPanelNetwork*)data; | ||
475 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
476 | |||
477 | if (!self || !check) return; | ||
478 | self->childSetEnabled("web_proxy_editor", check->get()); | ||
479 | self->childSetEnabled("web_proxy_port", check->get()); | ||
480 | self->childSetEnabled("proxy_text_label", check->get()); | ||
481 | } | ||
482 | |||
483 | // static | ||
484 | void LLPanelNetwork::onClickSearchDefault(void* user_data) | ||
485 | { | ||
486 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
487 | LLControlVariable* controlp = | ||
488 | (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
489 | ? | ||
490 | gSavedSettings.getControl("SearchURLQuery") | ||
491 | : | ||
492 | gSavedSettings.getControl("SearchURLQueryOpenSim"); | ||
493 | |||
494 | if (controlp) | ||
495 | { | ||
496 | self->childSetValue("world_search_editor",controlp->getDefault().asString()) ; | ||
497 | } | ||
498 | else | ||
499 | { | ||
500 | llwarns << "SearchURLQuery or SearchURLQueryOpenSim missing from settings.xml - thats bad!" << llendl; | ||
501 | } | ||
502 | } | ||
503 | |||
504 | // static | ||
505 | void LLPanelNetwork::onClickSearchClear(void* user_data) | ||
506 | { | ||
507 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
508 | self->childSetValue("world_search_editor","") ; | ||
509 | } | ||
510 | |||
511 | //static | ||
512 | void LLPanelNetwork::onCommitSpeedRezCheckBox(LLUICtrl* ctrl, void* user_data) | ||
513 | { | ||
514 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
515 | if (self) | ||
516 | { | ||
517 | self->refresh(); | ||
518 | } | ||
519 | } | ||
diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h index 628f713..b8e5618 100644 --- a/linden/indra/newview/llpanelnetwork.h +++ b/linden/indra/newview/llpanelnetwork.h | |||
@@ -47,9 +47,13 @@ public: | |||
47 | void cancel(); | 47 | void cancel(); |
48 | 48 | ||
49 | private: | 49 | private: |
50 | static void onClickClearCache(void*); | 50 | void refresh(); |
51 | static void onClickSetCache(void*); | 51 | |
52 | static void onClickResetCache(void*); | 52 | static void onCommitSpeedRezCheckBox(LLUICtrl* ctrl, void* user_data); |
53 | |||
54 | static void onClickClearDiskCache(void*); | ||
55 | static void onClickSetDiskCache(void*); | ||
56 | static void onClickResetDiskCache(void*); | ||
53 | static void onCommitPort(LLUICtrl* ctrl, void*); | 57 | static void onCommitPort(LLUICtrl* ctrl, void*); |
54 | static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data); | 58 | static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data); |
55 | static void onCommitSocks5ProxyEnabled(LLUICtrl* ctrl, void* data); | 59 | static void onCommitSocks5ProxyEnabled(LLUICtrl* ctrl, void* data); |
@@ -60,6 +64,16 @@ private: | |||
60 | 64 | ||
61 | static bool sSocksSettingsChanged; | 65 | static bool sSocksSettingsChanged; |
62 | 66 | ||
67 | // formerly the web panel -- MC | ||
68 | static void onClickClearWebCache(void*); | ||
69 | static void onClickClearCookies(void*); | ||
70 | static void onClickSearchDefault(void* user_data); | ||
71 | static void onClickSearchClear(void* user_data); | ||
72 | static bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); | ||
73 | static bool callback_clear_cookies(const LLSD& notification, const LLSD& response); | ||
74 | static void onCommitCookies(LLUICtrl* ctrl, void* data); | ||
75 | static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data); | ||
76 | |||
63 | }; | 77 | }; |
64 | 78 | ||
65 | #endif | 79 | #endif |
diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp deleted file mode 100644 index 93441dd..0000000 --- a/linden/indra/newview/llpanelweb.cpp +++ /dev/null | |||
@@ -1,234 +0,0 @@ | |||
1 | /** | ||
2 | * @file LLPanelWeb.cpp | ||
3 | * @brief Network preferences panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | |||
35 | // file include | ||
36 | #include "llpanelweb.h" | ||
37 | |||
38 | // project includes | ||
39 | #include "llcheckboxctrl.h" | ||
40 | #include "hippogridmanager.h" | ||
41 | #include "lluictrlfactory.h" | ||
42 | #include "llviewercontrol.h" | ||
43 | #include "llviewermedia.h" | ||
44 | #include "llviewerwindow.h" | ||
45 | #include "llpluginclassmedia.h" | ||
46 | |||
47 | // helper functions for getting/freeing the web browser media | ||
48 | // if creating/destroying these is too slow, we'll need to create | ||
49 | // a static member and update all our static callbacks | ||
50 | viewer_media_t get_web_media() | ||
51 | { | ||
52 | |||
53 | viewer_media_t media_source = LLViewerMedia::newMediaImpl("", LLUUID::null, 0, 0, 0, 0, "text/html"); | ||
54 | |||
55 | return media_source; | ||
56 | } | ||
57 | |||
58 | LLPanelWeb::LLPanelWeb() | ||
59 | { | ||
60 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_web.xml"); | ||
61 | } | ||
62 | |||
63 | BOOL LLPanelWeb::postBuild() | ||
64 | { | ||
65 | childSetAction("clear_cache", onClickClearCache, this); | ||
66 | childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this); | ||
67 | |||
68 | std::string value = gSavedSettings.getBOOL("UseExternalBrowser") ? "external" : "internal"; | ||
69 | childSetValue("use_external_browser", value); | ||
70 | |||
71 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); | ||
72 | childSetAction("clear_cookies", onClickClearCookies,this); | ||
73 | |||
74 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
75 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); | ||
76 | childSetValue("web_proxy_port", gSavedSettings.getS32("BrowserProxyPort")); | ||
77 | |||
78 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
79 | { | ||
80 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQuery")) ; | ||
81 | } | ||
82 | else | ||
83 | { | ||
84 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQueryOpenSim")) ; | ||
85 | } | ||
86 | childSetAction("world_search_reset_default", onClickDefault, this); | ||
87 | childSetAction("world_search_clear", onClickClear, this); | ||
88 | |||
89 | childSetEnabled("proxy_text_label", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
90 | childSetEnabled("web_proxy_editor", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
91 | childSetEnabled("web_proxy_port", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
92 | |||
93 | return TRUE; | ||
94 | } | ||
95 | |||
96 | |||
97 | |||
98 | LLPanelWeb::~LLPanelWeb() | ||
99 | { | ||
100 | // Children all cleaned up by default view destructor. | ||
101 | } | ||
102 | |||
103 | void LLPanelWeb::apply() | ||
104 | { | ||
105 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); | ||
106 | |||
107 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
108 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
109 | int proxy_port = childGetValue("web_proxy_port"); | ||
110 | gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable); | ||
111 | gSavedSettings.setString("BrowserProxyAddress", proxy_address); | ||
112 | gSavedSettings.setS32("BrowserProxyPort", proxy_port); | ||
113 | LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); | ||
114 | |||
115 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
116 | { | ||
117 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); | ||
118 | } | ||
119 | else | ||
120 | { | ||
121 | gSavedSettings.setString("SearchURLQueryOpenSim", childGetValue("world_search_editor")); | ||
122 | } | ||
123 | |||
124 | bool value = childGetValue("use_external_browser").asString() == "external" ? true : false; | ||
125 | gSavedSettings.setBOOL("UseExternalBrowser", value); | ||
126 | |||
127 | viewer_media_t media_source = get_web_media(); | ||
128 | if (media_source && media_source->hasMedia()) | ||
129 | { | ||
130 | media_source->getMediaPlugin()->enable_cookies(childGetValue("cookies_enabled")); | ||
131 | |||
132 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
133 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
134 | int proxy_port = childGetValue("web_proxy_port"); | ||
135 | media_source->getMediaPlugin()->proxy_setup(proxy_enable, proxy_address, proxy_port); | ||
136 | } | ||
137 | } | ||
138 | |||
139 | void LLPanelWeb::cancel() | ||
140 | { | ||
141 | } | ||
142 | |||
143 | // static | ||
144 | void LLPanelWeb::onClickClearCache(void*) | ||
145 | { | ||
146 | LLNotifications::instance().add("ConfirmClearBrowserCache", LLSD(), LLSD(), callback_clear_browser_cache); | ||
147 | } | ||
148 | |||
149 | //static | ||
150 | bool LLPanelWeb::callback_clear_browser_cache(const LLSD& notification, const LLSD& response) | ||
151 | { | ||
152 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
153 | if ( option == 0 ) // YES | ||
154 | { | ||
155 | viewer_media_t media_source = get_web_media(); | ||
156 | if (media_source && media_source->hasMedia()) | ||
157 | media_source->getMediaPlugin()->clear_cache(); | ||
158 | } | ||
159 | return false; | ||
160 | } | ||
161 | |||
162 | // static | ||
163 | void LLPanelWeb::onClickClearCookies(void*) | ||
164 | { | ||
165 | LLNotifications::instance().add("ConfirmClearCookies", LLSD(), LLSD(), callback_clear_cookies); | ||
166 | } | ||
167 | |||
168 | //static | ||
169 | bool LLPanelWeb::callback_clear_cookies(const LLSD& notification, const LLSD& response) | ||
170 | { | ||
171 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
172 | if ( option == 0 ) // YES | ||
173 | { | ||
174 | viewer_media_t media_source = get_web_media(); | ||
175 | if (media_source && media_source->hasMedia()) | ||
176 | media_source->getMediaPlugin()->clear_cookies(); | ||
177 | } | ||
178 | return false; | ||
179 | } | ||
180 | |||
181 | // static | ||
182 | void LLPanelWeb::onCommitCookies(LLUICtrl* ctrl, void* data) | ||
183 | { | ||
184 | LLPanelWeb* self = (LLPanelWeb*)data; | ||
185 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
186 | |||
187 | if (!self || !check) return; | ||
188 | |||
189 | viewer_media_t media_source = get_web_media(); | ||
190 | if (media_source && media_source->hasMedia()) | ||
191 | media_source->getMediaPlugin()->enable_cookies(check->get()); | ||
192 | } | ||
193 | // static | ||
194 | void LLPanelWeb::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data) | ||
195 | { | ||
196 | LLPanelWeb* self = (LLPanelWeb*)data; | ||
197 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
198 | |||
199 | if (!self || !check) return; | ||
200 | self->childSetEnabled("web_proxy_editor", check->get()); | ||
201 | self->childSetEnabled("web_proxy_port", check->get()); | ||
202 | self->childSetEnabled("proxy_text_label", check->get()); | ||
203 | |||
204 | |||
205 | } | ||
206 | |||
207 | // static | ||
208 | void LLPanelWeb::onClickDefault(void* user_data) | ||
209 | { | ||
210 | LLPanelWeb* self = (LLPanelWeb*)user_data; | ||
211 | LLControlVariable* controlp = | ||
212 | (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
213 | ? | ||
214 | gSavedSettings.getControl("SearchURLQuery") | ||
215 | : | ||
216 | gSavedSettings.getControl("SearchURLQueryOpenSim"); | ||
217 | |||
218 | if (controlp) | ||
219 | { | ||
220 | self->childSetValue("world_search_editor",controlp->getDefault().asString()) ; | ||
221 | } | ||
222 | else | ||
223 | { | ||
224 | llwarns << "SearchURLQuery or SearchURLQueryOpenSim missing from settings.xml - thats bad!" << llendl; | ||
225 | } | ||
226 | |||
227 | } | ||
228 | |||
229 | // static | ||
230 | void LLPanelWeb::onClickClear(void* user_data) | ||
231 | { | ||
232 | LLPanelWeb* self = (LLPanelWeb*)user_data; | ||
233 | self->childSetValue("world_search_editor","") ; | ||
234 | } | ||
diff --git a/linden/indra/newview/llpanelweb.h b/linden/indra/newview/llpanelweb.h deleted file mode 100644 index 3282827..0000000 --- a/linden/indra/newview/llpanelweb.h +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /** | ||
2 | * @file llpanelweb.h | ||
3 | * @brief Web browser preferences panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #ifndef LL_LLPANELWEB_H | ||
34 | #define LL_LLPANELWEB_H | ||
35 | |||
36 | #include "llpanel.h" | ||
37 | |||
38 | class LLPanelWeb : public LLPanel | ||
39 | { | ||
40 | public: | ||
41 | LLPanelWeb(); | ||
42 | ~LLPanelWeb(); | ||
43 | |||
44 | BOOL postBuild(); | ||
45 | |||
46 | void apply(); | ||
47 | void cancel(); | ||
48 | |||
49 | private: | ||
50 | static void onClickClearCache(void*); | ||
51 | static void onClickClearCookies(void*); | ||
52 | static void onClickDefault(void* user_data); | ||
53 | static void onClickClear(void* user_data); | ||
54 | static bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); | ||
55 | static bool callback_clear_cookies(const LLSD& notification, const LLSD& response); | ||
56 | static void onCommitCookies(LLUICtrl* ctrl, void* data); | ||
57 | static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data); | ||
58 | }; | ||
59 | |||
60 | #endif | ||
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp index f1b2428..a9500f7 100644 --- a/linden/indra/newview/llprefsadvanced.cpp +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -32,14 +32,11 @@ | |||
32 | 32 | ||
33 | #include "llcombobox.h" | 33 | #include "llcombobox.h" |
34 | 34 | ||
35 | #include "floatercommandline.h" | ||
36 | #include "llagent.h" | 35 | #include "llagent.h" |
37 | #include "llprefsadvanced.h" | 36 | #include "llprefsadvanced.h" |
38 | #include "llviewercontrol.h" | 37 | #include "llviewercontrol.h" |
39 | #include "llviewermenu.h" | 38 | #include "llviewermenu.h" |
40 | #include "llvoavatar.h" | 39 | #include "llvoavatar.h" |
41 | #include "lgghunspell_wrapper.h" | ||
42 | #include "lggautocorrectfloater.h" | ||
43 | #include "llcombobox.h" | 40 | #include "llcombobox.h" |
44 | #include "llcolorswatch.h" | 41 | #include "llcolorswatch.h" |
45 | #include "llstartup.h" | 42 | #include "llstartup.h" |
@@ -57,9 +54,6 @@ LLPrefsAdvanced::LLPrefsAdvanced() | |||
57 | sInstance = this; | 54 | sInstance = this; |
58 | 55 | ||
59 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); | 56 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); |
60 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); | ||
61 | |||
62 | childSetAction("command_line_btn", onClickCommandLine, this); | ||
63 | } | 57 | } |
64 | 58 | ||
65 | LLPrefsAdvanced::~LLPrefsAdvanced() | 59 | LLPrefsAdvanced::~LLPrefsAdvanced() |
@@ -68,17 +62,6 @@ LLPrefsAdvanced::~LLPrefsAdvanced() | |||
68 | sInstance = NULL; | 62 | sInstance = NULL; |
69 | } | 63 | } |
70 | 64 | ||
71 | void LLPrefsAdvanced::initHelpBtn(const std::string& name, const std::string& xml_alert) | ||
72 | { | ||
73 | childSetAction(name, onClickHelp, new std::string(xml_alert)); | ||
74 | } | ||
75 | |||
76 | void LLPrefsAdvanced::onClickHelp(void* data) | ||
77 | { | ||
78 | std::string* xml_alert = (std::string*)data; | ||
79 | LLNotifications::instance().add(*xml_alert); | ||
80 | } | ||
81 | |||
82 | BOOL LLPrefsAdvanced::postBuild() | 65 | BOOL LLPrefsAdvanced::postBuild() |
83 | { | 66 | { |
84 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); | 67 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); |
@@ -86,23 +69,15 @@ BOOL LLPrefsAdvanced::postBuild() | |||
86 | 69 | ||
87 | static BOOL* sShowClientNameTag = rebind_llcontrol<BOOL>("ShowClientNameTag", &gSavedSettings, true); | 70 | static BOOL* sShowClientNameTag = rebind_llcontrol<BOOL>("ShowClientNameTag", &gSavedSettings, true); |
88 | childSetValue("client_name_tag_check", (*sShowClientNameTag)); | 71 | childSetValue("client_name_tag_check", (*sShowClientNameTag)); |
89 | static BOOL* sShowClientColor = rebind_llcontrol<BOOL>("ShowClientColor", &gSavedSettings, true); | ||
90 | childSetValue("client_name_color_check", (*sShowClientColor)); | ||
91 | childSetValue("client_name_hover_check", gSavedSettings.getBOOL("ShowClientNameHoverTip")); | 72 | childSetValue("client_name_hover_check", gSavedSettings.getBOOL("ShowClientNameHoverTip")); |
92 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); | 73 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); |
93 | getChild<LLColorSwatchCtrl>("client_tag_color")->set(gSavedSettings.getColor4("ImprudenceTagColor")); | ||
94 | mClientTagColor = gSavedSettings.getColor4("ImprudenceTagColor"); | ||
95 | 74 | ||
96 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); | ||
97 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); | ||
98 | childSetValue("speed_rez_interval_spinner", (F32)gSavedSettings.getU32("SpeedRezInterval")); | ||
99 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); | 75 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); |
100 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); | 76 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); |
101 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); | 77 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); |
102 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); | 78 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); |
103 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); | 79 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); |
104 | childSetValue("shadows_check", gSavedSettings.getBOOL("ShadowsEnabled")); | 80 | childSetValue("shadows_check", gSavedSettings.getBOOL("ShadowsEnabled")); |
105 | childSetValue("command_line_check", gSavedSettings.getBOOL("CmdLineChatbarEnabled")); | ||
106 | 81 | ||
107 | childSetValue("lightshare_combo", | 82 | childSetValue("lightshare_combo", |
108 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); | 83 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); |
@@ -110,19 +85,20 @@ BOOL LLPrefsAdvanced::postBuild() | |||
110 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); | 85 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); |
111 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); | 86 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); |
112 | 87 | ||
113 | getChild<LLComboBox>("EmeraldSpellBase")->setCommitCallback(onSpellBaseComboBoxCommit); | ||
114 | getChild<LLButton>("EmSpell_EditCustom")->setClickedCallback(onSpellEditCustom, this); | ||
115 | getChild<LLButton>("EmSpell_GetMore")->setClickedCallback(onSpellGetMore, this); | ||
116 | getChild<LLButton>("EmSpell_Add")->setClickedCallback(onSpellAdd, this); | ||
117 | getChild<LLButton>("EmSpell_Remove")->setClickedCallback(onSpellRemove, this); | ||
118 | |||
119 | getChild<LLButton>("ac_button")->setClickedCallback(onAutoCorrectButton,this); | ||
120 | initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck"); | ||
121 | |||
122 | getChild<LLButton>("reset_cloud_this_account")->setClickedCallback(onResetThisCloudButton,this); | 88 | getChild<LLButton>("reset_cloud_this_account")->setClickedCallback(onResetThisCloudButton,this); |
123 | getChild<LLButton>("save_cloud_this_account")->setClickedCallback(onSaveThisCloudButton,this); | 89 | getChild<LLButton>("save_cloud_this_account")->setClickedCallback(onSaveThisCloudButton,this); |
124 | getChild<LLButton>("save_cloud_any_account")->setClickedCallback(onSaveAnyoneCloudButton,this); | 90 | getChild<LLButton>("save_cloud_any_account")->setClickedCallback(onSaveAnyoneCloudButton,this); |
125 | 91 | ||
92 | childSetValue("automatic_fly", gSavedSettings.getBOOL("AutomaticFly")); | ||
93 | |||
94 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
95 | childSetValue("toggle_windlight_control", (*sEnableWindlightRemote)); | ||
96 | mWLControl = (*sEnableWindlightRemote); | ||
97 | |||
98 | childSetValue("script_errors_as_chat", gSavedSettings.getBOOL("ScriptErrorsAsChat")); | ||
99 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("ShowTimestamps")); | ||
100 | childSetValue("arrow_keys_move_avatar_check", gSavedSettings.getBOOL("ArrowKeysMoveAvatar")); | ||
101 | |||
126 | refresh(); | 102 | refresh(); |
127 | 103 | ||
128 | return TRUE; | 104 | return TRUE; |
@@ -133,18 +109,11 @@ void LLPrefsAdvanced::apply() | |||
133 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); | 109 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); |
134 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); | 110 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); |
135 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); | 111 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); |
136 | gSavedSettings.setBOOL("ShowClientColor", childGetValue("client_name_color_check")); | ||
137 | gSavedSettings.setBOOL("ShowClientNameHoverTip", childGetValue("client_name_hover_check")); | 112 | gSavedSettings.setBOOL("ShowClientNameHoverTip", childGetValue("client_name_hover_check")); |
138 | gSavedSettings.setColor4("ImprudenceTagColor", getChild<LLColorSwatchCtrl>("client_tag_color")->get()); | ||
139 | mClientTagColor = getChild<LLColorSwatchCtrl>("client_tag_color")->get(); | ||
140 | 113 | ||
141 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); | ||
142 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); | ||
143 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); | ||
144 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); | 114 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); |
145 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); | 115 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); |
146 | gSavedSettings.setBOOL("AllowMUpose", childGetValue("allow_mupose")); | 116 | |
147 | gSavedSettings.setBOOL("AutoCloseOOC", childGetValue("auto_close_ooc")); | ||
148 | gSavedSettings.setU32("LightShareAllowed", | 117 | gSavedSettings.setU32("LightShareAllowed", |
149 | (U32)childGetValue("lightshare_combo").asInteger()); | 118 | (U32)childGetValue("lightshare_combo").asInteger()); |
150 | 119 | ||
@@ -210,8 +179,6 @@ void LLPrefsAdvanced::apply() | |||
210 | build_pie_menus(); | 179 | build_pie_menus(); |
211 | } | 180 | } |
212 | 181 | ||
213 | gSavedSettings.setBOOL("CmdLineChatbarEnabled", childGetValue("command_line_check").asBoolean()); | ||
214 | |||
215 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); | 182 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); |
216 | gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex()); | 183 | gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex()); |
217 | 184 | ||
@@ -219,79 +186,34 @@ void LLPrefsAdvanced::apply() | |||
219 | { | 186 | { |
220 | onSaveThisCloudButton(NULL); | 187 | onSaveThisCloudButton(NULL); |
221 | } | 188 | } |
189 | |||
190 | gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly")); | ||
191 | |||
192 | // windlight remote | ||
193 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
194 | mWLControl = (*sEnableWindlightRemote); | ||
195 | |||
196 | gSavedSettings.setBOOL("AllowMUpose", childGetValue("allow_mupose")); | ||
197 | gSavedSettings.setBOOL("AutoCloseOOC", childGetValue("auto_close_ooc")); | ||
198 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", childGetValue("arrow_keys_move_avatar_check")); | ||
199 | gSavedSettings.setBOOL("ScriptErrorsAsChat", childGetValue("script_errors_as_chat")); | ||
200 | gSavedSettings.setBOOL("ShowTimestamps", childGetValue("show_timestamps_check")); | ||
222 | } | 201 | } |
223 | 202 | ||
224 | void LLPrefsAdvanced::cancel() | 203 | void LLPrefsAdvanced::cancel() |
225 | { | 204 | { |
226 | gSavedSettings.setColor4("ImprudenceTagColor", mClientTagColor); | ||
227 | // llwarns << "cancel" << llendl; | 205 | // llwarns << "cancel" << llendl; |
228 | // cool - "ok" is also cancel | 206 | // cool - "ok" is also cancel |
229 | // LLVOAvatar::sCloud.mPartData.mStartColor = mCloudStartColor; | 207 | // LLVOAvatar::sCloud.mPartData.mStartColor = mCloudStartColor; |
230 | // LLVOAvatar::sCloud.mPartData.mEndColor = mCloudEndColor; | 208 | // LLVOAvatar::sCloud.mPartData.mEndColor = mCloudEndColor; |
209 | |||
210 | gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl); | ||
231 | } | 211 | } |
232 | 212 | ||
233 | void LLPrefsAdvanced::refresh() | 213 | void LLPrefsAdvanced::refresh() |
234 | { | 214 | { |
235 | if (childGetValue("speed_rez_check").asBoolean()) | ||
236 | { | ||
237 | childEnable("speed_rez_interval_spinner"); | ||
238 | childEnable("speed_rez_seconds_text"); | ||
239 | } | ||
240 | else | ||
241 | { | ||
242 | childDisable("speed_rez_interval_spinner"); | ||
243 | childDisable("speed_rez_seconds_text"); | ||
244 | } | ||
245 | |||
246 | if (childGetValue("command_line_check").asBoolean()) | ||
247 | { | ||
248 | childEnable("command_line_btn"); | ||
249 | } | ||
250 | else | ||
251 | { | ||
252 | childDisable("command_line_btn"); | ||
253 | } | ||
254 | |||
255 | LLComboBox* comboBox = getChild<LLComboBox>("EmeraldSpellBase"); | ||
256 | if (comboBox != NULL) | ||
257 | { | ||
258 | comboBox->removeall(); | ||
259 | std::vector<std::string> names = glggHunSpell->getDicts(); | ||
260 | for (int i = 0; i < (int)names.size(); i++) | ||
261 | { | ||
262 | comboBox->add(names[i]); | ||
263 | } | ||
264 | comboBox->setSimple(gSavedSettings.getString("EmeraldSpellBase")); | ||
265 | } | ||
266 | comboBox = getChild<LLComboBox>("EmSpell_Avail"); | ||
267 | if (comboBox != NULL) | ||
268 | { | ||
269 | LLSD selected = comboBox->getSelectedValue(); | ||
270 | comboBox->removeall(); | ||
271 | std::vector<std::string> names = glggHunSpell->getAvailDicts(); | ||
272 | for (int i = 0; i < (int)names.size(); i++) | ||
273 | { | ||
274 | comboBox->add(names[i]); | ||
275 | } | ||
276 | comboBox->selectByValue(selected); | ||
277 | } | ||
278 | comboBox = getChild<LLComboBox>("EmSpell_Installed"); | ||
279 | if (comboBox != NULL) | ||
280 | { | ||
281 | LLSD selected = comboBox->getSelectedValue(); | ||
282 | comboBox->removeall(); | ||
283 | std::vector<std::string> names = glggHunSpell->getInstalledDicts(); | ||
284 | for (int i = 0; i < (int)names.size(); i++) | ||
285 | { | ||
286 | comboBox->add(names[i]); | ||
287 | } | ||
288 | comboBox->selectByValue(selected); | ||
289 | } | ||
290 | |||
291 | |||
292 | bool is_logged_in = LLStartUp::isLoggedIn(); | 215 | bool is_logged_in = LLStartUp::isLoggedIn(); |
293 | setParticleControls(is_logged_in); | 216 | setParticleControls(is_logged_in); |
294 | |||
295 | } | 217 | } |
296 | 218 | ||
297 | void LLPrefsAdvanced::draw() | 219 | void LLPrefsAdvanced::draw() |
@@ -363,65 +285,10 @@ void LLPrefsAdvanced::setParticleControls(bool is_logged_in) | |||
363 | void LLPrefsAdvanced::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) | 285 | void LLPrefsAdvanced::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) |
364 | { | 286 | { |
365 | LLPrefsAdvanced* self = (LLPrefsAdvanced*)user_data; | 287 | LLPrefsAdvanced* self = (LLPrefsAdvanced*)user_data; |
366 | self->refresh(); | 288 | if (self) |
367 | } | ||
368 | |||
369 | void LLPrefsAdvanced::onSpellAdd(void* data) | ||
370 | { | ||
371 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; | ||
372 | if(panel) | ||
373 | { | 289 | { |
374 | glggHunSpell->addButton(panel->childGetValue("EmSpell_Avail").asString()); | 290 | self->refresh(); |
375 | } | 291 | } |
376 | panel->refresh(); | ||
377 | } | ||
378 | |||
379 | void LLPrefsAdvanced::onSpellRemove(void* data) | ||
380 | { | ||
381 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; | ||
382 | if(panel) | ||
383 | { | ||
384 | glggHunSpell->removeButton(panel->childGetValue("EmSpell_Installed").asString()); | ||
385 | } | ||
386 | panel->refresh(); | ||
387 | } | ||
388 | |||
389 | void LLPrefsAdvanced::onSpellGetMore(void* data) | ||
390 | { | ||
391 | glggHunSpell->getMoreButton(data); | ||
392 | } | ||
393 | |||
394 | void LLPrefsAdvanced::onSpellEditCustom(void* data) | ||
395 | { | ||
396 | glggHunSpell->editCustomButton(); | ||
397 | } | ||
398 | |||
399 | void LLPrefsAdvanced::onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
400 | { | ||
401 | |||
402 | LLComboBox* box = (LLComboBox*)ctrl; | ||
403 | if (box) | ||
404 | { | ||
405 | glggHunSpell->newDictSelection(box->getValue().asString()); | ||
406 | //LLPanelEmerald* panel = (LLPanelEmerald*)userdata;//box->getParent(); | ||
407 | if (sInstance) | ||
408 | { | ||
409 | sInstance->refresh(); | ||
410 | } | ||
411 | } | ||
412 | //LLPanelEmerald* panel = (LLPanelEmerald*)userdata; | ||
413 | //if(panel)panel->refresh(); | ||
414 | } | ||
415 | |||
416 | void LLPrefsAdvanced::onAutoCorrectButton(void * data) | ||
417 | { | ||
418 | lggAutoCorrectFloaterStart::show(TRUE,data); | ||
419 | } | ||
420 | |||
421 | void LLPrefsAdvanced::onClickCommandLine(void* data) | ||
422 | { | ||
423 | FloaterCommandLine::getInstance()->open(); | ||
424 | FloaterCommandLine::getInstance()->center(); | ||
425 | } | 292 | } |
426 | 293 | ||
427 | void LLPrefsAdvanced::onResetThisCloudButton(void * data) | 294 | void LLPrefsAdvanced::onResetThisCloudButton(void * data) |
diff --git a/linden/indra/newview/llprefsadvanced.h b/linden/indra/newview/llprefsadvanced.h index e4febcc..b863db3 100644 --- a/linden/indra/newview/llprefsadvanced.h +++ b/linden/indra/newview/llprefsadvanced.h | |||
@@ -51,30 +51,19 @@ private: | |||
51 | static LLPrefsAdvanced* sInstance; | 51 | static LLPrefsAdvanced* sInstance; |
52 | 52 | ||
53 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); | 53 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); |
54 | static void onClickCommandLine(void* data); | ||
55 | |||
56 | static void onSpellAdd(void* data); | ||
57 | static void onSpellRemove(void* data); | ||
58 | static void onSpellGetMore(void* data); | ||
59 | static void onSpellEditCustom(void* data); | ||
60 | static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
61 | static void onAutoCorrectButton(void * data); | ||
62 | static void onResetThisCloudButton(void * data); | 54 | static void onResetThisCloudButton(void * data); |
63 | static void onSaveThisCloudButton(void * data); | 55 | static void onSaveThisCloudButton(void * data); |
64 | static void onSaveAnyoneCloudButton(void * data); | 56 | static void onSaveAnyoneCloudButton(void * data); |
65 | 57 | ||
66 | LLColor4 mClientTagColor; | ||
67 | |||
68 | protected: | 58 | protected: |
69 | void setParticleControls(bool is_logged_in); | 59 | void setParticleControls(bool is_logged_in); |
70 | void initHelpBtn(const std::string& name, const std::string& xml_alert); | ||
71 | static void onClickHelp(void* data); | ||
72 | 60 | ||
73 | private: | 61 | private: |
74 | bool mWasLoggedIn; | 62 | bool mWasLoggedIn; |
75 | LLColor4 mCloudStartColor; | 63 | LLColor4 mCloudStartColor; |
76 | LLColor4 mCloudEndColor; | 64 | LLColor4 mCloudEndColor; |
77 | LLUUID mCloudTextureID; | 65 | LLUUID mCloudTextureID; |
66 | BOOL mWLControl; | ||
78 | }; | 67 | }; |
79 | 68 | ||
80 | #endif // LLPREFSADVANCED_H | 69 | #endif // LLPREFSADVANCED_H |
diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index 5f74a25..9490ba2 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp | |||
@@ -33,13 +33,20 @@ | |||
33 | 33 | ||
34 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
35 | 35 | ||
36 | #include "llcombobox.h" | ||
37 | #include "llpanel.h" | ||
38 | #include "llstylemap.h" | ||
39 | #include "lluictrlfactory.h" | ||
40 | |||
41 | #include "floatercommandline.h" | ||
42 | #include "llagent.h" | ||
36 | #include "llchatbar.h" | 43 | #include "llchatbar.h" |
37 | #include "llfloaterchat.h" | 44 | #include "llfloaterchat.h" |
45 | #include "lgghunspell_wrapper.h" | ||
46 | #include "lggautocorrectfloater.h" | ||
38 | #include "llprefschat.h" | 47 | #include "llprefschat.h" |
39 | #include "llviewercontrol.h" | 48 | #include "llviewercontrol.h" |
40 | #include "lluictrlfactory.h" | 49 | #include "llviewermessage.h" |
41 | #include "llradiogroup.h" | ||
42 | #include "llstylemap.h" | ||
43 | 50 | ||
44 | class LLPrefsChatImpl : public LLPanel | 51 | class LLPrefsChatImpl : public LLPanel |
45 | { | 52 | { |
@@ -47,44 +54,53 @@ public: | |||
47 | LLPrefsChatImpl(); | 54 | LLPrefsChatImpl(); |
48 | /*virtual*/ ~LLPrefsChatImpl(){}; | 55 | /*virtual*/ ~LLPrefsChatImpl(){}; |
49 | 56 | ||
57 | /*virtual*/ BOOL postBuild(); | ||
58 | |||
50 | void apply(); | 59 | void apply(); |
51 | void cancel(); | 60 | void cancel(); |
61 | void refresh(); | ||
62 | void setPersonalInfo(bool im_via_email, const std::string& email); | ||
63 | void initHelpBtn(const std::string& name, const std::string& xml_alert); | ||
64 | |||
65 | static void onAutoCorrectButton(void * data); | ||
66 | static void onClickHelp(void* data); | ||
67 | static void onClickCommandLine(void* data); | ||
68 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); | ||
69 | static void onSpellAdd(void* data); | ||
70 | static void onSpellRemove(void* data); | ||
71 | static void onSpellGetMore(void* data); | ||
72 | static void onSpellEditCustom(void* data); | ||
73 | static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
74 | |||
75 | protected: | ||
76 | bool mOriginalIMViaEmail; | ||
77 | bool mGotPersonalInfo; | ||
52 | 78 | ||
53 | private: | 79 | private: |
54 | void refreshValues(); | 80 | bool mChatChannel; |
55 | S32 mChatSize; | ||
56 | F32 mChatPersist; | ||
57 | S32 mChatMaxLines; | ||
58 | BOOL mChatFullWidth; | ||
59 | BOOL mCloseChatOnReturn; | ||
60 | BOOL mArrowKeysMoveAvatar; | ||
61 | BOOL mShowTimestamps; | ||
62 | BOOL mPlayTypingAnim; | ||
63 | BOOL mChatBubbles; | ||
64 | BOOL mLocalChatBubbles; | ||
65 | BOOL mScriptErrorAsChat; | ||
66 | BOOL mChatChannel; | ||
67 | F32 mConsoleOpacity; | ||
68 | F32 mBubbleOpacity; | ||
69 | std::string mTranslateLanguage; | ||
70 | BOOL mTranslateChat; | ||
71 | }; | 81 | }; |
72 | 82 | ||
73 | LLPrefsChatImpl::LLPrefsChatImpl() | 83 | LLPrefsChatImpl::LLPrefsChatImpl() |
74 | : LLPanel(std::string("Chat Panel")) | 84 | : LLPanel(std::string("Chat Panel")), |
85 | mChatChannel(false), | ||
86 | mOriginalIMViaEmail(false), | ||
87 | mGotPersonalInfo(false) | ||
75 | { | 88 | { |
76 | refreshValues(); // initialize member data from saved settings | ||
77 | |||
78 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml"); | 89 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml"); |
90 | } | ||
91 | |||
92 | BOOL LLPrefsChatImpl::postBuild() | ||
93 | { | ||
94 | requires("send_im_to_email"); | ||
95 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); | ||
96 | |||
97 | // Don't enable these until we get personal data | ||
98 | childSetEnabled("send_im_to_email", false); | ||
79 | 99 | ||
80 | getChild<LLRadioGroup>("chat_font_size")->setSelectedIndex(gSavedSettings.getS32("ChatFontSize")); | 100 | getChild<LLComboBox>("chat_font_size")->setValue(gSavedSettings.getS32("ChatFontSize")); |
81 | childSetValue("fade_chat_time", gSavedSettings.getF32("ChatPersistTime")); | 101 | childSetValue("fade_chat_time", gSavedSettings.getF32("ChatPersistTime")); |
82 | childSetValue("max_chat_count", gSavedSettings.getS32("ConsoleMaxLines")); | 102 | childSetValue("max_chat_count", gSavedSettings.getS32("ConsoleMaxLines")); |
83 | 103 | ||
84 | childSetValue("arrow_keys_move_avatar_check", gSavedSettings.getBOOL("ArrowKeysMoveAvatar")); | ||
85 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("ChatShowTimestamps")); | ||
86 | childSetValue("script_errors_as_chat", gSavedSettings.getBOOL("ScriptErrorsAsChat")); | ||
87 | |||
88 | childSetValue("bubble_text_chat", gSavedSettings.getBOOL("UseChatBubbles")); | 104 | childSetValue("bubble_text_chat", gSavedSettings.getBOOL("UseChatBubbles")); |
89 | childSetValue("local_bubble_text_chat", gSavedSettings.getBOOL("UseLocalChatWithBubbles")); | 105 | childSetValue("local_bubble_text_chat", gSavedSettings.getBOOL("UseLocalChatWithBubbles")); |
90 | childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth")); | 106 | childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth")); |
@@ -95,59 +111,89 @@ LLPrefsChatImpl::LLPrefsChatImpl() | |||
95 | childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); | 111 | childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); |
96 | childSetValue("translate_language_combobox", gSavedSettings.getString("TranslateLanguage")); | 112 | childSetValue("translate_language_combobox", gSavedSettings.getString("TranslateLanguage")); |
97 | childSetValue("translate_chat", gSavedSettings.getBOOL("TranslateChat")); | 113 | childSetValue("translate_chat", gSavedSettings.getBOOL("TranslateChat")); |
98 | } | ||
99 | 114 | ||
100 | void LLPrefsChatImpl::refreshValues() | ||
101 | { | ||
102 | //set values | ||
103 | mChatSize = gSavedSettings.getS32("ChatFontSize"); | ||
104 | mChatPersist = gSavedSettings.getF32("ChatPersistTime"); | ||
105 | mChatMaxLines = gSavedSettings.getS32("ConsoleMaxLines"); | ||
106 | mArrowKeysMoveAvatar = gSavedSettings.getBOOL("ArrowKeysMoveAvatar"); | ||
107 | mShowTimestamps = gSavedSettings.getBOOL("ChatShowTimestamps"); | ||
108 | mScriptErrorAsChat = gSavedSettings.getBOOL("ScriptErrorsAsChat"); | ||
109 | mChatBubbles = gSavedSettings.getBOOL("UseChatBubbles"); | ||
110 | mLocalChatBubbles = gSavedSettings.getBOOL("UseLocalChatWithBubbles"); | ||
111 | mChatFullWidth = gSavedSettings.getBOOL("ChatFullWidth"); | ||
112 | mCloseChatOnReturn = gSavedSettings.getBOOL("CloseChatOnReturn"); | ||
113 | mPlayTypingAnim = gSavedSettings.getBOOL("PlayTypingAnim"); | ||
114 | mChatChannel = gSavedSettings.getBOOL("ChatChannelSelect"); | 115 | mChatChannel = gSavedSettings.getBOOL("ChatChannelSelect"); |
115 | mConsoleOpacity = gSavedSettings.getF32("ConsoleBackgroundOpacity"); | 116 | |
116 | mTranslateLanguage = gSavedSettings.getString("TranslateLanguage"); | 117 | childSetValue("command_line_check", gSavedSettings.getBOOL("CmdLineChatbarEnabled")); |
117 | mTranslateChat = gSavedSettings.getBOOL("TranslateChat"); | 118 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); |
118 | static F32* sChatBubbleOpacity = rebind_llcontrol<F32>("ChatBubbleOpacity", &gSavedSettings, true); | 119 | childSetAction("command_line_btn", onClickCommandLine, this); |
119 | mBubbleOpacity = *sChatBubbleOpacity; | 120 | |
121 | getChild<LLComboBox>("EmeraldSpellBase")->setCommitCallback(onSpellBaseComboBoxCommit); | ||
122 | getChild<LLButton>("EmSpell_EditCustom")->setClickedCallback(onSpellEditCustom, this); | ||
123 | getChild<LLButton>("EmSpell_GetMore")->setClickedCallback(onSpellGetMore, this); | ||
124 | getChild<LLButton>("EmSpell_Add")->setClickedCallback(onSpellAdd, this); | ||
125 | getChild<LLButton>("EmSpell_Remove")->setClickedCallback(onSpellRemove, this); | ||
126 | |||
127 | getChild<LLButton>("ac_button")->setClickedCallback(onAutoCorrectButton, this); | ||
128 | initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck"); | ||
129 | |||
130 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); | ||
131 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); | ||
132 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); | ||
133 | |||
134 | refresh(); | ||
135 | |||
136 | return TRUE; | ||
137 | } | ||
138 | |||
139 | void LLPrefsChatImpl::refresh() | ||
140 | { | ||
141 | if (childGetValue("command_line_check").asBoolean()) | ||
142 | { | ||
143 | childEnable("command_line_btn"); | ||
144 | } | ||
145 | else | ||
146 | { | ||
147 | childDisable("command_line_btn"); | ||
148 | } | ||
149 | |||
150 | LLComboBox* comboBox = getChild<LLComboBox>("EmeraldSpellBase"); | ||
151 | if (comboBox != NULL) | ||
152 | { | ||
153 | comboBox->removeall(); | ||
154 | std::vector<std::string> names = glggHunSpell->getDicts(); | ||
155 | for (int i = 0; i < (int)names.size(); i++) | ||
156 | { | ||
157 | comboBox->add(names[i]); | ||
158 | } | ||
159 | comboBox->setSimple(gSavedSettings.getString("EmeraldSpellBase")); | ||
160 | } | ||
161 | comboBox = getChild<LLComboBox>("EmSpell_Avail"); | ||
162 | if (comboBox != NULL) | ||
163 | { | ||
164 | LLSD selected = comboBox->getSelectedValue(); | ||
165 | comboBox->removeall(); | ||
166 | std::vector<std::string> names = glggHunSpell->getAvailDicts(); | ||
167 | for (int i = 0; i < (int)names.size(); i++) | ||
168 | { | ||
169 | comboBox->add(names[i]); | ||
170 | } | ||
171 | comboBox->selectByValue(selected); | ||
172 | } | ||
173 | comboBox = getChild<LLComboBox>("EmSpell_Installed"); | ||
174 | if (comboBox != NULL) | ||
175 | { | ||
176 | LLSD selected = comboBox->getSelectedValue(); | ||
177 | comboBox->removeall(); | ||
178 | std::vector<std::string> names = glggHunSpell->getInstalledDicts(); | ||
179 | for (int i = 0; i < (int)names.size(); i++) | ||
180 | { | ||
181 | comboBox->add(names[i]); | ||
182 | } | ||
183 | comboBox->selectByValue(selected); | ||
184 | } | ||
120 | } | 185 | } |
121 | 186 | ||
122 | void LLPrefsChatImpl::cancel() | 187 | void LLPrefsChatImpl::cancel() |
123 | { | 188 | { |
124 | gSavedSettings.setS32("ChatFontSize", mChatSize); | ||
125 | gSavedSettings.setF32("ChatPersistTime", mChatPersist); | ||
126 | gSavedSettings.setS32("ConsoleMaxLines", mChatMaxLines); | ||
127 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", mArrowKeysMoveAvatar); | ||
128 | gSavedSettings.setBOOL("ChatShowTimestamps", mShowTimestamps); | ||
129 | gSavedSettings.setBOOL("ScriptErrorsAsChat", mScriptErrorAsChat); | ||
130 | gSavedSettings.setBOOL("UseChatBubbles", mChatBubbles); | ||
131 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", mLocalChatBubbles); | ||
132 | gSavedSettings.setBOOL("ChatFullWidth", mChatFullWidth); | ||
133 | gSavedSettings.setBOOL("CloseChatOnReturn", mCloseChatOnReturn); | ||
134 | gSavedSettings.setBOOL("PlayTypingAnim", mPlayTypingAnim); | ||
135 | gSavedSettings.setBOOL("ChatChannelSelect", mChatChannel); | ||
136 | gSavedSettings.setF32("ConsoleBackgroundOpacity", mConsoleOpacity); | ||
137 | gSavedSettings.setF32("ChatBubbleOpacity", mBubbleOpacity); | ||
138 | gSavedSettings.setString("TranslateLanguage", mTranslateLanguage); | ||
139 | gSavedSettings.setBOOL("TranslateChat", mTranslateChat); | ||
140 | } | 189 | } |
141 | 190 | ||
142 | void LLPrefsChatImpl::apply() | 191 | void LLPrefsChatImpl::apply() |
143 | { | 192 | { |
144 | gSavedSettings.setS32("ChatFontSize", getChild<LLRadioGroup>("chat_font_size")->getSelectedIndex()); | 193 | gSavedSettings.setS32("ChatFontSize", getChild<LLComboBox>("chat_font_size")->getValue().asInteger()); |
145 | gSavedSettings.setF32("ChatPersistTime", childGetValue("fade_chat_time").asReal()); | 194 | gSavedSettings.setF32("ChatPersistTime", childGetValue("fade_chat_time").asReal()); |
146 | gSavedSettings.setS32("ConsoleMaxLines", childGetValue("max_chat_count")); | 195 | gSavedSettings.setS32("ConsoleMaxLines", childGetValue("max_chat_count")); |
147 | 196 | ||
148 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", childGetValue("arrow_keys_move_avatar_check")); | ||
149 | gSavedSettings.setBOOL("ChatShowTimestamps", childGetValue("show_timestamps_check")); | ||
150 | gSavedSettings.setBOOL("ScriptErrorsAsChat", childGetValue("script_errors_as_chat")); | ||
151 | gSavedSettings.setBOOL("UseChatBubbles", childGetValue("bubble_text_chat")); | 197 | gSavedSettings.setBOOL("UseChatBubbles", childGetValue("bubble_text_chat")); |
152 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", childGetValue("local_bubble_text_chat")); | 198 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", childGetValue("local_bubble_text_chat")); |
153 | gSavedSettings.setBOOL("ChatFullWidth", childGetValue("chat_full_width_check")); | 199 | gSavedSettings.setBOOL("ChatFullWidth", childGetValue("chat_full_width_check")); |
@@ -160,7 +206,7 @@ void LLPrefsChatImpl::apply() | |||
160 | gSavedSettings.setString("TranslateLanguage", childGetValue("translate_language_combobox")); | 206 | gSavedSettings.setString("TranslateLanguage", childGetValue("translate_language_combobox")); |
161 | gSavedSettings.setBOOL("TranslateChat", childGetValue("translate_chat")); | 207 | gSavedSettings.setBOOL("TranslateChat", childGetValue("translate_chat")); |
162 | 208 | ||
163 | BOOL chan_check = childGetValue("toggle_channel_control"); | 209 | bool chan_check = childGetValue("toggle_channel_control"); |
164 | gSavedSettings.setBOOL("ChatChannelSelect", chan_check); | 210 | gSavedSettings.setBOOL("ChatChannelSelect", chan_check); |
165 | if (mChatChannel != chan_check) | 211 | if (mChatChannel != chan_check) |
166 | { | 212 | { |
@@ -172,7 +218,138 @@ void LLPrefsChatImpl::apply() | |||
172 | mChatChannel = chan_check; | 218 | mChatChannel = chan_check; |
173 | } | 219 | } |
174 | 220 | ||
175 | refreshValues(); // member values become the official values and cancel becomes a no-op. | 221 | gSavedSettings.setBOOL("CmdLineChatbarEnabled", childGetValue("command_line_check").asBoolean()); |
222 | |||
223 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); | ||
224 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
225 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
226 | |||
227 | if (mGotPersonalInfo) | ||
228 | { | ||
229 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); | ||
230 | |||
231 | if (new_im_via_email != mOriginalIMViaEmail) | ||
232 | { | ||
233 | LLMessageSystem* msg = gMessageSystem; | ||
234 | msg->newMessageFast(_PREHASH_UpdateUserInfo); | ||
235 | msg->nextBlockFast(_PREHASH_AgentData); | ||
236 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
237 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
238 | msg->nextBlockFast(_PREHASH_UserData); | ||
239 | msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); | ||
240 | gAgent.sendReliableMessage(); | ||
241 | } | ||
242 | } | ||
243 | |||
244 | // Spell checking prefs aren't here because Emerald never supported the cancel button. We should fix this -- MC | ||
245 | } | ||
246 | |||
247 | // Enable and set the value of settings recieved from the sim in AgentInfoReply | ||
248 | void LLPrefsChatImpl::setPersonalInfo(bool im_via_email, const std::string& email) | ||
249 | { | ||
250 | mGotPersonalInfo = true; | ||
251 | mOriginalIMViaEmail = im_via_email; | ||
252 | |||
253 | childEnable("send_im_to_email"); | ||
254 | childSetValue("send_im_to_email", im_via_email); | ||
255 | |||
256 | // Truncate the e-mail address if it's too long (to prevent going off | ||
257 | // the edge of the dialog). | ||
258 | std::string display_email(email); | ||
259 | if(display_email.size() > 30) | ||
260 | { | ||
261 | display_email.resize(30); | ||
262 | display_email += "..."; | ||
263 | } | ||
264 | else if (display_email.empty()) | ||
265 | { | ||
266 | display_email = getString("default_email_used"); | ||
267 | } | ||
268 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); | ||
269 | } | ||
270 | |||
271 | // static | ||
272 | void LLPrefsChatImpl::onSpellAdd(void* data) | ||
273 | { | ||
274 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)data; | ||
275 | if (panel) | ||
276 | { | ||
277 | glggHunSpell->addButton(panel->childGetValue("EmSpell_Avail").asString()); | ||
278 | panel->refresh(); | ||
279 | } | ||
280 | } | ||
281 | |||
282 | // static | ||
283 | void LLPrefsChatImpl::onSpellRemove(void* data) | ||
284 | { | ||
285 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)data; | ||
286 | if (panel) | ||
287 | { | ||
288 | glggHunSpell->removeButton(panel->childGetValue("EmSpell_Installed").asString()); | ||
289 | panel->refresh(); | ||
290 | } | ||
291 | } | ||
292 | |||
293 | // static | ||
294 | void LLPrefsChatImpl::onSpellGetMore(void* data) | ||
295 | { | ||
296 | glggHunSpell->getMoreButton(data); | ||
297 | } | ||
298 | |||
299 | // static | ||
300 | void LLPrefsChatImpl::onSpellEditCustom(void* data) | ||
301 | { | ||
302 | glggHunSpell->editCustomButton(); | ||
303 | } | ||
304 | |||
305 | // static | ||
306 | void LLPrefsChatImpl::onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
307 | { | ||
308 | LLComboBox* box = (LLComboBox*)ctrl; | ||
309 | if (box) | ||
310 | { | ||
311 | glggHunSpell->newDictSelection(box->getValue().asString()); | ||
312 | } | ||
313 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)userdata; | ||
314 | if (panel) | ||
315 | { | ||
316 | panel->refresh(); | ||
317 | } | ||
318 | } | ||
319 | |||
320 | // static | ||
321 | void LLPrefsChatImpl::onAutoCorrectButton(void * data) | ||
322 | { | ||
323 | lggAutoCorrectFloaterStart::show(TRUE,data); | ||
324 | } | ||
325 | |||
326 | // static | ||
327 | void LLPrefsChatImpl::onClickCommandLine(void* data) | ||
328 | { | ||
329 | FloaterCommandLine::getInstance()->open(); | ||
330 | FloaterCommandLine::getInstance()->center(); | ||
331 | } | ||
332 | |||
333 | //static | ||
334 | void LLPrefsChatImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) | ||
335 | { | ||
336 | LLPrefsChatImpl* self = (LLPrefsChatImpl*)user_data; | ||
337 | if (self) | ||
338 | { | ||
339 | self->refresh(); | ||
340 | } | ||
341 | } | ||
342 | |||
343 | void LLPrefsChatImpl::initHelpBtn(const std::string& name, const std::string& xml_alert) | ||
344 | { | ||
345 | childSetAction(name, onClickHelp, new std::string(xml_alert)); | ||
346 | } | ||
347 | |||
348 | // static | ||
349 | void LLPrefsChatImpl::onClickHelp(void* data) | ||
350 | { | ||
351 | std::string* xml_alert = (std::string*)data; | ||
352 | LLNotifications::instance().add(*xml_alert); | ||
176 | } | 353 | } |
177 | 354 | ||
178 | //--------------------------------------------------------------------------- | 355 | //--------------------------------------------------------------------------- |
@@ -197,6 +374,11 @@ void LLPrefsChat::cancel() | |||
197 | impl.cancel(); | 374 | impl.cancel(); |
198 | } | 375 | } |
199 | 376 | ||
377 | void LLPrefsChat::setPersonalInfo(bool im_via_email, const std::string& email) | ||
378 | { | ||
379 | impl.setPersonalInfo(im_via_email, email); | ||
380 | } | ||
381 | |||
200 | LLPanel* LLPrefsChat::getPanel() | 382 | LLPanel* LLPrefsChat::getPanel() |
201 | { | 383 | { |
202 | return &impl; | 384 | return &impl; |
diff --git a/linden/indra/newview/llprefschat.h b/linden/indra/newview/llprefschat.h index 86718a8..64bfb36 100644 --- a/linden/indra/newview/llprefschat.h +++ b/linden/indra/newview/llprefschat.h | |||
@@ -44,6 +44,7 @@ public: | |||
44 | 44 | ||
45 | void apply(); | 45 | void apply(); |
46 | void cancel(); | 46 | void cancel(); |
47 | void setPersonalInfo(bool im_via_email, const std::string& email); | ||
47 | 48 | ||
48 | LLPanel* getPanel(); | 49 | LLPanel* getPanel(); |
49 | 50 | ||
diff --git a/linden/indra/newview/llprefscolors.cpp b/linden/indra/newview/llprefscolors.cpp index b0bc345..0b4caf5 100644 --- a/linden/indra/newview/llprefscolors.cpp +++ b/linden/indra/newview/llprefscolors.cpp | |||
@@ -80,6 +80,12 @@ BOOL LLPrefsColors::postBuild() | |||
80 | childSetCommitCallback("HighlightOwnNameInChat", onCommitCheckSelfName, this); | 80 | childSetCommitCallback("HighlightOwnNameInChat", onCommitCheckSelfName, this); |
81 | childSetCommitCallback("HighlightFriendsChat", onCommitCheckFriends, this); | 81 | childSetCommitCallback("HighlightFriendsChat", onCommitCheckFriends, this); |
82 | 82 | ||
83 | getChild<LLColorSwatchCtrl>("effect_color_swatch")->set(gSavedSettings.getColor4("EffectColor")); | ||
84 | |||
85 | getChild<LLColorSwatchCtrl>("client_tag_color")->set(gSavedSettings.getColor4("ImprudenceTagColor")); | ||
86 | static BOOL* sShowClientColor = rebind_llcontrol<BOOL>("ShowClientColor", &gSavedSettings, true); | ||
87 | childSetValue("client_name_color_check", (*sShowClientColor)); | ||
88 | |||
83 | return TRUE; | 89 | return TRUE; |
84 | } | 90 | } |
85 | 91 | ||
@@ -96,6 +102,8 @@ void LLPrefsColors::refreshColors() | |||
96 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); | 102 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); |
97 | mFriendsChatColor = gSavedSettings.getColor4("FriendsChatColor"); | 103 | mFriendsChatColor = gSavedSettings.getColor4("FriendsChatColor"); |
98 | mOwnNameChatColor = gSavedSettings.getColor4("OwnNameChatColor"); | 104 | mOwnNameChatColor = gSavedSettings.getColor4("OwnNameChatColor"); |
105 | mEffectColor = gSavedSettings.getColor4("EffectColor"); | ||
106 | mClientTagColor = gSavedSettings.getColor4("ImprudenceTagColor"); | ||
99 | } | 107 | } |
100 | 108 | ||
101 | // static | 109 | // static |
@@ -113,9 +121,6 @@ void LLPrefsColors::updateSelfCheck() | |||
113 | childSetEnabled("nick01", highlight_names_enabled); | 121 | childSetEnabled("nick01", highlight_names_enabled); |
114 | childSetEnabled("nick02", highlight_names_enabled); | 122 | childSetEnabled("nick02", highlight_names_enabled); |
115 | childSetEnabled("nick03", highlight_names_enabled); | 123 | childSetEnabled("nick03", highlight_names_enabled); |
116 | childSetEnabled("nick01_text", highlight_names_enabled); | ||
117 | childSetEnabled("nick02_text", highlight_names_enabled); | ||
118 | childSetEnabled("nick03_text", highlight_names_enabled); | ||
119 | } | 124 | } |
120 | 125 | ||
121 | // static | 126 | // static |
@@ -130,6 +135,18 @@ void LLPrefsColors::updateFriendsCheck() | |||
130 | getChild<LLColorSwatchCtrl>("FriendsChatColor")->setEnabled(childGetValue("HighlightFriendsChat")); | 135 | getChild<LLColorSwatchCtrl>("FriendsChatColor")->setEnabled(childGetValue("HighlightFriendsChat")); |
131 | } | 136 | } |
132 | 137 | ||
138 | // static | ||
139 | void LLPrefsColors::onCommitCheckClient(LLUICtrl* ctrl, void* userdata) | ||
140 | { | ||
141 | LLPrefsColors* self = (LLPrefsColors*)userdata; | ||
142 | self->updateClientCheck(); | ||
143 | } | ||
144 | |||
145 | void LLPrefsColors::updateClientCheck() | ||
146 | { | ||
147 | getChild<LLColorSwatchCtrl>("client_tag_color")->setEnabled(childGetValue("client_name_color_checkt")); | ||
148 | } | ||
149 | |||
133 | void LLPrefsColors::cancel() | 150 | void LLPrefsColors::cancel() |
134 | { | 151 | { |
135 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); | 152 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); |
@@ -143,6 +160,8 @@ void LLPrefsColors::cancel() | |||
143 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); | 160 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); |
144 | gSavedSettings.setColor4("FriendsChatColor", mFriendsChatColor); | 161 | gSavedSettings.setColor4("FriendsChatColor", mFriendsChatColor); |
145 | gSavedSettings.setColor4("OwnNameChatColor", mOwnNameChatColor); | 162 | gSavedSettings.setColor4("OwnNameChatColor", mOwnNameChatColor); |
163 | gSavedSettings.setColor4("EffectColor", mEffectColor); | ||
164 | gSavedSettings.setColor4("ImprudenceTagColor", mClientTagColor); | ||
146 | } | 165 | } |
147 | 166 | ||
148 | void LLPrefsColors::apply() | 167 | void LLPrefsColors::apply() |
@@ -177,5 +196,10 @@ void LLPrefsColors::apply() | |||
177 | boost::trim(nick03); | 196 | boost::trim(nick03); |
178 | gSavedSettings.setString("HighlightNickname03", nick03); | 197 | gSavedSettings.setString("HighlightNickname03", nick03); |
179 | 198 | ||
199 | gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch")); | ||
200 | |||
201 | gSavedSettings.setBOOL("ShowClientColor", childGetValue("client_name_color_check")); | ||
202 | gSavedSettings.setColor4("ImprudenceTagColor", getChild<LLColorSwatchCtrl>("client_tag_color")->get()); | ||
203 | |||
180 | refreshColors(); // member values become the official values and cancel becomes a no-op. | 204 | refreshColors(); // member values become the official values and cancel becomes a no-op. |
181 | } | 205 | } |
diff --git a/linden/indra/newview/llprefscolors.h b/linden/indra/newview/llprefscolors.h index 70bda89..d580add 100644 --- a/linden/indra/newview/llprefscolors.h +++ b/linden/indra/newview/llprefscolors.h | |||
@@ -47,9 +47,11 @@ public: | |||
47 | private: | 47 | private: |
48 | static void onCommitCheckSelfName(LLUICtrl* ctrl, void* userdata); | 48 | static void onCommitCheckSelfName(LLUICtrl* ctrl, void* userdata); |
49 | static void onCommitCheckFriends(LLUICtrl* ctrl, void* userdata); | 49 | static void onCommitCheckFriends(LLUICtrl* ctrl, void* userdata); |
50 | static void onCommitCheckClient(LLUICtrl* ctrl, void* userdata); | ||
50 | void refreshColors(); | 51 | void refreshColors(); |
51 | void updateFriendsCheck(); | 52 | void updateFriendsCheck(); |
52 | void updateSelfCheck(); | 53 | void updateSelfCheck(); |
54 | void updateClientCheck(); | ||
53 | 55 | ||
54 | LLColor4 mSystemChatColor; | 56 | LLColor4 mSystemChatColor; |
55 | LLColor4 mUserChatColor; | 57 | LLColor4 mUserChatColor; |
@@ -62,6 +64,8 @@ private: | |||
62 | LLColor4 mHTMLLinkColor; | 64 | LLColor4 mHTMLLinkColor; |
63 | LLColor4 mFriendsChatColor; | 65 | LLColor4 mFriendsChatColor; |
64 | LLColor4 mOwnNameChatColor; | 66 | LLColor4 mOwnNameChatColor; |
67 | LLColor4 mEffectColor; | ||
68 | LLColor4 mClientTagColor; | ||
65 | }; | 69 | }; |
66 | 70 | ||
67 | #endif //LLPREFSCOLORS_H | 71 | #endif //LLPREFSCOLORS_H |
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index 33d9701..47b5d8b 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp | |||
@@ -65,7 +65,7 @@ public: | |||
65 | 65 | ||
66 | void apply(); | 66 | void apply(); |
67 | void cancel(); | 67 | void cancel(); |
68 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 68 | void setPersonalInfo(const std::string& visibility); |
69 | void preparePerAccountPrefs(bool enable); | 69 | void preparePerAccountPrefs(bool enable); |
70 | void enableHistory(); | 70 | void enableHistory(); |
71 | 71 | ||
@@ -78,7 +78,6 @@ protected: | |||
78 | 78 | ||
79 | bool mGotPersonalInfo; | 79 | bool mGotPersonalInfo; |
80 | bool mGotPerAccountSettings; | 80 | bool mGotPerAccountSettings; |
81 | bool mOriginalIMViaEmail; | ||
82 | 81 | ||
83 | bool mOriginalHideOnlineStatus; | 82 | bool mOriginalHideOnlineStatus; |
84 | std::string mDirectoryVisibility; | 83 | std::string mDirectoryVisibility; |
@@ -89,7 +88,6 @@ LLPrefsIMImpl::LLPrefsIMImpl() | |||
89 | : LLPanel(std::string("IM Prefs Panel")), | 88 | : LLPanel(std::string("IM Prefs Panel")), |
90 | mGotPersonalInfo(false), | 89 | mGotPersonalInfo(false), |
91 | mGotPerAccountSettings(false), | 90 | mGotPerAccountSettings(false), |
92 | mOriginalIMViaEmail(false), | ||
93 | mOriginalHideOnlineStatus(false) | 91 | mOriginalHideOnlineStatus(false) |
94 | { | 92 | { |
95 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); | 93 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); |
@@ -102,29 +100,14 @@ void LLPrefsIMImpl::cancel() | |||
102 | BOOL LLPrefsIMImpl::postBuild() | 100 | BOOL LLPrefsIMImpl::postBuild() |
103 | { | 101 | { |
104 | requires("online_visibility"); | 102 | requires("online_visibility"); |
105 | requires("send_im_to_email"); | 103 | |
106 | if (!checkRequirements()) | 104 | if (!checkRequirements()) |
107 | { | 105 | { |
108 | return FALSE; | 106 | return FALSE; |
109 | } | 107 | } |
110 | 108 | ||
111 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); | 109 | // Don't enable this until we get personal data |
112 | |||
113 | // Don't enable these until we get personal data | ||
114 | childSetEnabled("online_visibility", false); | 110 | childSetEnabled("online_visibility", false); |
115 | childSetEnabled("send_im_to_email", false); | ||
116 | |||
117 | // These are safe to enable | ||
118 | childSetEnabled("include_im_in_chat_console", true); | ||
119 | childSetEnabled("include_im_in_chat_history", true); | ||
120 | childSetEnabled("show_timestamps_check", true); | ||
121 | childSetEnabled("friends_online_notify_checkbox", true); | ||
122 | childSetEnabled("vertical-imtabs-toggle", true); | ||
123 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); | ||
124 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); | ||
125 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps")); | ||
126 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); | ||
127 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); | ||
128 | 111 | ||
129 | childSetAction("log_path_button", onClickLogPath, this); | 112 | childSetAction("log_path_button", onClickLogPath, this); |
130 | childSetCommitCallback("log_chat",onCommitLogging,this); | 113 | childSetCommitCallback("log_chat",onCommitLogging,this); |
@@ -191,11 +174,9 @@ void LLPrefsIMImpl::apply() | |||
191 | 174 | ||
192 | if (mGotPersonalInfo) | 175 | if (mGotPersonalInfo) |
193 | { | 176 | { |
194 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); | ||
195 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); | 177 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); |
196 | 178 | ||
197 | if((new_im_via_email != mOriginalIMViaEmail) | 179 | if (new_hide_online != mOriginalHideOnlineStatus) |
198 | ||(new_hide_online != mOriginalHideOnlineStatus)) | ||
199 | { | 180 | { |
200 | LLMessageSystem* msg = gMessageSystem; | 181 | LLMessageSystem* msg = gMessageSystem; |
201 | msg->newMessageFast(_PREHASH_UpdateUserInfo); | 182 | msg->newMessageFast(_PREHASH_UpdateUserInfo); |
@@ -203,7 +184,7 @@ void LLPrefsIMImpl::apply() | |||
203 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 184 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
204 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 185 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
205 | msg->nextBlockFast(_PREHASH_UserData); | 186 | msg->nextBlockFast(_PREHASH_UserData); |
206 | msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); | 187 | //msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); |
207 | // This hack is because we are representing several different | 188 | // This hack is because we are representing several different |
208 | // possible strings with a single checkbox. Since most users | 189 | // possible strings with a single checkbox. Since most users |
209 | // can only select between 2 values, we represent it as a | 190 | // can only select between 2 values, we represent it as a |
@@ -220,19 +201,12 @@ void LLPrefsIMImpl::apply() | |||
220 | gAgent.sendReliableMessage(); | 201 | gAgent.sendReliableMessage(); |
221 | } | 202 | } |
222 | } | 203 | } |
223 | |||
224 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); | ||
225 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
226 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
227 | gSavedSettings.setBOOL("IMShowTimestamps", childGetValue("show_timestamps_check").asBoolean()); | ||
228 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
229 | } | 204 | } |
230 | 205 | ||
231 | // Enable and set the value of settings recieved from the sim in AgentInfoReply | 206 | // Enable and set the value of settings recieved from the sim in AgentInfoReply |
232 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 207 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility) |
233 | { | 208 | { |
234 | mGotPersonalInfo = true; | 209 | mGotPersonalInfo = true; |
235 | mOriginalIMViaEmail = im_via_email; | ||
236 | mDirectoryVisibility = visibility; | 210 | mDirectoryVisibility = visibility; |
237 | 211 | ||
238 | if(visibility == VISIBILITY_DEFAULT) | 212 | if(visibility == VISIBILITY_DEFAULT) |
@@ -252,22 +226,6 @@ void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_e | |||
252 | 226 | ||
253 | childSetValue("online_visibility", mOriginalHideOnlineStatus); | 227 | childSetValue("online_visibility", mOriginalHideOnlineStatus); |
254 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); | 228 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); |
255 | childEnable("send_im_to_email"); | ||
256 | childSetValue("send_im_to_email", im_via_email); | ||
257 | |||
258 | // Truncate the e-mail address if it's too long (to prevent going off | ||
259 | // the edge of the dialog). | ||
260 | std::string display_email(email); | ||
261 | if(display_email.size() > 30) | ||
262 | { | ||
263 | display_email.resize(30); | ||
264 | display_email += "..."; | ||
265 | } | ||
266 | else if (display_email.empty()) | ||
267 | { | ||
268 | display_email = getString("default_email_used"); | ||
269 | } | ||
270 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); | ||
271 | } | 229 | } |
272 | 230 | ||
273 | // Enable and set the value of settings that need an account name | 231 | // Enable and set the value of settings that need an account name |
@@ -373,9 +331,9 @@ void LLPrefsIM::cancel() | |||
373 | impl.cancel(); | 331 | impl.cancel(); |
374 | } | 332 | } |
375 | 333 | ||
376 | void LLPrefsIM::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 334 | void LLPrefsIM::setPersonalInfo(const std::string& visibility) |
377 | { | 335 | { |
378 | impl.setPersonalInfo(visibility, im_via_email, email); | 336 | impl.setPersonalInfo(visibility); |
379 | } | 337 | } |
380 | 338 | ||
381 | void LLPrefsIM::preparePerAccountPrefs(bool enable) | 339 | void LLPrefsIM::preparePerAccountPrefs(bool enable) |
diff --git a/linden/indra/newview/llprefsim.h b/linden/indra/newview/llprefsim.h index acf9b0f..054e4c7 100644 --- a/linden/indra/newview/llprefsim.h +++ b/linden/indra/newview/llprefsim.h | |||
@@ -45,7 +45,7 @@ public: | |||
45 | 45 | ||
46 | void apply(); | 46 | void apply(); |
47 | void cancel(); | 47 | void cancel(); |
48 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 48 | void setPersonalInfo(const std::string& visibility); |
49 | void preparePerAccountPrefs(bool enable); | 49 | void preparePerAccountPrefs(bool enable); |
50 | 50 | ||
51 | LLPanel* getPanel(); | 51 | LLPanel* getPanel(); |
diff --git a/linden/indra/newview/llprefsvoice.cpp b/linden/indra/newview/llprefsvoice.cpp index fe5446b..0e8e816 100644 --- a/linden/indra/newview/llprefsvoice.cpp +++ b/linden/indra/newview/llprefsvoice.cpp | |||
@@ -189,6 +189,8 @@ void LLPrefsVoice::onCommitEnableVoiceChat(LLUICtrl* ctrl, void* user_data) | |||
189 | self->childSetEnabled("push_to_talk_label", enable); | 189 | self->childSetEnabled("push_to_talk_label", enable); |
190 | self->childSetEnabled("voice_call_friends_only_check", enable); | 190 | self->childSetEnabled("voice_call_friends_only_check", enable); |
191 | self->childSetEnabled("auto_disengage_mic_check", enable); | 191 | self->childSetEnabled("auto_disengage_mic_check", enable); |
192 | self->childSetEnabled("privacy_heading", enable); | ||
193 | self->childSetEnabled("push_to_talk_heading", enable); | ||
192 | self->childSetEnabled("push_to_talk_toggle_check", enable); | 194 | self->childSetEnabled("push_to_talk_toggle_check", enable); |
193 | self->childSetEnabled("ear_location", enable); | 195 | self->childSetEnabled("ear_location", enable); |
194 | self->childSetEnabled("set_voice_hotkey_button", enable); | 196 | self->childSetEnabled("set_voice_hotkey_button", enable); |
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index b05e36d..083a082 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -1884,8 +1884,7 @@ bool idle_startup() | |||
1884 | tmp = LLUserAuth::getInstance()->getResponse("max-agent-groups"); | 1884 | tmp = LLUserAuth::getInstance()->getResponse("max-agent-groups"); |
1885 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str())); | 1885 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str())); |
1886 | 1886 | ||
1887 | tmp = LLUserAuth::getInstance()->getResponse("VoiceConnector"); | 1887 | |
1888 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setVoiceConnector(tmp); | ||
1889 | gHippoGridManager->saveFile(); | 1888 | gHippoGridManager->saveFile(); |
1890 | gHippoLimits->setLimits(); | 1889 | gHippoLimits->setLimits(); |
1891 | 1890 | ||
@@ -1931,8 +1930,7 @@ bool idle_startup() | |||
1931 | } | 1930 | } |
1932 | // else llwarns << "MapServerURL empty"<< llendl; | 1931 | // else llwarns << "MapServerURL empty"<< llendl; |
1933 | 1932 | ||
1934 | // Pass the user information to the voice chat server interface. | 1933 | |
1935 | gVoiceClient->userAuthorized(firstname, lastname, gAgentID); | ||
1936 | } | 1934 | } |
1937 | else // if(successful_login) | 1935 | else // if(successful_login) |
1938 | { | 1936 | { |
@@ -2065,6 +2063,7 @@ bool idle_startup() | |||
2065 | LL_DEBUGS("AppInitStartupState") << "STATE_SEED_CAP_GRANTED" << LL_ENDL; | 2063 | LL_DEBUGS("AppInitStartupState") << "STATE_SEED_CAP_GRANTED" << LL_ENDL; |
2066 | update_texture_fetch(); | 2064 | update_texture_fetch(); |
2067 | 2065 | ||
2066 | |||
2068 | if ( gViewerWindow != NULL) | 2067 | if ( gViewerWindow != NULL) |
2069 | { // This isn't the first logon attempt, so show the UI | 2068 | { // This isn't the first logon attempt, so show the UI |
2070 | gViewerWindow->setNormalControlsVisible( TRUE ); | 2069 | gViewerWindow->setNormalControlsVisible( TRUE ); |
@@ -2123,6 +2122,9 @@ bool idle_startup() | |||
2123 | // | 2122 | // |
2124 | LL_INFOS("AppInit") << "Initializing communications..." << LL_ENDL; | 2123 | LL_INFOS("AppInit") << "Initializing communications..." << LL_ENDL; |
2125 | 2124 | ||
2125 | // Pass the user information to the voice chat server interface. | ||
2126 | gVoiceClient->userAuthorized(firstname, lastname, gAgentID); | ||
2127 | |||
2126 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted | 2128 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted |
2127 | register_viewer_callbacks(gMessageSystem); | 2129 | register_viewer_callbacks(gMessageSystem); |
2128 | 2130 | ||
@@ -2142,7 +2144,7 @@ bool idle_startup() | |||
2142 | gCacheName->addObserver(callback_cache_name); | 2144 | gCacheName->addObserver(callback_cache_name); |
2143 | 2145 | ||
2144 | // Load stored cache if possible | 2146 | // Load stored cache if possible |
2145 | LLAppViewer::instance()->loadNameCache(); | 2147 | LLAppViewer::instance()->loadNameCache(); |
2146 | 2148 | ||
2147 | // Start cache in not-running state until we figure out if we have | 2149 | // Start cache in not-running state until we figure out if we have |
2148 | // capabilities for display name lookup | 2150 | // capabilities for display name lookup |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index ab867a6..bdad2b8 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -874,15 +874,6 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
874 | } | 874 | } |
875 | } | 875 | } |
876 | 876 | ||
877 | // *TODO: remove this hack when not needed anymore | ||
878 | S32 buggy_range_fudge = 0; | ||
879 | if (LLTextureFetch::hasBuggyHTTPRange()) | ||
880 | { | ||
881 | buggy_range_fudge = 1; | ||
882 | resetFormattedData(); // discard any previous data we had | ||
883 | cur_size = 0 ; | ||
884 | } | ||
885 | |||
886 | mRequestedSize = mDesiredSize; | 877 | mRequestedSize = mDesiredSize; |
887 | mRequestedDiscard = mDesiredDiscard; | 878 | mRequestedDiscard = mDesiredDiscard; |
888 | mRequestedSize -= cur_size; | 879 | mRequestedSize -= cur_size; |
@@ -898,7 +889,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
898 | mGetReason.clear(); | 889 | mGetReason.clear(); |
899 | LL_DEBUGS("TextureFetch") << "HTTP GET: " << mID << " Offset: " << offset | 890 | LL_DEBUGS("TextureFetch") << "HTTP GET: " << mID << " Offset: " << offset |
900 | << " Bytes: " << mRequestedSize | 891 | << " Bytes: " << mRequestedSize |
901 | << " Range: " << offset << "-" << offset+mRequestedSize-1+buggy_range_fudge | 892 | << " Range: " << offset << "-" << offset+mRequestedSize-1 |
902 | << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth | 893 | << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth |
903 | << LL_ENDL; | 894 | << LL_ENDL; |
904 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); | 895 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); |
@@ -908,7 +899,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
908 | // Will call callbackHttpGet when curl request completes | 899 | // Will call callbackHttpGet when curl request completes |
909 | std::vector<std::string> headers; | 900 | std::vector<std::string> headers; |
910 | headers.push_back("Accept: image/x-j2c"); | 901 | headers.push_back("Accept: image/x-j2c"); |
911 | res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize + buggy_range_fudge, | 902 | res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize, |
912 | new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset)); | 903 | new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset)); |
913 | } | 904 | } |
914 | if (!res) | 905 | if (!res) |
@@ -2279,45 +2270,3 @@ void LLTextureFetch::dump() | |||
2279 | << llendl; | 2270 | << llendl; |
2280 | } | 2271 | } |
2281 | } | 2272 | } |
2282 | |||
2283 | // This tries to detect if the sim has this bug: | ||
2284 | // http://opensimulator.org/mantis/view.php?id=5081 | ||
2285 | // | ||
2286 | // *TODO: This is a *HACK and may not work if the grid is heterogenous. | ||
2287 | // Remove it once OpenSim versions in the wild are > 0.7.0.2! | ||
2288 | #include "hippogridmanager.h" | ||
2289 | #include <boost/regex.hpp> | ||
2290 | //static | ||
2291 | bool LLTextureFetch::hasBuggyHTTPRange() | ||
2292 | { | ||
2293 | static std::string s_version; | ||
2294 | static bool buggy = false; | ||
2295 | if ((s_version != gLastVersionChannel) && !gLastVersionChannel.empty()) | ||
2296 | { | ||
2297 | s_version = gLastVersionChannel; | ||
2298 | buggy = false; | ||
2299 | if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_OPENSIM) | ||
2300 | { | ||
2301 | std::string ver_string; | ||
2302 | try | ||
2303 | { | ||
2304 | const boost::regex re(".*OpenSim.*?([0-9.]+).+"); | ||
2305 | ver_string = regex_replace(s_version, re, "\\1", boost::match_default); | ||
2306 | } | ||
2307 | catch(std::runtime_error) | ||
2308 | { | ||
2309 | ver_string = "0.0"; | ||
2310 | } | ||
2311 | LLStringUtil::replaceChar(ver_string, '.', '0'); | ||
2312 | ver_string = "0." + ver_string; | ||
2313 | F64 version = atof(ver_string.c_str()); | ||
2314 | // we look for "0.6.8" < version < "0.7.0.3" | ||
2315 | if ((version > 0.00608) && (version < 0.0070003)) | ||
2316 | { | ||
2317 | buggy = true; | ||
2318 | llwarns << "Setting buggy http ranges mode for current sim, because we're on " << s_version << llendl; | ||
2319 | } | ||
2320 | } | ||
2321 | } | ||
2322 | return buggy; | ||
2323 | } | ||
diff --git a/linden/indra/newview/lltexturefetch.h b/linden/indra/newview/lltexturefetch.h index 5fa2d1c..6c6bb52 100644 --- a/linden/indra/newview/lltexturefetch.h +++ b/linden/indra/newview/lltexturefetch.h | |||
@@ -86,8 +86,6 @@ public: | |||
86 | 86 | ||
87 | LLTextureInfo* getTextureInfo() { return &mTextureInfo; } | 87 | LLTextureInfo* getTextureInfo() { return &mTextureInfo; } |
88 | 88 | ||
89 | static bool hasBuggyHTTPRange(); // *TODO: remove this *HACK once buggy OpenSim versions are gone | ||
90 | |||
91 | protected: | 89 | protected: |
92 | void addToNetworkQueue(LLTextureFetchWorker* worker); | 90 | void addToNetworkQueue(LLTextureFetchWorker* worker); |
93 | void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); | 91 | void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); |
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index 039896f..de92903 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp | |||
@@ -193,6 +193,13 @@ void LLViewerImageList::doPreloadImages() | |||
193 | mImagePreloads.insert(image); | 193 | mImagePreloads.insert(image); |
194 | } | 194 | } |
195 | 195 | ||
196 | // Preload default unrezzad avatar cloud | ||
197 | image = getImageFromFile("cloud-particle.j2c",MIPMAP_YES,IMMEDIATE_YES,0,0,DEFAULT_UNREZZED_AVATAR_PARTICLE); | ||
198 | if (image) | ||
199 | { | ||
200 | image->setAddressMode(LLTexUnit::TAM_WRAP); | ||
201 | mImagePreloads.insert(image); | ||
202 | } | ||
196 | } | 203 | } |
197 | 204 | ||
198 | static std::string get_texture_list_name() | 205 | static std::string get_texture_list_name() |
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp index 89d7b1f..dbb6f62 100644 --- a/linden/indra/newview/llviewermedia.cpp +++ b/linden/indra/newview/llviewermedia.cpp | |||
@@ -547,6 +547,13 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ | |||
547 | 547 | ||
548 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) | 548 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) |
549 | { | 549 | { |
550 | #if LL_WINDOWS | ||
551 | if (gSavedSettings.getBOOL("ShowConsoleWindow")) | ||
552 | { | ||
553 | media_source->showConsole(); | ||
554 | } | ||
555 | #endif | ||
556 | |||
550 | return media_source; | 557 | return media_source; |
551 | } | 558 | } |
552 | else | 559 | else |
diff --git a/linden/indra/newview/llviewermedia_streamingaudio.cpp b/linden/indra/newview/llviewermedia_streamingaudio.cpp index 6a4dd0f..f02870b 100644 --- a/linden/indra/newview/llviewermedia_streamingaudio.cpp +++ b/linden/indra/newview/llviewermedia_streamingaudio.cpp | |||
@@ -96,7 +96,7 @@ void LLStreamingAudio_MediaPlugins::stop() | |||
96 | { | 96 | { |
97 | mMediaPlugin->stop(); | 97 | mMediaPlugin->stop(); |
98 | } | 98 | } |
99 | 99 | llinfos << "Stopping internet stream." << llendl; | |
100 | mURL.clear(); | 100 | mURL.clear(); |
101 | } | 101 | } |
102 | 102 | ||
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index ed51a24..b044309 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -1525,7 +1525,7 @@ void LLVOAvatar::loadCloud(const std::string& filename, LLPartSysData& particle | |||
1525 | if(particles.mPartImageID.isNull() || default_id == particles.mPartImageID) | 1525 | if(particles.mPartImageID.isNull() || default_id == particles.mPartImageID) |
1526 | { | 1526 | { |
1527 | LLViewerImage* cloud_image = | 1527 | LLViewerImage* cloud_image = |
1528 | gImageList.getImageFromFile("cloud-particle.j2c", MIPMAP_YES, IMMEDIATE_YES, 0, 0, default_id); | 1528 | gImageList.getImage(default_id); |
1529 | particles.mPartImageID = cloud_image->getID(); | 1529 | particles.mPartImageID = cloud_image->getID(); |
1530 | } | 1530 | } |
1531 | } | 1531 | } |
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 4d08bf0..b9e4d17 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -231,6 +231,7 @@ public: | |||
231 | 231 | ||
232 | BOOL isVisible(); | 232 | BOOL isVisible(); |
233 | BOOL isSelf() const { return mIsSelf; } | 233 | BOOL isSelf() const { return mIsSelf; } |
234 | bool isBuilt() const { return mIsBuilt; } | ||
234 | BOOL isCulled() const { return mCulled; } | 235 | BOOL isCulled() const { return mCulled; } |
235 | 236 | ||
236 | public: | 237 | public: |
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 2266aab..115f6e8 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -139,22 +139,23 @@ class LLViewerVoiceAccountProvisionResponder : | |||
139 | public LLHTTPClient::Responder | 139 | public LLHTTPClient::Responder |
140 | { | 140 | { |
141 | public: | 141 | public: |
142 | LLViewerVoiceAccountProvisionResponder(int retries) | 142 | LLViewerVoiceAccountProvisionResponder(int retries, LLUUID response_id) |
143 | { | 143 | { |
144 | mRetries = retries; | 144 | mRetries = retries; |
145 | mResponseID = response_id; | ||
145 | } | 146 | } |
146 | 147 | ||
147 | virtual void error(U32 status, const std::string& reason) | 148 | virtual void error(U32 status, const std::string& reason) |
148 | { | 149 | { |
149 | if ( mRetries > 0 ) | 150 | if ( mRetries > 0 ) |
150 | { | 151 | { |
151 | LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; | 152 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; |
152 | if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision( | 153 | if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision( |
153 | mRetries - 1); | 154 | mRetries - 1); |
154 | } | 155 | } |
155 | else | 156 | else |
156 | { | 157 | { |
157 | LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; | 158 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; |
158 | if ( gVoiceClient ) gVoiceClient->giveUp(); | 159 | if ( gVoiceClient ) gVoiceClient->giveUp(); |
159 | } | 160 | } |
160 | } | 161 | } |
@@ -166,7 +167,7 @@ public: | |||
166 | std::string voice_sip_uri_hostname; | 167 | std::string voice_sip_uri_hostname; |
167 | std::string voice_account_server_uri; | 168 | std::string voice_account_server_uri; |
168 | 169 | ||
169 | LL_DEBUGS("Voice") << "ProvisionVoiceAccountRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; | 170 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; |
170 | 171 | ||
171 | if(content.has("voice_sip_uri_hostname")) | 172 | if(content.has("voice_sip_uri_hostname")) |
172 | voice_sip_uri_hostname = content["voice_sip_uri_hostname"].asString(); | 173 | voice_sip_uri_hostname = content["voice_sip_uri_hostname"].asString(); |
@@ -179,12 +180,14 @@ public: | |||
179 | content["username"].asString(), | 180 | content["username"].asString(), |
180 | content["password"].asString(), | 181 | content["password"].asString(), |
181 | voice_sip_uri_hostname, | 182 | voice_sip_uri_hostname, |
182 | voice_account_server_uri); | 183 | voice_account_server_uri, |
184 | mResponseID); | ||
183 | } | 185 | } |
184 | } | 186 | } |
185 | 187 | ||
186 | private: | 188 | private: |
187 | int mRetries; | 189 | int mRetries; |
190 | LLUUID mResponseID; | ||
188 | }; | 191 | }; |
189 | 192 | ||
190 | /** | 193 | /** |
@@ -364,7 +367,7 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
364 | // If this message isn't set to be squelched, output the raw XML received. | 367 | // If this message isn't set to be squelched, output the raw XML received. |
365 | if(!squelchDebugOutput) | 368 | if(!squelchDebugOutput) |
366 | { | 369 | { |
367 | LL_DEBUGS("Voice") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL; | 370 | LL_DEBUGS("VivoxProtocolParser") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL; |
368 | } | 371 | } |
369 | 372 | ||
370 | start = delim + 3; | 373 | start = delim + 3; |
@@ -378,7 +381,7 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
378 | if(!gVoiceClient->mConnected) | 381 | if(!gVoiceClient->mConnected) |
379 | { | 382 | { |
380 | // If voice has been disabled, we just want to close the socket. This does so. | 383 | // If voice has been disabled, we just want to close the socket. This does so. |
381 | LL_INFOS("Voice") << "returning STATUS_STOP" << LL_ENDL; | 384 | LL_INFOS("VivoxProtocolParser") << "returning STATUS_STOP" << LL_ENDL; |
382 | return STATUS_STOP; | 385 | return STATUS_STOP; |
383 | } | 386 | } |
384 | 387 | ||
@@ -1008,12 +1011,13 @@ static LLVoiceClientFriendsObserver *friendslist_listener = NULL; | |||
1008 | class LLVoiceClientCapResponder : public LLHTTPClient::Responder | 1011 | class LLVoiceClientCapResponder : public LLHTTPClient::Responder |
1009 | { | 1012 | { |
1010 | public: | 1013 | public: |
1011 | LLVoiceClientCapResponder(void){}; | 1014 | LLVoiceClientCapResponder(LLUUID response_id):mResponseID(response_id) {}; |
1012 | 1015 | ||
1013 | virtual void error(U32 status, const std::string& reason); // called with bad status codes | 1016 | virtual void error(U32 status, const std::string& reason); // called with bad status codes |
1014 | virtual void result(const LLSD& content); | 1017 | virtual void result(const LLSD& content); |
1015 | 1018 | ||
1016 | private: | 1019 | private: |
1020 | LLUUID mResponseID; | ||
1017 | }; | 1021 | }; |
1018 | 1022 | ||
1019 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) | 1023 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) |
@@ -1027,7 +1031,7 @@ void LLVoiceClientCapResponder::result(const LLSD& content) | |||
1027 | { | 1031 | { |
1028 | LLSD::map_const_iterator iter; | 1032 | LLSD::map_const_iterator iter; |
1029 | 1033 | ||
1030 | LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; | 1034 | LL_DEBUGS("VoiceCaps") << "ParcelVoiceInfoRequest response:\n" << ll_pretty_print_sd(content) << LL_ENDL; |
1031 | 1035 | ||
1032 | if ( content.has("voice_credentials") ) | 1036 | if ( content.has("voice_credentials") ) |
1033 | { | 1037 | { |
@@ -1045,7 +1049,7 @@ void LLVoiceClientCapResponder::result(const LLSD& content) | |||
1045 | voice_credentials["channel_credentials"].asString(); | 1049 | voice_credentials["channel_credentials"].asString(); |
1046 | } | 1050 | } |
1047 | 1051 | ||
1048 | gVoiceClient->setSpatialChannel(uri, credentials); | 1052 | gVoiceClient->setSpatialChannel(uri, credentials, mResponseID); |
1049 | } | 1053 | } |
1050 | } | 1054 | } |
1051 | 1055 | ||
@@ -1126,6 +1130,8 @@ LLVoiceClient::LLVoiceClient() | |||
1126 | mAudioSessionChanged = false; | 1130 | mAudioSessionChanged = false; |
1127 | 1131 | ||
1128 | // Initial dirty state | 1132 | // Initial dirty state |
1133 | mAccountActive = false; | ||
1134 | mVAPRequested = false; | ||
1129 | mSpatialCoordsDirty = false; | 1135 | mSpatialCoordsDirty = false; |
1130 | mPTTDirty = true; | 1136 | mPTTDirty = true; |
1131 | mFriendsListDirty = true; | 1137 | mFriendsListDirty = true; |
@@ -1347,6 +1353,7 @@ void LLVoiceClient::userAuthorized(const std::string& firstName, const std::stri | |||
1347 | sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); | 1353 | sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); |
1348 | 1354 | ||
1349 | mAccountName = nameFromID(agentID); | 1355 | mAccountName = nameFromID(agentID); |
1356 | mAccountActive = true; | ||
1350 | } | 1357 | } |
1351 | 1358 | ||
1352 | void LLVoiceClient::requestVoiceAccountProvision(S32 retries) | 1359 | void LLVoiceClient::requestVoiceAccountProvision(S32 retries) |
@@ -1357,12 +1364,21 @@ void LLVoiceClient::requestVoiceAccountProvision(S32 retries) | |||
1357 | gAgent.getRegion()->getCapability( | 1364 | gAgent.getRegion()->getCapability( |
1358 | "ProvisionVoiceAccountRequest"); | 1365 | "ProvisionVoiceAccountRequest"); |
1359 | 1366 | ||
1360 | if ( url == "" ) return; | 1367 | if ( url.empty() ) |
1368 | { | ||
1369 | mVAPRequested = false; | ||
1370 | mAccountActive = false; | ||
1371 | setState(stateDisableCleanup); | ||
1372 | } | ||
1373 | |||
1374 | LL_DEBUGS("VoiceCaps") << "Got ProvisionVoiceAccountRequest capability: " | ||
1375 | << url << llendl; | ||
1361 | 1376 | ||
1377 | mVAPCapResponseID.generate(); | ||
1362 | LLHTTPClient::post( | 1378 | LLHTTPClient::post( |
1363 | url, | 1379 | url, |
1364 | LLSD(), | 1380 | LLSD(), |
1365 | new LLViewerVoiceAccountProvisionResponder(retries)); | 1381 | new LLViewerVoiceAccountProvisionResponder(retries, mVAPCapResponseID)); |
1366 | } | 1382 | } |
1367 | } | 1383 | } |
1368 | 1384 | ||
@@ -1370,11 +1386,44 @@ void LLVoiceClient::login( | |||
1370 | const std::string& account_name, | 1386 | const std::string& account_name, |
1371 | const std::string& password, | 1387 | const std::string& password, |
1372 | const std::string& voice_sip_uri_hostname, | 1388 | const std::string& voice_sip_uri_hostname, |
1373 | const std::string& voice_account_server_uri) | 1389 | const std::string& voice_account_server_uri, |
1390 | const LLUUID& response_id) | ||
1374 | { | 1391 | { |
1392 | if(response_id != mVAPCapResponseID) return; | ||
1393 | |||
1394 | std::string new_scheme; | ||
1395 | std::string old_scheme; | ||
1396 | if(!voice_account_server_uri.empty()) | ||
1397 | { | ||
1398 | new_scheme = voice_account_server_uri.substr(0, voice_account_server_uri.find("://")); | ||
1399 | } | ||
1400 | if(!mDaemonScheme.empty()) | ||
1401 | { | ||
1402 | old_scheme = mDaemonScheme; | ||
1403 | } | ||
1404 | else | ||
1405 | { | ||
1406 | old_scheme = new_scheme; | ||
1407 | } | ||
1408 | |||
1375 | mVoiceSIPURIHostName = voice_sip_uri_hostname; | 1409 | mVoiceSIPURIHostName = voice_sip_uri_hostname; |
1376 | mVoiceAccountServerURI = voice_account_server_uri; | 1410 | mVoiceAccountServerURI = voice_account_server_uri; |
1377 | 1411 | ||
1412 | |||
1413 | LL_DEBUGS("VoiceCaps") << "new_scheme: \"" << new_scheme << "\"" | ||
1414 | << "\nold_scheme: \"" << old_scheme << "\"" | ||
1415 | << "\ngateway running: " << ( isGatewayRunning() ? "true" : "false" ) << llendl; | ||
1416 | if(!isGatewayRunning() ) | ||
1417 | { | ||
1418 | loadDaemon(new_scheme); | ||
1419 | } | ||
1420 | else if(old_scheme != new_scheme) | ||
1421 | { | ||
1422 | mAccountActive = true; | ||
1423 | setState(stateDisableCleanup); | ||
1424 | } | ||
1425 | |||
1426 | |||
1378 | if(!mAccountHandle.empty()) | 1427 | if(!mAccountHandle.empty()) |
1379 | { | 1428 | { |
1380 | // Already logged in. | 1429 | // Already logged in. |
@@ -1432,6 +1481,183 @@ void LLVoiceClient::login( | |||
1432 | } | 1481 | } |
1433 | } | 1482 | } |
1434 | 1483 | ||
1484 | void LLVoiceClient::loadDaemon(const std::string& scheme) | ||
1485 | { | ||
1486 | |||
1487 | // Launch the voice daemon | ||
1488 | |||
1489 | |||
1490 | // *FIX:Mani - Using the executable dir instead | ||
1491 | // of mAppRODataDir, the working directory from which the app | ||
1492 | // is launched. | ||
1493 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | ||
1494 | std::string exe_path = gDirUtilp->getExecutableDir(); | ||
1495 | exe_path += gDirUtilp->getDirDelimiter(); | ||
1496 | |||
1497 | #if LL_DARWIN | ||
1498 | exe_path += "../Resources/"; | ||
1499 | #endif | ||
1500 | |||
1501 | //exe_path += gSavedSettings.getString("VoiceModule"); | ||
1502 | llwarns << "Scheme: " << scheme << llendl; | ||
1503 | |||
1504 | std::string module; | ||
1505 | if (scheme == "tcp") | ||
1506 | { | ||
1507 | |||
1508 | module = gSavedSettings.getString("VoiceModuleMumble").empty() ? | ||
1509 | "mumble" : gSavedSettings.getString("VoiceModuleMumble"); | ||
1510 | } | ||
1511 | else | ||
1512 | { | ||
1513 | module = gSavedSettings.getString("VoiceModuleVivox").empty() ? | ||
1514 | "SLVoice" : gSavedSettings.getString("VoiceModuleVivox"); | ||
1515 | } | ||
1516 | |||
1517 | size_t pos_to_tst = module.find_last_of("/\\"); | ||
1518 | if( pos_to_tst != std::string::npos ) | ||
1519 | { | ||
1520 | module = module.substr(pos_to_tst+1); | ||
1521 | } | ||
1522 | |||
1523 | #if LL_WINDOWS | ||
1524 | std::string extension = ".exe"; | ||
1525 | if ( module.rfind(extension) != module.length()-extension.length()) | ||
1526 | { | ||
1527 | module.append(extension); | ||
1528 | } | ||
1529 | #endif | ||
1530 | |||
1531 | exe_path.append(module); | ||
1532 | |||
1533 | // See if the vivox executable exists | ||
1534 | llstat s; | ||
1535 | if(!LLFile::stat(exe_path, &s)) | ||
1536 | { | ||
1537 | // vivox executable exists. Build the command line and launch the daemon. | ||
1538 | // SLIM SDK: these arguments are no longer necessary. | ||
1539 | // std::string args = " -p tcp -h -c"; | ||
1540 | std::string args; | ||
1541 | std::string cmd; | ||
1542 | std::string loglevel = gSavedSettings.getString("VivoxDebugLevel"); | ||
1543 | |||
1544 | if(loglevel.empty()) | ||
1545 | { | ||
1546 | loglevel = "-1"; // turn logging off completely | ||
1547 | } | ||
1548 | |||
1549 | args += " -ll "; | ||
1550 | args += loglevel; | ||
1551 | |||
1552 | llwarns << "Voice loaded from: " << exe_path << " " << args << LL_ENDL; | ||
1553 | |||
1554 | #if LL_WINDOWS | ||
1555 | PROCESS_INFORMATION pinfo; | ||
1556 | STARTUPINFOA sinfo; | ||
1557 | memset(&sinfo, 0, sizeof(sinfo)); | ||
1558 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | ||
1559 | |||
1560 | |||
1561 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | ||
1562 | char *args2 = new char[args.size() + 1]; | ||
1563 | strcpy(args2, args.c_str()); | ||
1564 | |||
1565 | if(!CreateProcessA(exe_path.c_str(), args2, NULL, NULL, FALSE, 0, NULL, exe_dir.c_str(), &sinfo, &pinfo)) | ||
1566 | { | ||
1567 | // DWORD dwErr = GetLastError(); | ||
1568 | } | ||
1569 | else | ||
1570 | { | ||
1571 | // foo = pinfo.dwProcessId; // get your pid here if you want to use it later on | ||
1572 | // CloseHandle(pinfo.hProcess); // stops leaks - nothing else | ||
1573 | sGatewayHandle = pinfo.hProcess; | ||
1574 | CloseHandle(pinfo.hThread); // stops leaks - nothing else | ||
1575 | } | ||
1576 | |||
1577 | delete[] args2; | ||
1578 | #else // LL_WINDOWS | ||
1579 | // This should be the same for mac and linux | ||
1580 | { | ||
1581 | std::vector<std::string> arglist; | ||
1582 | arglist.push_back(exe_path); | ||
1583 | |||
1584 | // Split the argument string into separate strings for each argument | ||
1585 | typedef boost::tokenizer<boost::char_separator<char> > tokenizer; | ||
1586 | boost::char_separator<char> sep(" "); | ||
1587 | tokenizer tokens(args, sep); | ||
1588 | tokenizer::iterator token_iter; | ||
1589 | |||
1590 | for(token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) | ||
1591 | { | ||
1592 | arglist.push_back(*token_iter); | ||
1593 | } | ||
1594 | |||
1595 | // create an argv vector for the child process | ||
1596 | char **fakeargv = new char*[arglist.size() + 1]; | ||
1597 | int i; | ||
1598 | for(i=0; i < arglist.size(); i++) | ||
1599 | fakeargv[i] = const_cast<char*>(arglist[i].c_str()); | ||
1600 | |||
1601 | fakeargv[i] = NULL; | ||
1602 | |||
1603 | fflush(NULL); // flush all buffers before the child inherits them | ||
1604 | pid_t id = vfork(); | ||
1605 | if(id == 0) | ||
1606 | { | ||
1607 | // child | ||
1608 | execv(exe_path.c_str(), fakeargv); | ||
1609 | |||
1610 | // If we reach this point, the exec failed. | ||
1611 | // Use _exit() instead of exit() per the vfork man page. | ||
1612 | _exit(0); | ||
1613 | } | ||
1614 | |||
1615 | // parent | ||
1616 | delete[] fakeargv; | ||
1617 | sGatewayPID = id; | ||
1618 | |||
1619 | } | ||
1620 | |||
1621 | #endif // LL_WINDOWS | ||
1622 | |||
1623 | mDaemonScheme = scheme; | ||
1624 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost").c_str(), gSavedSettings.getU32("VoicePort")); | ||
1625 | |||
1626 | // Dirty the states we'll need to sync with the daemon when it comes up. | ||
1627 | mPTTDirty = true; | ||
1628 | mMicVolumeDirty = true; | ||
1629 | mSpeakerVolumeDirty = true; | ||
1630 | mSpeakerMuteDirty = true; | ||
1631 | // These only need to be set if they're not default (i.e. empty string). | ||
1632 | mCaptureDeviceDirty = !mCaptureDevice.empty(); | ||
1633 | mRenderDeviceDirty = !mRenderDevice.empty(); | ||
1634 | |||
1635 | mMainSessionGroupHandle.clear(); | ||
1636 | |||
1637 | // kick in | ||
1638 | |||
1639 | mUpdateTimer.start(); | ||
1640 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | ||
1641 | |||
1642 | setState(stateDaemonLaunched); | ||
1643 | |||
1644 | //trigger parcel changed in the state engine | ||
1645 | mCurrentRegionName.append("kick in"); | ||
1646 | |||
1647 | |||
1648 | } | ||
1649 | else | ||
1650 | { | ||
1651 | LL_WARNS("Voice") << exe_path << " not found." << LL_ENDL; | ||
1652 | mAccountActive = false; | ||
1653 | setState(stateDisableCleanup); | ||
1654 | } | ||
1655 | |||
1656 | // we are done, re-allow ProvisionVoiceAccountRequest | ||
1657 | mVAPRequested = false; | ||
1658 | } | ||
1659 | |||
1660 | |||
1435 | void LLVoiceClient::idle(void* user_data) | 1661 | void LLVoiceClient::idle(void* user_data) |
1436 | { | 1662 | { |
1437 | LLVoiceClient* self = (LLVoiceClient*)user_data; | 1663 | LLVoiceClient* self = (LLVoiceClient*)user_data; |
@@ -1537,11 +1763,20 @@ void LLVoiceClient::start() | |||
1537 | 1763 | ||
1538 | void LLVoiceClient::stateMachine() | 1764 | void LLVoiceClient::stateMachine() |
1539 | { | 1765 | { |
1766 | if( stateJail == getState()) | ||
1767 | { | ||
1768 | return; | ||
1769 | } | ||
1770 | |||
1771 | if(gSavedSettings.getBOOL("CmdLineDisableVoice")) | ||
1772 | { | ||
1773 | // Voice is locked out, we must not launch the vivox daemon. | ||
1774 | setState(stateJail); | ||
1775 | } | ||
1540 | 1776 | ||
1541 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) | 1777 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) |
1542 | setVoiceEnabled(!gDisconnected | 1778 | setVoiceEnabled(!gDisconnected |
1543 | && gSavedSettings.getBOOL("EnableVoiceChat") | 1779 | && gSavedSettings.getBOOL("EnableVoiceChat") ); |
1544 | && !gSavedSettings.getBOOL("CmdLineDisableVoice") ); | ||
1545 | 1780 | ||
1546 | if(mVoiceEnabled) | 1781 | if(mVoiceEnabled) |
1547 | { | 1782 | { |
@@ -1560,12 +1795,8 @@ void LLVoiceClient::stateMachine() | |||
1560 | { | 1795 | { |
1561 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. | 1796 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. |
1562 | LL_WARNS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; | 1797 | LL_WARNS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; |
1563 | killGateway(); | ||
1564 | } | 1798 | } |
1565 | 1799 | ||
1566 | logout(); | ||
1567 | connectorShutdown(); | ||
1568 | |||
1569 | setState(stateDisableCleanup); | 1800 | setState(stateDisableCleanup); |
1570 | } | 1801 | } |
1571 | } | 1802 | } |
@@ -1580,42 +1811,23 @@ void LLVoiceClient::stateMachine() | |||
1580 | { | 1811 | { |
1581 | S32 parcelLocalID = parcel->getLocalID(); | 1812 | S32 parcelLocalID = parcel->getLocalID(); |
1582 | std::string regionName = region->getName(); | 1813 | std::string regionName = region->getName(); |
1583 | std::string capURI = region->getCapability("ParcelVoiceInfoRequest"); | 1814 | |
1584 | |||
1585 | // LL_DEBUGS("Voice") << "Region name = \"" << regionName << "\", parcel local ID = " << parcelLocalID << ", cap URI = \"" << capURI << "\"" << LL_ENDL; | ||
1586 | 1815 | ||
1587 | // The region name starts out empty and gets filled in later. | 1816 | // The region name starts out empty and gets filled in later. |
1588 | // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. | 1817 | // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. |
1589 | // If either is empty, wait for the next time around. | 1818 | // If either is empty, wait for the next time around. |
1590 | if(!regionName.empty()) | 1819 | if(/*getState() >= stateNoChannel &&*/ !regionName.empty()) |
1591 | { | 1820 | { |
1592 | if(!capURI.empty()) | 1821 | |
1593 | { | 1822 | if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName)) |
1594 | if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName)) | ||
1595 | { | ||
1596 | // We have changed parcels. Initiate a parcel channel lookup. | ||
1597 | mCurrentParcelLocalID = parcelLocalID; | ||
1598 | mCurrentRegionName = regionName; | ||
1599 | |||
1600 | parcelChanged(); | ||
1601 | } | ||
1602 | } | ||
1603 | else | ||
1604 | { | 1823 | { |
1605 | static int count = 0; | 1824 | // We have changed parcels. Initiate a parcel channel lookup. |
1606 | static int count2 = 0; | 1825 | mCurrentParcelLocalID = parcelLocalID; |
1607 | static int num = 1; | 1826 | mCurrentRegionName = regionName; |
1608 | ++count; | 1827 | |
1609 | if (count % num == 0) | 1828 | parcelChanged(); |
1610 | { | ||
1611 | LL_DEBUGS("Voice") << "region doesn't have ParcelVoiceInfoRequest capability. This is normal for a short time after teleporting, but bad if it persists for very long (" << count << ")." << LL_ENDL; | ||
1612 | if (num < 1000 && ++count2 == 10) | ||
1613 | { | ||
1614 | num *= 10; | ||
1615 | count2 = 0; | ||
1616 | } | ||
1617 | } | ||
1618 | } | 1829 | } |
1830 | |||
1619 | } | 1831 | } |
1620 | } | 1832 | } |
1621 | } | 1833 | } |
@@ -1624,22 +1836,34 @@ void LLVoiceClient::stateMachine() | |||
1624 | { | 1836 | { |
1625 | //MARK: stateDisableCleanup | 1837 | //MARK: stateDisableCleanup |
1626 | case stateDisableCleanup: | 1838 | case stateDisableCleanup: |
1627 | // Clean up and reset everything. | 1839 | // Clean up and reset everything. |
1840 | |||
1841 | mVAPCapResponseID.setNull(); | ||
1842 | mPIRCapResponseID.setNull(); | ||
1843 | |||
1844 | if(isGatewayRunning()) | ||
1845 | { | ||
1846 | killGateway(); | ||
1847 | } | ||
1848 | logoutSendMessage(); | ||
1849 | mConnected = false; | ||
1850 | |||
1851 | |||
1628 | closeSocket(); | 1852 | closeSocket(); |
1629 | deleteAllSessions(); | 1853 | deleteAllSessions(); |
1630 | deleteAllBuddies(); | 1854 | deleteAllBuddies(); |
1631 | 1855 | ||
1632 | mConnectorHandle.clear(); | 1856 | mConnectorHandle.clear(); |
1633 | mAccountHandle.clear(); | 1857 | mAccountHandle.clear(); |
1634 | mAccountPassword.clear(); | 1858 | mAccountPassword.clear(); |
1635 | mVoiceAccountServerURI.clear(); | 1859 | mVoiceAccountServerURI.clear(); |
1636 | 1860 | mVAPRequested = false; | |
1637 | setState(stateDisabled); | 1861 | setState(stateDisabled); |
1638 | break; | 1862 | break; |
1639 | 1863 | ||
1640 | //MARK: stateDisabled | 1864 | //MARK: stateDisabled |
1641 | case stateDisabled: | 1865 | case stateDisabled: |
1642 | if(mTuningMode || (mVoiceEnabled && !mAccountName.empty())) | 1866 | if(mTuningMode || (mVoiceEnabled && mAccountActive && !mAccountName.empty())) |
1643 | { | 1867 | { |
1644 | setState(stateStart); | 1868 | setState(stateStart); |
1645 | } | 1869 | } |
@@ -1647,165 +1871,26 @@ void LLVoiceClient::stateMachine() | |||
1647 | 1871 | ||
1648 | //MARK: stateStart | 1872 | //MARK: stateStart |
1649 | case stateStart: | 1873 | case stateStart: |
1650 | if(gSavedSettings.getBOOL("CmdLineDisableVoice")) | 1874 | { |
1875 | bool have_region = (NULL != gAgent.getRegion() ); | ||
1876 | if(mVoiceEnabled && !mVAPRequested && !mAccountName.empty() && have_region) | ||
1651 | { | 1877 | { |
1652 | // Voice is locked out, we must not launch the vivox daemon. | 1878 | mVAPRequested = true; |
1653 | setState(stateJail); | 1879 | requestVoiceAccountProvision(); |
1654 | } | 1880 | } |
1655 | else if(!isGatewayRunning()) | 1881 | } break; |
1656 | { | ||
1657 | if(true) | ||
1658 | { | ||
1659 | // Launch the voice daemon | ||
1660 | |||
1661 | // *FIX:Mani - Using the executable dir instead | ||
1662 | // of mAppRODataDir, the working directory from which the app | ||
1663 | // is launched. | ||
1664 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | ||
1665 | std::string exe_path = gDirUtilp->getExecutableDir(); | ||
1666 | exe_path += gDirUtilp->getDirDelimiter(); | ||
1667 | #if LL_DARWIN | ||
1668 | exe_path += "../Resources/"; | ||
1669 | #endif | ||
1670 | exe_path += gSavedSettings.getString("VoiceModule"); | ||
1671 | #if LL_WINDOWS | ||
1672 | exe_path += ".exe"; | ||
1673 | #endif | ||
1674 | // See if the vivox executable exists | ||
1675 | llstat s; | ||
1676 | if(!LLFile::stat(exe_path, &s)) | ||
1677 | { | ||
1678 | // vivox executable exists. Build the command line and launch the daemon. | ||
1679 | // SLIM SDK: these arguments are no longer necessary. | ||
1680 | // std::string args = " -p tcp -h -c"; | ||
1681 | std::string args; | ||
1682 | std::string cmd; | ||
1683 | std::string loglevel = gSavedSettings.getString("VivoxDebugLevel"); | ||
1684 | |||
1685 | if(loglevel.empty()) | ||
1686 | { | ||
1687 | loglevel = "-1"; // turn logging off completely | ||
1688 | } | ||
1689 | |||
1690 | args += " -ll "; | ||
1691 | args += loglevel; | ||
1692 | |||
1693 | LL_DEBUGS("Voice") << "Args for SLVoice: " << args << LL_ENDL; | ||
1694 | |||
1695 | #if LL_WINDOWS | ||
1696 | PROCESS_INFORMATION pinfo; | ||
1697 | STARTUPINFOA sinfo; | ||
1698 | memset(&sinfo, 0, sizeof(sinfo)); | ||
1699 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | ||
1700 | cmd = gSavedSettings.getString("VoiceModule"); | ||
1701 | cmd += ".exe"; | ||
1702 | cmd += args; | ||
1703 | |||
1704 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | ||
1705 | char *args2 = new char[args.size() + 1]; | ||
1706 | strcpy(args2, args.c_str()); | ||
1707 | |||
1708 | if(!CreateProcessA(exe_path.c_str(), args2, NULL, NULL, FALSE, 0, NULL, exe_dir.c_str(), &sinfo, &pinfo)) | ||
1709 | { | ||
1710 | // DWORD dwErr = GetLastError(); | ||
1711 | } | ||
1712 | else | ||
1713 | { | ||
1714 | // foo = pinfo.dwProcessId; // get your pid here if you want to use it later on | ||
1715 | // CloseHandle(pinfo.hProcess); // stops leaks - nothing else | ||
1716 | sGatewayHandle = pinfo.hProcess; | ||
1717 | CloseHandle(pinfo.hThread); // stops leaks - nothing else | ||
1718 | } | ||
1719 | |||
1720 | delete[] args2; | ||
1721 | #else // LL_WINDOWS | ||
1722 | // This should be the same for mac and linux | ||
1723 | { | ||
1724 | std::vector<std::string> arglist; | ||
1725 | arglist.push_back(exe_path); | ||
1726 | |||
1727 | // Split the argument string into separate strings for each argument | ||
1728 | typedef boost::tokenizer<boost::char_separator<char> > tokenizer; | ||
1729 | boost::char_separator<char> sep(" "); | ||
1730 | tokenizer tokens(args, sep); | ||
1731 | tokenizer::iterator token_iter; | ||
1732 | |||
1733 | for(token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) | ||
1734 | { | ||
1735 | arglist.push_back(*token_iter); | ||
1736 | } | ||
1737 | |||
1738 | // create an argv vector for the child process | ||
1739 | char **fakeargv = new char*[arglist.size() + 1]; | ||
1740 | int i; | ||
1741 | for(i=0; i < arglist.size(); i++) | ||
1742 | fakeargv[i] = const_cast<char*>(arglist[i].c_str()); | ||
1743 | |||
1744 | fakeargv[i] = NULL; | ||
1745 | |||
1746 | fflush(NULL); // flush all buffers before the child inherits them | ||
1747 | pid_t id = vfork(); | ||
1748 | if(id == 0) | ||
1749 | { | ||
1750 | // child | ||
1751 | execv(exe_path.c_str(), fakeargv); | ||
1752 | |||
1753 | // If we reach this point, the exec failed. | ||
1754 | // Use _exit() instead of exit() per the vfork man page. | ||
1755 | _exit(0); | ||
1756 | } | ||
1757 | |||
1758 | // parent | ||
1759 | delete[] fakeargv; | ||
1760 | sGatewayPID = id; | ||
1761 | } | ||
1762 | #endif // LL_WINDOWS | ||
1763 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost").c_str(), gSavedSettings.getU32("VoicePort")); | ||
1764 | } | ||
1765 | else | ||
1766 | { | ||
1767 | LL_WARNS("Voice") << exe_path << " not found." << LL_ENDL; | ||
1768 | mVoiceEnabled = false; | ||
1769 | } | ||
1770 | } | ||
1771 | else | ||
1772 | { | ||
1773 | // SLIM SDK: port changed from 44124 to 44125. | ||
1774 | // We can connect to a client gateway running on another host. This is useful for testing. | ||
1775 | // To do this, launch the gateway on a nearby host like this: | ||
1776 | // vivox-gw.exe -p tcp -i 0.0.0.0:44125 | ||
1777 | // and put that host's IP address here. | ||
1778 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost"), gSavedSettings.getU32("VoicePort")); | ||
1779 | } | ||
1780 | |||
1781 | mUpdateTimer.start(); | ||
1782 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | ||
1783 | |||
1784 | setState(stateDaemonLaunched); | ||
1785 | |||
1786 | // Dirty the states we'll need to sync with the daemon when it comes up. | ||
1787 | mPTTDirty = true; | ||
1788 | mMicVolumeDirty = true; | ||
1789 | mSpeakerVolumeDirty = true; | ||
1790 | mSpeakerMuteDirty = true; | ||
1791 | // These only need to be set if they're not default (i.e. empty string). | ||
1792 | mCaptureDeviceDirty = !mCaptureDevice.empty(); | ||
1793 | mRenderDeviceDirty = !mRenderDevice.empty(); | ||
1794 | |||
1795 | mMainSessionGroupHandle.clear(); | ||
1796 | } | ||
1797 | break; | ||
1798 | 1882 | ||
1799 | //MARK: stateDaemonLaunched | 1883 | //MARK: stateDaemonLaunched |
1800 | case stateDaemonLaunched: | 1884 | case stateDaemonLaunched: |
1801 | if(mUpdateTimer.hasExpired()) | 1885 | if(mUpdateTimer.hasExpired()) |
1802 | { | 1886 | { |
1803 | LL_DEBUGS("Voice") << "Connecting to vivox daemon" << LL_ENDL; | 1887 | |
1804 | |||
1805 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | 1888 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); |
1806 | 1889 | ||
1807 | if(!mSocket) | 1890 | if(!mSocket) |
1808 | { | 1891 | { |
1892 | LL_DEBUGS("VoiceDaemon") << "Connecting to voice daemon. Protocol: " | ||
1893 | << mDaemonScheme << LL_ENDL; | ||
1809 | mSocket = LLSocket::create(LLSocket::STREAM_TCP); | 1894 | mSocket = LLSocket::create(LLSocket::STREAM_TCP); |
1810 | } | 1895 | } |
1811 | 1896 | ||
@@ -1817,6 +1902,7 @@ void LLVoiceClient::stateMachine() | |||
1817 | else | 1902 | else |
1818 | { | 1903 | { |
1819 | // If the connect failed, the socket may have been put into a bad state. Delete it. | 1904 | // If the connect failed, the socket may have been put into a bad state. Delete it. |
1905 | LL_DEBUGS("VoiceDaemon") << "voice daemon not ready yet, retrying" << LL_ENDL; | ||
1820 | closeSocket(); | 1906 | closeSocket(); |
1821 | } | 1907 | } |
1822 | } | 1908 | } |
@@ -1871,24 +1957,16 @@ void LLVoiceClient::stateMachine() | |||
1871 | } | 1957 | } |
1872 | else if(!mAccountName.empty() && mVoiceEnabled) | 1958 | else if(!mAccountName.empty() && mVoiceEnabled) |
1873 | { | 1959 | { |
1874 | LLViewerRegion *region = gAgent.getRegion(); | 1960 | if ( mAccountPassword.empty() ) |
1875 | |||
1876 | if(region) | ||
1877 | { | 1961 | { |
1878 | if ( region->getCapability("ProvisionVoiceAccountRequest") != "" ) | 1962 | requestVoiceAccountProvision(); |
1879 | { | 1963 | } |
1880 | if ( mAccountPassword.empty() ) | 1964 | else |
1881 | { | 1965 | { |
1882 | requestVoiceAccountProvision(); | 1966 | setState(stateConnectorStart); |
1883 | } | ||
1884 | setState(stateConnectorStart); | ||
1885 | } | ||
1886 | else | ||
1887 | { | ||
1888 | LL_DEBUGS("Voice") << "region doesn't have ProvisionVoiceAccountRequest capability!" << LL_ENDL; | ||
1889 | } | ||
1890 | } | 1967 | } |
1891 | } | 1968 | } |
1969 | |||
1892 | break; | 1970 | break; |
1893 | 1971 | ||
1894 | //MARK: stateMicTuningStart | 1972 | //MARK: stateMicTuningStart |
@@ -2025,7 +2103,8 @@ void LLVoiceClient::stateMachine() | |||
2025 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) | 2103 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) |
2026 | { | 2104 | { |
2027 | LL_WARNS("Voice") << "too many login retries, giving up." << LL_ENDL; | 2105 | LL_WARNS("Voice") << "too many login retries, giving up." << LL_ENDL; |
2028 | setState(stateLoginFailed); | 2106 | mAccountActive = false; |
2107 | setState(stateDisableCleanup); | ||
2029 | } | 2108 | } |
2030 | else | 2109 | else |
2031 | { | 2110 | { |
@@ -2569,7 +2648,7 @@ void LLVoiceClient::sessionGroupCreateSendMessage() | |||
2569 | 2648 | ||
2570 | void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAudio, bool startText) | 2649 | void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAudio, bool startText) |
2571 | { | 2650 | { |
2572 | LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL; | 2651 | LL_DEBUGS("VoiceSession") << "requesting create: " << session->mSIPURI << LL_ENDL; |
2573 | 2652 | ||
2574 | session->mCreateInProgress = true; | 2653 | session->mCreateInProgress = true; |
2575 | if(startAudio) | 2654 | if(startAudio) |
@@ -2605,7 +2684,7 @@ void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAu | |||
2605 | 2684 | ||
2606 | void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio, bool startText) | 2685 | void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio, bool startText) |
2607 | { | 2686 | { |
2608 | LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL; | 2687 | LL_DEBUGS("VoiceSession") << "requesting create: " << session->mSIPURI << LL_ENDL; |
2609 | 2688 | ||
2610 | session->mCreateInProgress = true; | 2689 | session->mCreateInProgress = true; |
2611 | if(startAudio) | 2690 | if(startAudio) |
@@ -2642,7 +2721,7 @@ void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, boo | |||
2642 | 2721 | ||
2643 | void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) | 2722 | void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) |
2644 | { | 2723 | { |
2645 | LL_DEBUGS("Voice") << "connecting audio to session handle: " << session->mHandle << LL_ENDL; | 2724 | LL_DEBUGS("VoiceSession") << "connecting audio to session handle: " << session->mHandle << LL_ENDL; |
2646 | 2725 | ||
2647 | session->mMediaConnectInProgress = true; | 2726 | session->mMediaConnectInProgress = true; |
2648 | 2727 | ||
@@ -2660,7 +2739,7 @@ void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) | |||
2660 | 2739 | ||
2661 | void LLVoiceClient::sessionTextConnectSendMessage(sessionState *session) | 2740 | void LLVoiceClient::sessionTextConnectSendMessage(sessionState *session) |
2662 | { | 2741 | { |
2663 | LL_DEBUGS("Voice") << "connecting text to session handle: " << session->mHandle << LL_ENDL; | 2742 | LL_DEBUGS("VoiceSession") << "connecting text to session handle: " << session->mHandle << LL_ENDL; |
2664 | 2743 | ||
2665 | std::ostringstream stream; | 2744 | std::ostringstream stream; |
2666 | 2745 | ||
@@ -2689,7 +2768,7 @@ void LLVoiceClient::leaveAudioSession() | |||
2689 | { | 2768 | { |
2690 | if(mAudioSession) | 2769 | if(mAudioSession) |
2691 | { | 2770 | { |
2692 | LL_DEBUGS("Voice") << "leaving session: " << mAudioSession->mSIPURI << LL_ENDL; | 2771 | LL_DEBUGS("VoiceSession") << "leaving session: " << mAudioSession->mSIPURI << LL_ENDL; |
2693 | 2772 | ||
2694 | switch(getState()) | 2773 | switch(getState()) |
2695 | { | 2774 | { |
@@ -2724,7 +2803,7 @@ void LLVoiceClient::leaveAudioSession() | |||
2724 | } | 2803 | } |
2725 | else | 2804 | else |
2726 | { | 2805 | { |
2727 | LL_WARNS("Voice") << "called with no session handle" << LL_ENDL; | 2806 | LL_WARNS("VoiceSession") << "called with no session handle" << LL_ENDL; |
2728 | setState(stateSessionTerminated); | 2807 | setState(stateSessionTerminated); |
2729 | } | 2808 | } |
2730 | break; | 2809 | break; |
@@ -2734,13 +2813,13 @@ void LLVoiceClient::leaveAudioSession() | |||
2734 | break; | 2813 | break; |
2735 | 2814 | ||
2736 | default: | 2815 | default: |
2737 | LL_WARNS("Voice") << "called from unknown state" << LL_ENDL; | 2816 | LL_WARNS("VoiceSession") << "called from unknown state" << LL_ENDL; |
2738 | break; | 2817 | break; |
2739 | } | 2818 | } |
2740 | } | 2819 | } |
2741 | else | 2820 | else |
2742 | { | 2821 | { |
2743 | LL_WARNS("Voice") << "called with no active session" << LL_ENDL; | 2822 | LL_WARNS("VoiceSession") << "called with no active session" << LL_ENDL; |
2744 | setState(stateSessionTerminated); | 2823 | setState(stateSessionTerminated); |
2745 | } | 2824 | } |
2746 | } | 2825 | } |
@@ -2749,7 +2828,7 @@ void LLVoiceClient::sessionTerminateSendMessage(sessionState *session) | |||
2749 | { | 2828 | { |
2750 | std::ostringstream stream; | 2829 | std::ostringstream stream; |
2751 | 2830 | ||
2752 | LL_DEBUGS("Voice") << "Sending Session.Terminate with handle " << session->mHandle << LL_ENDL; | 2831 | LL_DEBUGS("VoiceSession") << "Sending Session.Terminate with handle " << session->mHandle << LL_ENDL; |
2753 | stream | 2832 | stream |
2754 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">" | 2833 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">" |
2755 | << "<SessionHandle>" << session->mHandle << "</SessionHandle>" | 2834 | << "<SessionHandle>" << session->mHandle << "</SessionHandle>" |
@@ -2762,7 +2841,7 @@ void LLVoiceClient::sessionGroupTerminateSendMessage(sessionState *session) | |||
2762 | { | 2841 | { |
2763 | std::ostringstream stream; | 2842 | std::ostringstream stream; |
2764 | 2843 | ||
2765 | LL_DEBUGS("Voice") << "Sending SessionGroup.Terminate with handle " << session->mGroupHandle << LL_ENDL; | 2844 | LL_DEBUGS("VoiceSession") << "Sending SessionGroup.Terminate with handle " << session->mGroupHandle << LL_ENDL; |
2766 | stream | 2845 | stream |
2767 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.Terminate.1\">" | 2846 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.Terminate.1\">" |
2768 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2847 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2775,7 +2854,7 @@ void LLVoiceClient::sessionMediaDisconnectSendMessage(sessionState *session) | |||
2775 | { | 2854 | { |
2776 | std::ostringstream stream; | 2855 | std::ostringstream stream; |
2777 | 2856 | ||
2778 | LL_DEBUGS("Voice") << "Sending Session.MediaDisconnect with handle " << session->mHandle << LL_ENDL; | 2857 | LL_DEBUGS("VoiceSession") << "Sending Session.MediaDisconnect with handle " << session->mHandle << LL_ENDL; |
2779 | stream | 2858 | stream |
2780 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.MediaDisconnect.1\">" | 2859 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.MediaDisconnect.1\">" |
2781 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2860 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2791,7 +2870,7 @@ void LLVoiceClient::sessionTextDisconnectSendMessage(sessionState *session) | |||
2791 | { | 2870 | { |
2792 | std::ostringstream stream; | 2871 | std::ostringstream stream; |
2793 | 2872 | ||
2794 | LL_DEBUGS("Voice") << "Sending Session.TextDisconnect with handle " << session->mHandle << LL_ENDL; | 2873 | LL_DEBUGS("VoiceSession") << "Sending Session.TextDisconnect with handle " << session->mHandle << LL_ENDL; |
2795 | stream | 2874 | stream |
2796 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.TextDisconnect.1\">" | 2875 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.TextDisconnect.1\">" |
2797 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2876 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2823,13 +2902,13 @@ void LLVoiceClient::getRenderDevicesSendMessage() | |||
2823 | 2902 | ||
2824 | void LLVoiceClient::clearCaptureDevices() | 2903 | void LLVoiceClient::clearCaptureDevices() |
2825 | { | 2904 | { |
2826 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 2905 | LL_DEBUGS("VoiceDevice") << "called" << LL_ENDL; |
2827 | mCaptureDevices.clear(); | 2906 | mCaptureDevices.clear(); |
2828 | } | 2907 | } |
2829 | 2908 | ||
2830 | void LLVoiceClient::addCaptureDevice(const std::string& name) | 2909 | void LLVoiceClient::addCaptureDevice(const std::string& name) |
2831 | { | 2910 | { |
2832 | LL_DEBUGS("Voice") << name << LL_ENDL; | 2911 | LL_DEBUGS("VoiceDevice") << name << LL_ENDL; |
2833 | 2912 | ||
2834 | mCaptureDevices.push_back(name); | 2913 | mCaptureDevices.push_back(name); |
2835 | } | 2914 | } |
@@ -2861,13 +2940,13 @@ void LLVoiceClient::setCaptureDevice(const std::string& name) | |||
2861 | 2940 | ||
2862 | void LLVoiceClient::clearRenderDevices() | 2941 | void LLVoiceClient::clearRenderDevices() |
2863 | { | 2942 | { |
2864 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 2943 | LL_DEBUGS("VoiceDevice") << "called" << LL_ENDL; |
2865 | mRenderDevices.clear(); | 2944 | mRenderDevices.clear(); |
2866 | } | 2945 | } |
2867 | 2946 | ||
2868 | void LLVoiceClient::addRenderDevice(const std::string& name) | 2947 | void LLVoiceClient::addRenderDevice(const std::string& name) |
2869 | { | 2948 | { |
2870 | LL_DEBUGS("Voice") << name << LL_ENDL; | 2949 | LL_DEBUGS("VoiceDevice") << name << LL_ENDL; |
2871 | mRenderDevices.push_back(name); | 2950 | mRenderDevices.push_back(name); |
2872 | } | 2951 | } |
2873 | 2952 | ||
@@ -2951,7 +3030,7 @@ void LLVoiceClient::tuningRenderStopSendMessage() | |||
2951 | 3030 | ||
2952 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | 3031 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) |
2953 | { | 3032 | { |
2954 | LL_DEBUGS("Voice") << "sending CaptureAudioStart" << LL_ENDL; | 3033 | LL_DEBUGS("VoiceDevice") << "sending CaptureAudioStart" << LL_ENDL; |
2955 | 3034 | ||
2956 | std::ostringstream stream; | 3035 | std::ostringstream stream; |
2957 | stream | 3036 | stream |
@@ -2964,7 +3043,7 @@ void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | |||
2964 | 3043 | ||
2965 | void LLVoiceClient::tuningCaptureStopSendMessage() | 3044 | void LLVoiceClient::tuningCaptureStopSendMessage() |
2966 | { | 3045 | { |
2967 | LL_DEBUGS("Voice") << "sending CaptureAudioStop" << LL_ENDL; | 3046 | LL_DEBUGS("VoiceDevice") << "sending CaptureAudioStop" << LL_ENDL; |
2968 | 3047 | ||
2969 | std::ostringstream stream; | 3048 | std::ostringstream stream; |
2970 | stream | 3049 | stream |
@@ -3038,12 +3117,8 @@ void LLVoiceClient::daemonDied() | |||
3038 | 3117 | ||
3039 | void LLVoiceClient::giveUp() | 3118 | void LLVoiceClient::giveUp() |
3040 | { | 3119 | { |
3041 | // All has failed. Clean up and stop trying. | 3120 | mAccountActive = false; |
3042 | closeSocket(); | 3121 | setState(stateDisableCleanup); |
3043 | deleteAllSessions(); | ||
3044 | deleteAllBuddies(); | ||
3045 | |||
3046 | setState(stateJail); | ||
3047 | } | 3122 | } |
3048 | 3123 | ||
3049 | static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel) | 3124 | static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel) |
@@ -3378,7 +3453,7 @@ void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) | |||
3378 | { | 3453 | { |
3379 | if(mCaptureDeviceDirty) | 3454 | if(mCaptureDeviceDirty) |
3380 | { | 3455 | { |
3381 | LL_DEBUGS("Voice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; | 3456 | LL_DEBUGS("VoiceDevice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; |
3382 | 3457 | ||
3383 | stream | 3458 | stream |
3384 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" | 3459 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" |
@@ -4099,29 +4174,29 @@ void LLVoiceClient::reapSession(sessionState *session) | |||
4099 | { | 4174 | { |
4100 | if(!session->mHandle.empty()) | 4175 | if(!session->mHandle.empty()) |
4101 | { | 4176 | { |
4102 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (non-null session handle)" << LL_ENDL; | 4177 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (non-null session handle)" << LL_ENDL; |
4103 | } | 4178 | } |
4104 | else if(session->mCreateInProgress) | 4179 | else if(session->mCreateInProgress) |
4105 | { | 4180 | { |
4106 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (create in progress)" << LL_ENDL; | 4181 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (create in progress)" << LL_ENDL; |
4107 | } | 4182 | } |
4108 | else if(session->mMediaConnectInProgress) | 4183 | else if(session->mMediaConnectInProgress) |
4109 | { | 4184 | { |
4110 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (connect in progress)" << LL_ENDL; | 4185 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (connect in progress)" << LL_ENDL; |
4111 | } | 4186 | } |
4112 | else if(session == mAudioSession) | 4187 | else if(session == mAudioSession) |
4113 | { | 4188 | { |
4114 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the current session)" << LL_ENDL; | 4189 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (it's the current session)" << LL_ENDL; |
4115 | } | 4190 | } |
4116 | else if(session == mNextAudioSession) | 4191 | else if(session == mNextAudioSession) |
4117 | { | 4192 | { |
4118 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the next session)" << LL_ENDL; | 4193 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (it's the next session)" << LL_ENDL; |
4119 | } | 4194 | } |
4120 | else | 4195 | else |
4121 | { | 4196 | { |
4122 | // TODO: Question: Should we check for queued text messages here? | 4197 | // TODO: Question: Should we check for queued text messages here? |
4123 | // We don't have a reason to keep tracking this session, so just delete it. | 4198 | // We don't have a reason to keep tracking this session, so just delete it. |
4124 | LL_DEBUGS("Voice") << "deleting session " << session->mSIPURI << LL_ENDL; | 4199 | LL_DEBUGS("VoiceSession") << "deleting session " << session->mSIPURI << LL_ENDL; |
4125 | deleteSession(session); | 4200 | deleteSession(session); |
4126 | session = NULL; | 4201 | session = NULL; |
4127 | } | 4202 | } |
@@ -4179,17 +4254,17 @@ void LLVoiceClient::leftAudioSession( | |||
4179 | case stateJoinSessionFailed: | 4254 | case stateJoinSessionFailed: |
4180 | case stateJoinSessionFailedWaiting: | 4255 | case stateJoinSessionFailedWaiting: |
4181 | // normal transition | 4256 | // normal transition |
4182 | LL_DEBUGS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; | 4257 | LL_DEBUGS("VoiceSession") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; |
4183 | setState(stateSessionTerminated); | 4258 | setState(stateSessionTerminated); |
4184 | break; | 4259 | break; |
4185 | 4260 | ||
4186 | case stateSessionTerminated: | 4261 | case stateSessionTerminated: |
4187 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. | 4262 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. |
4188 | LL_WARNS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; | 4263 | LL_WARNS("VoiceSession") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; |
4189 | break; | 4264 | break; |
4190 | 4265 | ||
4191 | default: | 4266 | default: |
4192 | LL_WARNS("Voice") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL; | 4267 | LL_WARNS("VoiceSession") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL; |
4193 | setState(stateSessionTerminated); | 4268 | setState(stateSessionTerminated); |
4194 | break; | 4269 | break; |
4195 | } | 4270 | } |
@@ -4249,7 +4324,7 @@ void LLVoiceClient::mediaStreamUpdatedEvent( | |||
4249 | { | 4324 | { |
4250 | sessionState *session = findSession(sessionHandle); | 4325 | sessionState *session = findSession(sessionHandle); |
4251 | 4326 | ||
4252 | LL_DEBUGS("Voice") << "session " << sessionHandle << ", status code " << statusCode << ", string \"" << statusString << "\"" << LL_ENDL; | 4327 | LL_DEBUGS("VoiceSession") << "session " << sessionHandle << ", status code " << statusCode << ", string \"" << statusString << "\"" << LL_ENDL; |
4253 | 4328 | ||
4254 | if(session) | 4329 | if(session) |
4255 | { | 4330 | { |
@@ -4314,7 +4389,7 @@ void LLVoiceClient::mediaStreamUpdatedEvent( | |||
4314 | } | 4389 | } |
4315 | else | 4390 | else |
4316 | { | 4391 | { |
4317 | LL_WARNS("Voice") << "session " << sessionHandle << "not found"<< LL_ENDL; | 4392 | LL_WARNS("VoiceSession") << "session " << sessionHandle << "not found"<< LL_ENDL; |
4318 | } | 4393 | } |
4319 | } | 4394 | } |
4320 | 4395 | ||
@@ -4435,7 +4510,7 @@ void LLVoiceClient::participantRemovedEvent( | |||
4435 | } | 4510 | } |
4436 | else | 4511 | else |
4437 | { | 4512 | { |
4438 | LL_DEBUGS("Voice") << "unknown session " << sessionHandle << LL_ENDL; | 4513 | LL_DEBUGS("VoiceSession") << "unknown session " << sessionHandle << LL_ENDL; |
4439 | } | 4514 | } |
4440 | } | 4515 | } |
4441 | 4516 | ||
@@ -4479,7 +4554,7 @@ void LLVoiceClient::participantUpdatedEvent( | |||
4479 | } | 4554 | } |
4480 | else | 4555 | else |
4481 | { | 4556 | { |
4482 | LL_WARNS("Voice") << "unknown session " << sessionHandle << LL_ENDL; | 4557 | LL_WARNS("VoiceSession") << "unknown session " << sessionHandle << LL_ENDL; |
4483 | } | 4558 | } |
4484 | } | 4559 | } |
4485 | 4560 | ||
@@ -5058,22 +5133,34 @@ LLVoiceClient::participantState* LLVoiceClient::findParticipantByID(const LLUUID | |||
5058 | 5133 | ||
5059 | void LLVoiceClient::parcelChanged() | 5134 | void LLVoiceClient::parcelChanged() |
5060 | { | 5135 | { |
5061 | if(getState() >= stateNoChannel) | 5136 | if( (getState() >= stateNoChannel) && !inNonSpatialChannel() ) |
5062 | { | 5137 | { |
5063 | // If the user is logged in, start a channel lookup. | 5138 | // If the user is logged in, start a channel lookup, |
5064 | LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL; | 5139 | // but not if already in a private call/conference. |
5140 | mAccountActive = true; | ||
5065 | 5141 | ||
5066 | std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); | 5142 | std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); |
5067 | LLSD data; | 5143 | LL_DEBUGS("VoiceCaps") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << " cap url:" << url << LL_ENDL; |
5068 | LLHTTPClient::post( | 5144 | if(! url.empty() ) |
5069 | url, | 5145 | { |
5070 | data, | 5146 | mPIRCapResponseID.generate(); |
5071 | new LLVoiceClientCapResponder); | 5147 | LLSD data; |
5148 | LLHTTPClient::post( | ||
5149 | url, | ||
5150 | data, | ||
5151 | new LLVoiceClientCapResponder(mPIRCapResponseID)); | ||
5152 | } | ||
5153 | else | ||
5154 | { | ||
5155 | mAccountActive = false; | ||
5156 | setState(stateDisableCleanup); | ||
5157 | } | ||
5072 | } | 5158 | } |
5073 | else | 5159 | else |
5074 | { | 5160 | { |
5161 | mAccountActive = true; | ||
5075 | // The transition to stateNoChannel needs to kick this off again. | 5162 | // The transition to stateNoChannel needs to kick this off again. |
5076 | LL_WARNS("Voice") << "not logged in yet, deferring" << LL_ENDL; | 5163 | LL_DEBUGS("Voice") << "not logged in yet, deferring" << LL_ENDL; |
5077 | } | 5164 | } |
5078 | } | 5165 | } |
5079 | 5166 | ||
@@ -5086,12 +5173,40 @@ void LLVoiceClient::switchChannel( | |||
5086 | { | 5173 | { |
5087 | bool needsSwitch = false; | 5174 | bool needsSwitch = false; |
5088 | 5175 | ||
5089 | LL_DEBUGS("Voice") | 5176 | LL_DEBUGS("VoiceSession") |
5090 | << "called in state " << state2string(getState()) | 5177 | << "Switch channel called in state " << state2string(getState()) |
5091 | << " with uri \"" << uri << "\"" | 5178 | << " with uri \"" << uri << "\"" |
5092 | << (spatial?", spatial is true":", spatial is false") | 5179 | << (spatial?", spatial is true":", spatial is false") |
5093 | << LL_ENDL; | 5180 | << LL_ENDL; |
5094 | 5181 | ||
5182 | size_t new_uri_find_sip = std::string::npos; | ||
5183 | size_t old_uri_find_sip = std::string::npos; | ||
5184 | if(!uri.empty()) | ||
5185 | { | ||
5186 | new_uri_find_sip = uri.find("sip:"); | ||
5187 | } | ||
5188 | |||
5189 | if( mNextAudioSession | ||
5190 | && !( mNextAudioSession->mSIPURI.empty() ) | ||
5191 | && (mNextAudioSession->mSIPURI != uri) ) | ||
5192 | { | ||
5193 | old_uri_find_sip = mNextAudioSession->mSIPURI.find("sip:"); | ||
5194 | } | ||
5195 | else | ||
5196 | { | ||
5197 | |||
5198 | // just logged in or voice disabled land in SL, | ||
5199 | // anyway right daemon is already up | ||
5200 | old_uri_find_sip = new_uri_find_sip; | ||
5201 | } | ||
5202 | |||
5203 | if(old_uri_find_sip != new_uri_find_sip) | ||
5204 | { | ||
5205 | mAccountActive = true; | ||
5206 | setState(stateDisableCleanup); | ||
5207 | return; | ||
5208 | } | ||
5209 | |||
5095 | switch(getState()) | 5210 | switch(getState()) |
5096 | { | 5211 | { |
5097 | case stateJoinSessionFailed: | 5212 | case stateJoinSessionFailed: |
@@ -5148,7 +5263,7 @@ void LLVoiceClient::switchChannel( | |||
5148 | if(uri.empty()) | 5263 | if(uri.empty()) |
5149 | { | 5264 | { |
5150 | // Leave any channel we may be in | 5265 | // Leave any channel we may be in |
5151 | LL_DEBUGS("Voice") << "leaving channel" << LL_ENDL; | 5266 | LL_DEBUGS("VoiceSession") << "leaving channel" << LL_ENDL; |
5152 | 5267 | ||
5153 | sessionState *oldSession = mNextAudioSession; | 5268 | sessionState *oldSession = mNextAudioSession; |
5154 | mNextAudioSession = NULL; | 5269 | mNextAudioSession = NULL; |
@@ -5160,7 +5275,7 @@ void LLVoiceClient::switchChannel( | |||
5160 | } | 5275 | } |
5161 | else | 5276 | else |
5162 | { | 5277 | { |
5163 | LL_DEBUGS("Voice") << "switching to channel " << uri << LL_ENDL; | 5278 | LL_DEBUGS("VoiceSession") << "switching to channel " << uri << LL_ENDL; |
5164 | 5279 | ||
5165 | mNextAudioSession = addSession(uri); | 5280 | mNextAudioSession = addSession(uri); |
5166 | mNextAudioSession->mHash = hash; | 5281 | mNextAudioSession->mHash = hash; |
@@ -5205,8 +5320,14 @@ void LLVoiceClient::setNonSpatialChannel( | |||
5205 | 5320 | ||
5206 | void LLVoiceClient::setSpatialChannel( | 5321 | void LLVoiceClient::setSpatialChannel( |
5207 | const std::string &uri, | 5322 | const std::string &uri, |
5208 | const std::string &credentials) | 5323 | const std::string &credentials, |
5324 | const LLUUID& response_id) | ||
5209 | { | 5325 | { |
5326 | if (response_id != mPIRCapResponseID) | ||
5327 | { | ||
5328 | return; | ||
5329 | } | ||
5330 | |||
5210 | mSpatialSessionURI = uri; | 5331 | mSpatialSessionURI = uri; |
5211 | mSpatialSessionCredentials = credentials; | 5332 | mSpatialSessionCredentials = credentials; |
5212 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); | 5333 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); |
@@ -5282,7 +5403,7 @@ bool LLVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::str | |||
5282 | } | 5403 | } |
5283 | else | 5404 | else |
5284 | { | 5405 | { |
5285 | LL_DEBUGS("Voice") << "Session not found for participant ID " << participant_id << LL_ENDL; | 5406 | LL_DEBUGS("VoiceSession") << "Session not found for participant ID " << participant_id << LL_ENDL; |
5286 | } | 5407 | } |
5287 | 5408 | ||
5288 | return result; | 5409 | return result; |
@@ -5331,7 +5452,7 @@ void LLVoiceClient::endUserIMSession(const LLUUID &uuid) | |||
5331 | } | 5452 | } |
5332 | else | 5453 | else |
5333 | { | 5454 | { |
5334 | LL_DEBUGS("Voice") << "Session not found for participant ID " << uuid << LL_ENDL; | 5455 | LL_DEBUGS("VoiceSession") << "Session not found for participant ID " << uuid << LL_ENDL; |
5335 | } | 5456 | } |
5336 | } | 5457 | } |
5337 | 5458 | ||
@@ -5452,7 +5573,7 @@ void LLVoiceClient::declineInvite(std::string &sessionHandle) | |||
5452 | 5573 | ||
5453 | void LLVoiceClient::leaveNonSpatialChannel() | 5574 | void LLVoiceClient::leaveNonSpatialChannel() |
5454 | { | 5575 | { |
5455 | LL_DEBUGS("Voice") | 5576 | LL_DEBUGS("VoiceSession") |
5456 | << "called in state " << state2string(getState()) | 5577 | << "called in state " << state2string(getState()) |
5457 | << LL_ENDL; | 5578 | << LL_ENDL; |
5458 | 5579 | ||
@@ -5644,6 +5765,18 @@ bool LLVoiceClient::inSpatialChannel(void) | |||
5644 | return result; | 5765 | return result; |
5645 | } | 5766 | } |
5646 | 5767 | ||
5768 | bool LLVoiceClient::inNonSpatialChannel(void) | ||
5769 | { | ||
5770 | bool result = false; | ||
5771 | |||
5772 | if(mAudioSession) | ||
5773 | result = !(mAudioSession->mIsSpatial); | ||
5774 | if(mNextAudioSession) | ||
5775 | result |= !(mNextAudioSession->mIsSpatial); | ||
5776 | |||
5777 | return result; | ||
5778 | } | ||
5779 | |||
5647 | std::string LLVoiceClient::getAudioSessionURI() | 5780 | std::string LLVoiceClient::getAudioSessionURI() |
5648 | { | 5781 | { |
5649 | std::string result; | 5782 | std::string result; |
@@ -6397,7 +6530,7 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6397 | { | 6530 | { |
6398 | // No existing session found. | 6531 | // No existing session found. |
6399 | 6532 | ||
6400 | LL_DEBUGS("Voice") << "adding new session: handle " << handle << " URI " << uri << LL_ENDL; | 6533 | LL_DEBUGS("VoiceSession") << "adding new session: handle " << handle << " URI " << uri << LL_ENDL; |
6401 | result = new sessionState(); | 6534 | result = new sessionState(); |
6402 | result->mSIPURI = uri; | 6535 | result->mSIPURI = uri; |
6403 | result->mHandle = handle; | 6536 | result->mHandle = handle; |
@@ -6416,7 +6549,7 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6416 | if(uri != result->mSIPURI) | 6549 | if(uri != result->mSIPURI) |
6417 | { | 6550 | { |
6418 | // TODO: Should this be an internal error? | 6551 | // TODO: Should this be an internal error? |
6419 | LL_DEBUGS("Voice") << "changing uri from " << result->mSIPURI << " to " << uri << LL_ENDL; | 6552 | LL_DEBUGS("VoiceSession") << "changing uri from " << result->mSIPURI << " to " << uri << LL_ENDL; |
6420 | setSessionURI(result, uri); | 6553 | setSessionURI(result, uri); |
6421 | } | 6554 | } |
6422 | 6555 | ||
@@ -6425,17 +6558,17 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6425 | if(handle.empty()) | 6558 | if(handle.empty()) |
6426 | { | 6559 | { |
6427 | // There's at least one race condition where where addSession was clearing an existing session handle, which caused things to break. | 6560 | // There's at least one race condition where where addSession was clearing an existing session handle, which caused things to break. |
6428 | LL_DEBUGS("Voice") << "NOT clearing handle " << result->mHandle << LL_ENDL; | 6561 | LL_DEBUGS("VoiceSession") << "NOT clearing handle " << result->mHandle << LL_ENDL; |
6429 | } | 6562 | } |
6430 | else | 6563 | else |
6431 | { | 6564 | { |
6432 | // TODO: Should this be an internal error? | 6565 | // TODO: Should this be an internal error? |
6433 | LL_DEBUGS("Voice") << "changing handle from " << result->mHandle << " to " << handle << LL_ENDL; | 6566 | LL_DEBUGS("VoiceSession") << "changing handle from " << result->mHandle << " to " << handle << LL_ENDL; |
6434 | setSessionHandle(result, handle); | 6567 | setSessionHandle(result, handle); |
6435 | } | 6568 | } |
6436 | } | 6569 | } |
6437 | 6570 | ||
6438 | LL_DEBUGS("Voice") << "returning existing session: handle " << handle << " URI " << uri << LL_ENDL; | 6571 | LL_DEBUGS("VoiceSession") << "returning existing session: handle " << handle << " URI " << uri << LL_ENDL; |
6439 | } | 6572 | } |
6440 | 6573 | ||
6441 | verifySessionState(); | 6574 | verifySessionState(); |
@@ -6455,14 +6588,14 @@ void LLVoiceClient::setSessionHandle(sessionState *session, const std::string &h | |||
6455 | { | 6588 | { |
6456 | if(iter->second != session) | 6589 | if(iter->second != session) |
6457 | { | 6590 | { |
6458 | LL_ERRS("Voice") << "Internal error: session mismatch!" << LL_ENDL; | 6591 | LL_ERRS("VoiceSession") << "Internal error: session mismatch!" << LL_ENDL; |
6459 | } | 6592 | } |
6460 | 6593 | ||
6461 | mSessionsByHandle.erase(iter); | 6594 | mSessionsByHandle.erase(iter); |
6462 | } | 6595 | } |
6463 | else | 6596 | else |
6464 | { | 6597 | { |
6465 | LL_ERRS("Voice") << "Internal error: session handle not found in map!" << LL_ENDL; | 6598 | LL_ERRS("VoiceSession") << "Internal error: session handle not found in map!" << LL_ENDL; |
6466 | } | 6599 | } |
6467 | } | 6600 | } |
6468 | 6601 | ||
@@ -6494,7 +6627,7 @@ void LLVoiceClient::deleteSession(sessionState *session) | |||
6494 | { | 6627 | { |
6495 | if(iter->second != session) | 6628 | if(iter->second != session) |
6496 | { | 6629 | { |
6497 | LL_ERRS("Voice") << "Internal error: session mismatch" << LL_ENDL; | 6630 | LL_ERRS("VoiceSession") << "Internal error: session mismatch" << LL_ENDL; |
6498 | } | 6631 | } |
6499 | mSessionsByHandle.erase(iter); | 6632 | mSessionsByHandle.erase(iter); |
6500 | } | 6633 | } |
@@ -6525,7 +6658,7 @@ void LLVoiceClient::deleteSession(sessionState *session) | |||
6525 | 6658 | ||
6526 | void LLVoiceClient::deleteAllSessions() | 6659 | void LLVoiceClient::deleteAllSessions() |
6527 | { | 6660 | { |
6528 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 6661 | LL_DEBUGS("VoiceSession") << "called" << LL_ENDL; |
6529 | 6662 | ||
6530 | while(!mSessions.empty()) | 6663 | while(!mSessions.empty()) |
6531 | { | 6664 | { |
@@ -6534,20 +6667,20 @@ void LLVoiceClient::deleteAllSessions() | |||
6534 | 6667 | ||
6535 | if(!mSessionsByHandle.empty()) | 6668 | if(!mSessionsByHandle.empty()) |
6536 | { | 6669 | { |
6537 | LL_ERRS("Voice") << "Internal error: empty session map, non-empty handle map" << LL_ENDL; | 6670 | LL_ERRS("VoiceSession") << "Internal error: empty session map, non-empty handle map" << LL_ENDL; |
6538 | } | 6671 | } |
6539 | } | 6672 | } |
6540 | 6673 | ||
6541 | void LLVoiceClient::verifySessionState(void) | 6674 | void LLVoiceClient::verifySessionState(void) |
6542 | { | 6675 | { |
6543 | // This is mostly intended for debugging problems with session state management. | 6676 | // This is mostly intended for debugging problems with session state management. |
6544 | LL_DEBUGS("Voice") << "Total session count: " << mSessions.size() << " , session handle map size: " << mSessionsByHandle.size() << LL_ENDL; | 6677 | LL_DEBUGS("VoiceSession") << "Total session count: " << mSessions.size() << " , session handle map size: " << mSessionsByHandle.size() << LL_ENDL; |
6545 | 6678 | ||
6546 | for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++) | 6679 | for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++) |
6547 | { | 6680 | { |
6548 | sessionState *session = *iter; | 6681 | sessionState *session = *iter; |
6549 | 6682 | ||
6550 | LL_DEBUGS("Voice") << "session " << session << ": handle " << session->mHandle << ", URI " << session->mSIPURI << LL_ENDL; | 6683 | LL_DEBUGS("VoiceSession") << "session " << session << ": handle " << session->mHandle << ", URI " << session->mSIPURI << LL_ENDL; |
6551 | 6684 | ||
6552 | if(!session->mHandle.empty()) | 6685 | if(!session->mHandle.empty()) |
6553 | { | 6686 | { |
@@ -6555,13 +6688,13 @@ void LLVoiceClient::verifySessionState(void) | |||
6555 | sessionMap::iterator i2 = mSessionsByHandle.find(&(session->mHandle)); | 6688 | sessionMap::iterator i2 = mSessionsByHandle.find(&(session->mHandle)); |
6556 | if(i2 == mSessionsByHandle.end()) | 6689 | if(i2 == mSessionsByHandle.end()) |
6557 | { | 6690 | { |
6558 | LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " not found in session map)" << LL_ENDL; | 6691 | LL_ERRS("VoiceSession") << "internal error (handle " << session->mHandle << " not found in session map)" << LL_ENDL; |
6559 | } | 6692 | } |
6560 | else | 6693 | else |
6561 | { | 6694 | { |
6562 | if(i2->second != session) | 6695 | if(i2->second != session) |
6563 | { | 6696 | { |
6564 | LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " in session map points to another session)" << LL_ENDL; | 6697 | LL_ERRS("VoiceSession") << "internal error (handle " << session->mHandle << " in session map points to another session)" << LL_ENDL; |
6565 | } | 6698 | } |
6566 | } | 6699 | } |
6567 | } | 6700 | } |
@@ -6574,13 +6707,13 @@ void LLVoiceClient::verifySessionState(void) | |||
6574 | sessionIterator i2 = mSessions.find(session); | 6707 | sessionIterator i2 = mSessions.find(session); |
6575 | if(i2 == mSessions.end()) | 6708 | if(i2 == mSessions.end()) |
6576 | { | 6709 | { |
6577 | LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " not found in session map)" << LL_ENDL; | 6710 | LL_ERRS("VoiceSession") << "internal error (session for handle " << session->mHandle << " not found in session map)" << LL_ENDL; |
6578 | } | 6711 | } |
6579 | else | 6712 | else |
6580 | { | 6713 | { |
6581 | if(session->mHandle != (*i2)->mHandle) | 6714 | if(session->mHandle != (*i2)->mHandle) |
6582 | { | 6715 | { |
6583 | LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " points to session with different handle " << (*i2)->mHandle << ")" << LL_ENDL; | 6716 | LL_ERRS("VoiceSession") << "internal error (session for handle " << session->mHandle << " points to session with different handle " << (*i2)->mHandle << ")" << LL_ENDL; |
6584 | } | 6717 | } |
6585 | } | 6718 | } |
6586 | } | 6719 | } |
@@ -7010,6 +7143,8 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode | |||
7010 | { | 7143 | { |
7011 | LLSD body = input["body"]; | 7144 | LLSD body = input["body"]; |
7012 | 7145 | ||
7146 | LL_DEBUGS("VoiceCaps") << "ParcelVoiceInfo response: " | ||
7147 | << ll_pretty_print_sd(input) << LL_ENDL; | ||
7013 | //body has "region_name" (str), "parcel_local_id"(int), | 7148 | //body has "region_name" (str), "parcel_local_id"(int), |
7014 | //"voice_credentials" (map). | 7149 | //"voice_credentials" (map). |
7015 | 7150 | ||
@@ -7036,7 +7171,10 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode | |||
7036 | voice_credentials["channel_credentials"].asString(); | 7171 | voice_credentials["channel_credentials"].asString(); |
7037 | } | 7172 | } |
7038 | 7173 | ||
7039 | gVoiceClient->setSpatialChannel(uri, credentials); | 7174 | LLUUID response_id; |
7175 | response_id.generate(); | ||
7176 | gVoiceClient->setPIRCapResponseID(response_id); | ||
7177 | gVoiceClient->setSpatialChannel(uri, credentials, response_id); | ||
7040 | } | 7178 | } |
7041 | } | 7179 | } |
7042 | } | 7180 | } |
@@ -7050,10 +7188,13 @@ class LLViewerRequiredVoiceVersion : public LLHTTPNode | |||
7050 | const LLSD& context, | 7188 | const LLSD& context, |
7051 | const LLSD& input) const | 7189 | const LLSD& input) const |
7052 | { | 7190 | { |
7191 | |||
7053 | //You received this messsage (most likely on region cross or | 7192 | //You received this messsage (most likely on region cross or |
7054 | //teleport) | 7193 | //teleport) |
7055 | if ( input.has("body") && input["body"].has("major_version") ) | 7194 | if ( input.has("body") && input["body"].has("major_version") ) |
7056 | { | 7195 | { |
7196 | LL_DEBUGS("VoiceCaps") << "RequiredVoiceVersion response: " | ||
7197 | << ll_pretty_print_sd(input)<< LL_ENDL; | ||
7057 | int major_voice_version = | 7198 | int major_voice_version = |
7058 | input["body"]["major_version"].asInteger(); | 7199 | input["body"]["major_version"].asInteger(); |
7059 | // int minor_voice_version = | 7200 | // int minor_voice_version = |
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index 9ef3be9..fb59b4e 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h | |||
@@ -424,11 +424,15 @@ static void updatePosition(void); | |||
424 | const std::string& account_name, | 424 | const std::string& account_name, |
425 | const std::string& password, | 425 | const std::string& password, |
426 | const std::string& voice_sip_uri_hostname, | 426 | const std::string& voice_sip_uri_hostname, |
427 | const std::string& voice_account_server_uri); | 427 | const std::string& voice_account_server_uri, |
428 | const LLUUID& response_id); | ||
429 | |||
428 | void loginSendMessage(); | 430 | void loginSendMessage(); |
429 | void logout(); | 431 | void logout(); |
430 | void logoutSendMessage(); | 432 | void logoutSendMessage(); |
431 | 433 | ||
434 | void loadDaemon(const std::string& scheme); | ||
435 | |||
432 | void accountListBlockRulesSendMessage(); | 436 | void accountListBlockRulesSendMessage(); |
433 | void accountListAutoAcceptRulesSendMessage(); | 437 | void accountListAutoAcceptRulesSendMessage(); |
434 | 438 | ||
@@ -474,7 +478,8 @@ static void updatePosition(void); | |||
474 | const std::string &credentials); | 478 | const std::string &credentials); |
475 | void setSpatialChannel( | 479 | void setSpatialChannel( |
476 | const std::string &uri, | 480 | const std::string &uri, |
477 | const std::string &credentials); | 481 | const std::string &credentials, |
482 | const LLUUID& response_id); | ||
478 | // start a voice session with the specified user | 483 | // start a voice session with the specified user |
479 | void callUser(const LLUUID &uuid); | 484 | void callUser(const LLUUID &uuid); |
480 | 485 | ||
@@ -519,7 +524,7 @@ static void updatePosition(void); | |||
519 | 524 | ||
520 | void close(); | 525 | void close(); |
521 | void start(); | 526 | void start(); |
522 | 527 | void setPIRCapResponseID(const LLUUID& response_id){ mPIRCapResponseID = response_id; } | |
523 | private: | 528 | private: |
524 | 529 | ||
525 | // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages. | 530 | // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages. |
@@ -595,7 +600,13 @@ static void updatePosition(void); | |||
595 | std::string mAccountDisplayName; | 600 | std::string mAccountDisplayName; |
596 | std::string mAccountFirstName; | 601 | std::string mAccountFirstName; |
597 | std::string mAccountLastName; | 602 | std::string mAccountLastName; |
598 | 603 | ||
604 | bool mAccountActive; | ||
605 | bool mVAPRequested; | ||
606 | std::string mDaemonScheme; | ||
607 | LLUUID mVAPCapResponseID; | ||
608 | LLUUID mPIRCapResponseID; | ||
609 | |||
599 | bool mTuningMode; | 610 | bool mTuningMode; |
600 | float mTuningEnergy; | 611 | float mTuningEnergy; |
601 | std::string mTuningAudioFile; | 612 | std::string mTuningAudioFile; |
@@ -667,6 +678,7 @@ static std::string displayNameFromAvatar(LLVOAvatar *avatar); | |||
667 | static std::string nameFromsipURI(const std::string &uri); | 678 | static std::string nameFromsipURI(const std::string &uri); |
668 | 679 | ||
669 | bool inSpatialChannel(void); | 680 | bool inSpatialChannel(void); |
681 | bool inNonSpatialChannel(void); | ||
670 | std::string getAudioSessionURI(); | 682 | std::string getAudioSessionURI(); |
671 | std::string getAudioSessionHandle(); | 683 | std::string getAudioSessionHandle(); |
672 | 684 | ||
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index 4a53d4e..8d5bfb4 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp | |||
@@ -93,7 +93,6 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re | |||
93 | mRelativeXformInvTrans.setIdentity(); | 93 | mRelativeXformInvTrans.setIdentity(); |
94 | 94 | ||
95 | mLOD = MIN_LOD; | 95 | mLOD = MIN_LOD; |
96 | mSculptLevel = -2; | ||
97 | mTextureAnimp = NULL; | 96 | mTextureAnimp = NULL; |
98 | mVObjRadius = LLVector3(1,1,0.5f).length(); | 97 | mVObjRadius = LLVector3(1,1,0.5f).length(); |
99 | mNumFaces = 0; | 98 | mNumFaces = 0; |
@@ -507,9 +506,8 @@ void LLVOVolume::updateTextureVirtualSize() | |||
507 | 506 | ||
508 | if (isSculpted()) | 507 | if (isSculpted()) |
509 | { | 508 | { |
510 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | 509 | updateSculptTexture(); |
511 | LLUUID id = sculpt_params->getSculptTexture(); | 510 | |
512 | mSculptTexture = gImageList.getImage(id); | ||
513 | if (mSculptTexture.notNull()) | 511 | if (mSculptTexture.notNull()) |
514 | { | 512 | { |
515 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), | 513 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), |
@@ -532,14 +530,14 @@ void LLVOVolume::updateTextureVirtualSize() | |||
532 | } | 530 | } |
533 | } | 531 | } |
534 | 532 | ||
535 | S32 texture_discard = mSculptTexture->getCachedRawImageLevel(); //try to match the texture | 533 | S32 texture_discard = mSculptTexture->getDiscardLevel(); //try to match the texture |
536 | S32 current_discard = mSculptLevel; | 534 | S32 current_discard = getVolume() ? getVolume()->getSculptLevel() : -2; |
537 | 535 | ||
538 | if (texture_discard >= 0 && //texture has some data available | 536 | if (texture_discard >= 0 && //texture has some data available |
539 | (texture_discard < current_discard || //texture has more data than last rebuild | 537 | (texture_discard < current_discard || //texture has more data than last rebuild |
540 | current_discard < 0)) //no previous rebuild | 538 | current_discard < 0)) //no previous rebuild |
541 | { | 539 | { |
542 | markForUpdate(FALSE); | 540 | gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE); |
543 | mSculptChanged = TRUE; | 541 | mSculptChanged = TRUE; |
544 | } | 542 | } |
545 | 543 | ||
@@ -687,19 +685,17 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail | |||
687 | mVolumeImpl->onSetVolume(volume_params, detail); | 685 | mVolumeImpl->onSetVolume(volume_params, detail); |
688 | } | 686 | } |
689 | 687 | ||
688 | updateSculptTexture(); | ||
690 | if (isSculpted()) | 689 | if (isSculpted()) |
691 | { | 690 | { |
692 | mSculptTexture = gImageList.getImage(volume_params.getSculptID()); | ||
693 | if (mSculptTexture.notNull()) | 691 | if (mSculptTexture.notNull()) |
694 | { | 692 | { |
695 | sculpt(); | 693 | sculpt(); |
696 | mSculptLevel = getVolume()->getSculptLevel(); | ||
697 | mSculptSurfaceArea = getVolume()->sculptGetSurfaceArea(); | 694 | mSculptSurfaceArea = getVolume()->sculptGetSurfaceArea(); |
698 | } | 695 | } |
699 | } | 696 | } |
700 | else | 697 | else |
701 | { | 698 | { |
702 | mSculptTexture = NULL; | ||
703 | mSculptSurfaceArea = 0.0; | 699 | mSculptSurfaceArea = 0.0; |
704 | } | 700 | } |
705 | 701 | ||
@@ -708,6 +704,38 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail | |||
708 | return FALSE; | 704 | return FALSE; |
709 | } | 705 | } |
710 | 706 | ||
707 | |||
708 | void LLVOVolume::updateSculptTexture() | ||
709 | { | ||
710 | LLPointer<LLViewerImage> old_sculpt = mSculptTexture; | ||
711 | if (isSculpted()) | ||
712 | { | ||
713 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | ||
714 | LLUUID id = sculpt_params->getSculptTexture(); | ||
715 | if (id.notNull()) | ||
716 | { | ||
717 | mSculptTexture = gImageList.getImage(id); | ||
718 | } | ||
719 | } | ||
720 | else | ||
721 | { | ||
722 | mSculptTexture = NULL; | ||
723 | } | ||
724 | |||
725 | if (mSculptTexture != old_sculpt) | ||
726 | { | ||
727 | if (old_sculpt.notNull()) | ||
728 | { | ||
729 | old_sculpt->removeVolume(this); | ||
730 | } | ||
731 | if (mSculptTexture.notNull()) | ||
732 | { | ||
733 | mSculptTexture->addVolume(this); | ||
734 | } | ||
735 | } | ||
736 | } | ||
737 | |||
738 | |||
711 | // sculpt replaces generate() for sculpted surfaces | 739 | // sculpt replaces generate() for sculpted surfaces |
712 | void LLVOVolume::sculpt() | 740 | void LLVOVolume::sculpt() |
713 | { | 741 | { |
@@ -718,7 +746,7 @@ void LLVOVolume::sculpt() | |||
718 | S8 sculpt_components = 0; | 746 | S8 sculpt_components = 0; |
719 | const U8* sculpt_data = NULL; | 747 | const U8* sculpt_data = NULL; |
720 | 748 | ||
721 | S32 discard_level = mSculptTexture->getCachedRawImageLevel() ; | 749 | S32 discard_level = mSculptTexture->getDiscardLevel() ; |
722 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; | 750 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; |
723 | 751 | ||
724 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); | 752 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); |
@@ -762,7 +790,7 @@ void LLVOVolume::sculpt() | |||
762 | } | 790 | } |
763 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); | 791 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); |
764 | 792 | ||
765 | /*//notify rebuild any other VOVolumes that reference this sculpty volume | 793 | //notify rebuild any other VOVolumes that reference this sculpty volume |
766 | for (S32 i = 0; i < mSculptTexture->getNumVolumes(); ++i) | 794 | for (S32 i = 0; i < mSculptTexture->getNumVolumes(); ++i) |
767 | { | 795 | { |
768 | LLVOVolume* volume = (*(mSculptTexture->getVolumeList()))[i]; | 796 | LLVOVolume* volume = (*(mSculptTexture->getVolumeList()))[i]; |
@@ -770,7 +798,7 @@ void LLVOVolume::sculpt() | |||
770 | { | 798 | { |
771 | gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE); | 799 | gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE); |
772 | } | 800 | } |
773 | }*/ | 801 | } |
774 | } | 802 | } |
775 | } | 803 | } |
776 | 804 | ||
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index 7fba28c..2da1d7a 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h | |||
@@ -171,6 +171,7 @@ public: | |||
171 | void setTexture(const S32 face); | 171 | void setTexture(const S32 face); |
172 | S32 getIndexInTex() const {return mIndexInTex ;} | 172 | S32 getIndexInTex() const {return mIndexInTex ;} |
173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); | 173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); |
174 | void updateSculptTexture(); | ||
174 | void setIndexInTex(S32 index) { mIndexInTex = index ;} | 175 | void setIndexInTex(S32 index) { mIndexInTex = index ;} |
175 | void sculpt(); | 176 | void sculpt(); |
176 | void updateRelativeXform(); | 177 | void updateRelativeXform(); |
@@ -232,7 +233,6 @@ private: | |||
232 | LLFrameTimer mTextureUpdateTimer; | 233 | LLFrameTimer mTextureUpdateTimer; |
233 | S32 mLOD; | 234 | S32 mLOD; |
234 | BOOL mLODChanged; | 235 | BOOL mLODChanged; |
235 | S32 mSculptLevel; | ||
236 | BOOL mSculptChanged; | 236 | BOOL mSculptChanged; |
237 | LLMatrix4 mRelativeXform; | 237 | LLMatrix4 mRelativeXform; |
238 | LLMatrix3 mRelativeXformInvTrans; | 238 | LLMatrix3 mRelativeXformInvTrans; |
@@ -240,7 +240,7 @@ private: | |||
240 | F32 mVObjRadius; | 240 | F32 mVObjRadius; |
241 | LLVolumeInterface *mVolumeImpl; | 241 | LLVolumeInterface *mVolumeImpl; |
242 | LLPointer<LLViewerImage> mSculptTexture; | 242 | LLPointer<LLViewerImage> mSculptTexture; |
243 | S32 mIndexInTex; | 243 | S32 mIndexInTex; // index of this volume in the texture's volume list |
244 | 244 | ||
245 | // statics | 245 | // statics |
246 | public: | 246 | public: |
diff --git a/linden/indra/newview/primbackup.cpp b/linden/indra/newview/primbackup.cpp index 7f050a0..613000a 100644 --- a/linden/indra/newview/primbackup.cpp +++ b/linden/indra/newview/primbackup.cpp | |||
@@ -625,6 +625,8 @@ void primbackup::export_next_texture() | |||
625 | 625 | ||
626 | void primbackup::import_object(bool upload) | 626 | void primbackup::import_object(bool upload) |
627 | { | 627 | { |
628 | |||
629 | |||
628 | textures.clear(); | 630 | textures.clear(); |
629 | assetmap.clear(); | 631 | assetmap.clear(); |
630 | current_asset=LLUUID::null; | 632 | current_asset=LLUUID::null; |
@@ -641,9 +643,21 @@ void primbackup::import_object(bool upload) | |||
641 | std::string file_name = file_picker.getFirstFile().c_str(); | 643 | std::string file_name = file_picker.getFirstFile().c_str(); |
642 | folder = gDirUtilp->getDirName(file_name); | 644 | folder = gDirUtilp->getDirName(file_name); |
643 | 645 | ||
644 | llifstream import_file(file_name); | 646 | { |
645 | LLSDSerialize::fromXML(llsd, import_file); | 647 | LLSD import_llsd; |
646 | import_file.close(); | 648 | llifstream import_file(file_name); |
649 | S32 status; | ||
650 | status = LLSDSerialize::fromXML(import_llsd, import_file); | ||
651 | import_file.close(); | ||
652 | |||
653 | if (LLSDParser::PARSE_FAILURE == status) | ||
654 | { | ||
655 | llwarns << "invalid xml file." << llendl; | ||
656 | return; | ||
657 | } | ||
658 | |||
659 | llsd = import_llsd; | ||
660 | } | ||
647 | 661 | ||
648 | show(); | 662 | show(); |
649 | 663 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml index 3b66fb8..a32a1c7 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -1,54 +1,166 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Advanced" left="102" mouse_opaque="true" | 18 | height="408" label="Advanced" left="102" mouse_opaque="true" |
4 | name="advanced_panel" width="517"> | 19 | name="advanced_panel" width="517"> |
5 | <!-- Start organizing these when we get enough of 'em - MC --> | 20 | |
21 | |||
6 | <tab_container label="Page 2" bottom="0" height="450" left="0" mouse_opaque="false" | 22 | <tab_container label="Page 2" bottom="0" height="450" left="0" mouse_opaque="false" |
7 | name="tab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> | 23 | name="tab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
24 | |||
8 | 25 | ||
9 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 26 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
10 | height="408" label="Main" left="102" mouse_opaque="true" | 27 | height="408" label="Main" left="102" mouse_opaque="true" |
11 | name="main_panel" width="517"> | 28 | name="main_panel" width="517"> |
12 | <check_box bottom="-30" enabled="true" | 29 | |
30 | |||
31 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
32 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
33 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
34 | mouse_opaque="true" name="textbox" v_pad="0" width="394"> | ||
35 | User Interface: | ||
36 | </text> | ||
37 | |||
38 | <check_box bottom_delta="-25" enabled="true" | ||
13 | follows="left|top" font="SansSerifSmall" height="16" | 39 | follows="left|top" font="SansSerifSmall" height="16" |
14 | initial_value="false" label="Disable login/logout screens" left="12" | 40 | initial_value="false" label="Disable login/logout screens" left_delta="30" |
15 | mouse_opaque="true" name="disable_log_screen_check" radio_style="false" | 41 | mouse_opaque="true" name="disable_log_screen_check" radio_style="false" |
16 | width="217" /> | 42 | width="217" /> |
17 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 43 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
18 | font="SansSerifSmall" height="16" initial_value="false" | 44 | font="SansSerifSmall" height="16" initial_value="false" |
19 | label="Disable teleport screen" left="12" mouse_opaque="true" | 45 | label="Disable teleport screen" left="270" mouse_opaque="true" |
20 | name="disable_tp_screen_check" radio_style="false" width="217" /> | 46 | name="disable_tp_screen_check" radio_style="false" width="217" /> |
47 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
48 | font="SansSerifSmall" height="16" initial_value="false" | ||
49 | label="Show WindLight toolbar" left="50" mouse_opaque="true" | ||
50 | name="toggle_windlight_control" radio_style="false" width="237" | ||
51 | control_name="EnableWindlightRemote" /> | ||
52 | <check_box bottom_delta="-18" enabled="true" | ||
53 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
54 | label="Use legacy pie menus" left_delta="0" | ||
55 | mouse_opaque="true" name="legacy_pie_menu_checkbox" radio_style="false" | ||
56 | width="256" /> | ||
57 | |||
58 | |||
59 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
60 | height="1" left="55" name="border" width="380" /> | ||
61 | |||
62 | |||
63 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
64 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
65 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
66 | mouse_opaque="true" name="textbox" v_pad="0" width="394"> | ||
67 | Avatar: | ||
68 | </text> | ||
69 | |||
21 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 70 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
22 | font="SansSerifSmall" height="16" initial_value="false" | 71 | font="SansSerifSmall" height="16" initial_value="false" |
23 | label="Show client names in nametags" left="12" mouse_opaque="true" | 72 | label="Show client names in nametags" left_delta="30" mouse_opaque="true" |
24 | name="client_name_tag_check" radio_style="false" width="160" /> | 73 | name="client_name_tag_check" radio_style="false" width="160" /> |
25 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 74 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
26 | font="SansSerifSmall" height="16" initial_value="false" | 75 | font="SansSerifSmall" height="16" initial_value="false" |
27 | label="Show client names in hovertip" left_delta="0" mouse_opaque="true" | 76 | label="Show client names in hovertip" left="270" mouse_opaque="true" |
28 | name="client_name_hover_check" radio_style="false" width="160" /> | 77 | name="client_name_hover_check" radio_style="false" width="160" /> |
29 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 78 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
30 | font="SansSerifSmall" height="16" initial_value="false" | 79 | font="SansSerifSmall" height="16" initial_value="false" |
31 | label="Show your client name to others" left_delta="0" mouse_opaque="true" | 80 | label="Show your client name to others" left="50" mouse_opaque="true" |
32 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> | 81 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> |
33 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-122" | ||
34 | can_apply_immediately="true" color="0.79 0.44 0.88 1" | ||
35 | enabled="true" follows="left|top" | ||
36 | height="65" label="Imprudence" left="250" mouse_opaque="true" | ||
37 | name="client_tag_color" width="65" /> | ||
38 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 82 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
39 | font="SansSerifSmall" height="16" initial_value="false" | 83 | font="SansSerifSmall" height="16" initial_value="false" |
40 | label="Show client names with color" left_delta="0" mouse_opaque="true" | 84 | tool_tip="Toggle editing animation and standing up when entering appearance mode" |
41 | name="client_name_color_check" radio_style="false" width="160" /> | 85 | label="Animate avatar when editing appearance" left_delta="0" mouse_opaque="true" |
86 | name="appearance_anim_check" radio_style="false" width="217" /> | ||
87 | <check_box bottom_delta="-18" control_name="HeadFollowsMouse" enabled="true" | ||
88 | follows="left|top" font="SansSerifSmall" height="16" | ||
89 | label="Head follows mouse" tooltip="If your avatars head follows your mouse movements" left_delta="0" | ||
90 | mouse_opaque="true" name="head_follows_mouse_checkbox" radio_style="false" | ||
91 | width="256" /> | ||
92 | <check_box bottom_delta="-18" enabled="true" | ||
93 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
94 | initial_value="false" label="Share language with objects" left_delta="0" | ||
95 | mouse_opaque="true" name="language_is_public" | ||
96 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." | ||
97 | width="256" /> | ||
98 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
99 | font="SansSerifSmall" height="16" label="Fly/land on holding up/down" | ||
100 | left_delta="0" mouse_opaque="true" name="automatic_fly" radio_style="false" | ||
101 | width="178" /> | ||
102 | <check_box bottom_delta="-18" enabled="true" | ||
103 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
104 | label="Arrow keys always move avatar when chatting" left_delta="0" | ||
105 | mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false" | ||
106 | width="237" /> | ||
107 | |||
108 | |||
109 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
110 | height="1" left="55" name="border" width="380" /> | ||
111 | |||
112 | |||
113 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
114 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
115 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
116 | mouse_opaque="true" name="textbox" v_pad="0" width="394"> | ||
117 | Chat: | ||
118 | </text> | ||
119 | |||
120 | <check_box bottom_delta="-25" control_name="ScriptErrorsAsChat" enabled="true" | ||
121 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
122 | label="Show script errors and warnings as regular chat" left_delta="30" | ||
123 | mouse_opaque="true" name="script_errors_as_chat" radio_style="false" | ||
124 | width="275" /> | ||
125 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
126 | font="SansSerifSmall" height="16" initial_value="false" | ||
127 | label="Show timestamps with messages" left_delta="0" mouse_opaque="true" | ||
128 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
129 | <check_box bottom_delta="-18" enabled="true" | ||
130 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
131 | initial_value="false" label="Use MU* pose style chat and IM" left_delta="0" | ||
132 | mouse_opaque="true" name="allow_mupose" | ||
133 | radio_style="false" tool_tip="Use MU* pose style in chat and IM (with ':' as a synonymous to '/me ')." | ||
134 | width="256" /> | ||
135 | <check_box bottom_delta="0" enabled="true" | ||
136 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
137 | initial_value="false" label="Auto-close OOC (( )) chat" left="270" | ||
138 | mouse_opaque="true" name="auto_close_ooc" | ||
139 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." | ||
140 | width="256" /> | ||
141 | |||
142 | |||
143 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
144 | height="1" left="55" name="border" width="380" /> | ||
145 | |||
146 | |||
147 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
148 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
149 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
150 | mouse_opaque="true" name="textbox" v_pad="0" width="394"> | ||
151 | World: | ||
152 | </text> | ||
153 | |||
42 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 154 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
43 | font="SansSerifSmall" height="16" initial_value="false" | 155 | font="SansSerifSmall" height="16" initial_value="false" |
44 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" | 156 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left_delta="30" mouse_opaque="true" |
45 | name="shadows_check" radio_style="false" width="217" /> | 157 | name="shadows_check" radio_style="false" width="217" /> |
46 | <text bottom_delta="-25" left="16" height="15" width="300" | 158 | <text bottom_delta="-25" left_delta="0" height="15" width="300" |
47 | follows="top|left"> | 159 | follows="top|left"> |
48 | Allow region WindLight settings (LightShare): | 160 | Allow region WindLight settings (LightShare): |
49 | </text> | 161 | </text> |
50 | <combo_box name="lightshare_combo" | 162 | <combo_box name="lightshare_combo" |
51 | bottom_delta="-2" left_delta="250" height="18" width="135" | 163 | bottom_delta="-2" left="275" height="18" width="160" |
52 | allow_text_entry="false" follows="left|top"> | 164 | allow_text_entry="false" follows="left|top"> |
53 | <combo_item type="string" name="never" value="0"> | 165 | <combo_item type="string" name="never" value="0"> |
54 | Never | 166 | Never |
@@ -60,62 +172,6 @@ | |||
60 | Always | 172 | Always |
61 | </combo_item> | 173 | </combo_item> |
62 | </combo_box> | 174 | </combo_box> |
63 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
64 | font="SansSerifSmall" height="16" initial_value="false" | ||
65 | label="Use HTTP texture fetching (experimental)" left="12" mouse_opaque="true" | ||
66 | name="http_texture_check" radio_style="false" width="217" /> | ||
67 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
68 | font="SansSerifSmall" height="16" initial_value="false" | ||
69 | label="Increase rez speed via draw distance stepping" left="12" mouse_opaque="true" | ||
70 | name="speed_rez_check" radio_style="false" width="217" /> | ||
71 | <spinner bottom_delta="-18" decimal_digits="0" | ||
72 | tool_tip="Interval in seconds between each draw distance increment" | ||
73 | follows="left|top" height="16" increment="1" initial_val="12" | ||
74 | label="Step interval every:" label_width="105" left_delta="20" max_val="20" | ||
75 | min_val="1" mouse_opaque="true" name="speed_rez_interval_spinner" width="145" /> | ||
76 | <text bottom_delta="0" follows="top|left" height="15" left_delta="150" | ||
77 | name="speed_rez_seconds_text" width="115"> | ||
78 | seconds | ||
79 | </text> | ||
80 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
81 | font="SansSerifSmall" height="16" initial_value="false" | ||
82 | tool_tip="Toggle editing animation and standing up when entering appearance mode" | ||
83 | label="Animate avatar when editing appearance" left="12" mouse_opaque="true" | ||
84 | name="appearance_anim_check" radio_style="false" width="217" /> | ||
85 | <check_box bottom_delta="-25" control_name="HeadFollowsMouse" enabled="true" | ||
86 | follows="left|top" font="SansSerifSmall" height="16" | ||
87 | label="Head follows mouse" tooltip="If your avatars head follows your mouse movements" left="12" | ||
88 | mouse_opaque="true" name="head_follows_mouse_checkbox" radio_style="false" | ||
89 | width="256" /> | ||
90 | <check_box bottom_delta="-25" enabled="true" | ||
91 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
92 | label="Use legacy pie menus" left="12" | ||
93 | mouse_opaque="true" name="legacy_pie_menu_checkbox" radio_style="false" | ||
94 | width="256" /> | ||
95 | <check_box bottom_delta="-25" enabled="true" | ||
96 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
97 | initial_value="false" label="Share language with objects" left="12" | ||
98 | mouse_opaque="true" name="language_is_public" | ||
99 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." | ||
100 | width="256" /> | ||
101 | <check_box bottom_delta="-25" enabled="true" | ||
102 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
103 | initial_value="false" label="Use MU* pose style chat and IM" left="12" | ||
104 | mouse_opaque="true" name="allow_mupose" | ||
105 | radio_style="false" tool_tip="Use MU* pose style in chat and IM (with ':' as a synonymous to '/me ')." | ||
106 | width="256" /> | ||
107 | <check_box bottom_delta="0" enabled="true" | ||
108 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
109 | initial_value="false" label="Auto-close OOC (( )) chat" left_delta="250" | ||
110 | mouse_opaque="true" name="auto_close_ooc" | ||
111 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." | ||
112 | width="256" /> | ||
113 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
114 | initial_value="false" label="Use the chatbar as a command line" left="12" | ||
115 | mouse_opaque="true" name="command_line_check" radio_style="false" width="270"/> | ||
116 | <button bottom_delta="-20" follows="left|top" font="SansSerif" height="20" width="150" | ||
117 | label="Chatbar Commands" name="command_line_btn" left="12" | ||
118 | tool_tip="Set specific chatbar command line commands here" /> | ||
119 | 175 | ||
120 | <!-- Uncomment when we start using the crash logger - MC --> | 176 | <!-- Uncomment when we start using the crash logger - MC --> |
121 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 177 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -137,69 +193,33 @@ | |||
137 | Never send | 193 | Never send |
138 | </combo_item> | 194 | </combo_item> |
139 | </combo_box>--> | 195 | </combo_box>--> |
196 | |||
140 | 197 | ||
141 | </panel> | 198 | </panel> |
142 | 199 | ||
143 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="SpellCheck" | 200 | |
144 | left="1" mouse_opaque="true" name="SpellCheck" width="418"> | 201 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Avatar Cloud" |
145 | <button bottom="-25" follows="left|top" font="SansSerifSmall" height="18" label="?" | ||
146 | name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page." | ||
147 | right="490" width="18"/> | ||
148 | <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
149 | label="Show misspelled words in red" left="12" mouse_opaque="true" name="EmeraldSpellDisplay" | ||
150 | control_name="EmeraldSpellDisplay" width="126"/> | ||
151 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
152 | name="EmSpell_txt1" width="512"> | ||
153 | Current language (dictionary): | ||
154 | </text> | ||
155 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
156 | max_chars="200" mouse_opaque="true" name="EmeraldSpellBase" width="250" | ||
157 | control_name="EmeraldSpellBase" tool_tip=""/> | ||
158 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
159 | name="EmSpell_txt3" width="512"> | ||
160 | Downloaded languages (dictionaries): | ||
161 | </text> | ||
162 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
163 | max_chars="200" mouse_opaque="true" name="EmSpell_Avail" width="250" | ||
164 | control_name="EmSpell_Avail" tool_tip=""/> | ||
165 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Install" | ||
166 | name="EmSpell_Add" tool_tip="" left_delta="255" width="80"/> | ||
167 | <button bottom_delta="-22" follows="left|top" font="SansSerifSmall" height="20" label="Download More..." | ||
168 | name="EmSpell_GetMore" tool_tip="Get more dictionaries availabe online" left="12" width="250"/> | ||
169 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
170 | name="EmSpell_txt2" width="512"> | ||
171 | Additional custom languages (dictionaries): | ||
172 | </text> | ||
173 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
174 | max_chars="200" mouse_opaque="true" name="EmSpell_Installed" width="250" | ||
175 | control_name="EmSpell_Installed" tool_tip=""/> | ||
176 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Remove" | ||
177 | name="EmSpell_Remove" tool_tip="" left_delta="255" width="80"/> | ||
178 | <!--<button bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="18" label="Edit Custom dictionary" | ||
179 | name="EmSpell_EditCustom" tool_tip="" left_delta="20" width="130"/>--> | ||
180 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
181 | name="EmSpell_txt4" width="512"> | ||
182 | To use spellcheck, right-click a misspelled word | ||
183 | (red or otherwise) and select its replacement | ||
184 | </text> | ||
185 | <button name="ac_button" label="AutoCorrect Options..." halign="center" | ||
186 | tool_tip="Modify the AutoCorrect word list and settings" left="12" | ||
187 | bottom_delta="-50" width="180" height="20" font="SansSerifSmall" follows="left|top"/> | ||
188 | </panel> | ||
189 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Eye Candy" | ||
190 | left="1" mouse_opaque="true" filename="panel_particle_settings.xml" name="AvatarCloud" width="418"> | 202 | left="1" mouse_opaque="true" filename="panel_particle_settings.xml" name="AvatarCloud" width="418"> |
191 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 203 | |
192 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 204 | |
193 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 205 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
194 | mouse_opaque="true" name="must_be_logged_in_textbox" v_pad="0" width="394"> | 206 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
195 | You must be logged in to change this | 207 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" |
196 | </text> | 208 | mouse_opaque="true" name="must_be_logged_in_textbox" v_pad="0" width="394"> |
197 | <check_box bottom_delta="-4" control_name="PreviewAvatarAsCloud" enabled="true" | 209 | You must be logged in to change this |
198 | follows="left|top" font="SansSerifSmall" height="16" | 210 | </text> |
199 | label="Preview avatar as cloud" left="10" | 211 | <check_box bottom_delta="-4" control_name="PreviewAvatarAsCloud" enabled="true" |
200 | mouse_opaque="true" name="preview_cloud" | 212 | follows="left|top" font="SansSerifSmall" height="16" |
201 | radio_style="false" tool_tip="Preview avatar as cloud when already rezzed" | 213 | label="Preview avatar as cloud" left="10" |
202 | width="80" /> | 214 | mouse_opaque="true" name="preview_cloud" |
215 | radio_style="false" tool_tip="Preview avatar as cloud when already rezzed" | ||
216 | width="80" /> | ||
217 | |||
218 | |||
203 | </panel> | 219 | </panel> |
220 | |||
221 | |||
204 | </tab_container> | 222 | </tab_container> |
223 | |||
224 | |||
205 | </panel> | 225 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml index 355d7e8..5a94d6a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml | |||
@@ -1,93 +1,121 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Audio & Video" left="102" mouse_opaque="true" | 18 | height="408" label="Audio & Video" left="102" mouse_opaque="true" |
4 | name="Media panel" width="517"> | 19 | name="Media panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
8 | mouse_opaque="true" name="muting_text" v_pad="0" width="128"> | 25 | mouse_opaque="true" name="muting_text" v_pad="0" width="128"> |
9 | Volume: | 26 | Volume: |
10 | </text> | 27 | </text> |
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 28 | |
12 | bottom="-202" drop_shadow_visible="true" enabled="true" follows="left|top" | 29 | <panel border="true" bottom_delta="-180" enabled="true" filename="panel_audio.xml" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 30 | follows="left|top|right|bottom" height="180" label="Volume" left_delta="30" |
14 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> | ||
15 | Streaming: | ||
16 | </text> | ||
17 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
18 | bottom="-315" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
19 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | ||
21 | Audio: | ||
22 | </text> | ||
23 | <panel border="true" bottom="-187" enabled="true" filename="panel_audio.xml" | ||
24 | follows="left|top|right|bottom" height="180" label="Volume" left="148" | ||
25 | mouse_opaque="true" name="Volume Panel" width="260" /> | 31 | mouse_opaque="true" name="Volume Panel" width="260" /> |
26 | <check_box bottom="-205" control_name="AudioStreamingMusic" enabled="true" | 32 | |
33 | |||
34 | <view_border bevel_style="none" border_thickness="1" bottom_delta="0" follows="left|top" | ||
35 | height="1" left="55" name="border" width="380" /> | ||
36 | |||
37 | |||
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
39 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
40 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
41 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> | ||
42 | Streaming: | ||
43 | </text> | ||
44 | |||
45 | <check_box bottom_delta="-25" control_name="AudioStreamingMusic" enabled="true" | ||
27 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 46 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
28 | label="Play streaming music when available (uses more bandwidth)" | 47 | label="Play streaming music when available (uses more bandwidth)" |
29 | left="142" mouse_opaque="true" name="streaming_music" radio_style="false" | 48 | left_delta="30" mouse_opaque="true" name="streaming_music" radio_style="false" |
30 | width="339" /> | 49 | width="339" /> |
31 | <check_box bottom_delta="-20" control_name="ShowStreamTitle" enabled="true" | 50 | <check_box bottom_delta="-20" control_name="ShowStreamTitle" enabled="true" |
32 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 51 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
33 | label="Show stream info in chat" left="162" mouse_opaque="true" | 52 | label="Show stream info in chat" left_delta="30" mouse_opaque="true" |
34 | name="show_stream_title" radio_style="false" width="338" /> | 53 | name="show_stream_title" radio_style="false" width="338" /> |
35 | <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true" | 54 | <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true" |
36 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 55 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
37 | label="Play Streaming Media When Available (uses more bandwidth)" | 56 | label="Play Streaming Media When Available (uses more bandwidth)" |
38 | left="142" mouse_opaque="true" name="streaming_video" radio_style="false" | 57 | left_delta="-30" mouse_opaque="true" name="streaming_video" radio_style="false" |
39 | width="338" /> | 58 | width="338" /> |
40 | <check_box bottom_delta="-20" control_name="ParcelMediaAutoPlayEnable" enabled="true" | 59 | <check_box bottom_delta="-20" control_name="ParcelMediaAutoPlayEnable" enabled="true" |
41 | follows="left|top" font="SansSerifSmall" height="16" | 60 | follows="left|top" font="SansSerifSmall" height="16" |
42 | initial_value="true" label="Automatically play media" left="162" | 61 | initial_value="true" label="Automatically play media" left_delta="30" |
43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" | 62 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" |
44 | width="338" /> | 63 | width="338" /> |
45 | <check_box bottom_delta="-20" control_name="MediaOnAPrimUI" enabled="true" | 64 | <check_box bottom_delta="-20" control_name="MediaOnAPrimUI" enabled="true" |
46 | follows="left|top" font="SansSerifSmall" height="16" | 65 | follows="left|top" font="SansSerifSmall" height="16" |
47 | initial_value="true" label="Media helper widget" left="162" | 66 | initial_value="true" label="Media helper widget" left_delta="0" |
48 | mouse_opaque="true" name="media_helper_widget" radio_style="false" | 67 | mouse_opaque="true" name="media_helper_widget" radio_style="false" |
49 | width="338" /> | 68 | width="338" /> |
50 | <check_box bottom_delta="-20" control_name="MediaEnableFilter" enabled="true" | 69 | <check_box bottom_delta="-20" control_name="MediaEnableFilter" enabled="true" |
51 | follows="left|top" font="SansSerifSmall" height="16" | 70 | follows="left|top" font="SansSerifSmall" height="16" |
52 | initial_value="true" label="Filter media URLs" left="142" | 71 | initial_value="true" label="Filter media URLs" left_delta="-30" |
53 | mouse_opaque="true" name="enable_media_filter" radio_style="false" | 72 | mouse_opaque="true" name="enable_media_filter" radio_style="false" |
54 | width="200" /> | 73 | width="200" /> |
55 | <button name="show_media_filter" font="SansSerif" label="Media Filter Settings" halign="center" | 74 | <button name="show_media_filter" font="SansSerifSmall" label="Media Filter Settings" halign="center" |
56 | tool_tip="Edit settings and the blocked and allowed lists for the Media Filter." | 75 | tool_tip="Edit settings and the blocked and allowed lists for the Media Filter." |
57 | enabled="false" mouse_opaque="true" follows="top|right" | 76 | enabled="false" mouse_opaque="true" follows="left|top" |
58 | bottom_delta="-2" right="-15" height="20" width="180" /> | 77 | bottom_delta="-2" left="270" height="20" width="160" /> |
59 | <check_box bottom_delta="-33" control_name="MuteWhenMinimized" enabled="true" | 78 | |
79 | |||
80 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
81 | height="1" left="55" name="border" width="380" /> | ||
82 | |||
83 | |||
84 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
85 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
86 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
87 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | ||
88 | Audio: | ||
89 | </text> | ||
90 | |||
91 | <check_box bottom_delta="-25" control_name="MuteWhenMinimized" enabled="true" | ||
60 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 92 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
61 | label="Mute audio when window minimized" left="142" mouse_opaque="true" | 93 | label="Mute audio when minimized" left_delta="30" mouse_opaque="true" |
62 | name="mute_when_minimized" radio_style="false" width="215" /> | 94 | name="mute_when_minimized" radio_style="false" width="215" /> |
63 | <spinner bottom_delta="-20" control_name="UISndMoneyChangeThreshold" decimal_digits="0" | 95 | <spinner bottom_delta="-20" control_name="UISndMoneyChangeThreshold" decimal_digits="0" |
64 | enabled="true" follows="left|top" height="16" increment="10" | 96 | enabled="true" follows="left|top" height="16" increment="10" |
65 | initial_val="10" label="[CURRENCY] change threshold:" label_width="158" left="148" | 97 | initial_val="10" label="[CURRENCY] sound threshhold:" label_width="138" left_delta="0" |
66 | max_val="10000" min_val="0" mouse_opaque="true" name="L$ Change Threshold" | 98 | max_val="10000" min_val="0" mouse_opaque="true" name="L$ Change Threshold" |
67 | width="212" /> | 99 | width="192" /> |
68 | <spinner bottom_delta="-20" control_name="UISndHealthReductionThreshold" | 100 | <spinner bottom_delta="-20" control_name="UISndHealthReductionThreshold" |
69 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 101 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
70 | increment="10" initial_val="20" label="Health change threshold:" | 102 | increment="10" initial_val="20" label="Health sound threshold:" |
71 | label_width="158" left="148" max_val="10000" min_val="0" | 103 | label_width="138" left_delta="0" max_val="10000" min_val="0" |
72 | mouse_opaque="true" name="Health change threshold" width="212" /> | 104 | mouse_opaque="true" name="Health change threshold" width="192" /> |
73 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 105 | <check_box bottom_delta="40" enabled="true" follows="left|top" |
74 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
75 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
76 | mouse_opaque="true" name="ambient_prefs_text" v_pad="0" width="128"> | ||
77 | Ambient: | ||
78 | </text> | ||
79 | <check_box bottom_delta="-4" enabled="true" follows="left|top" | ||
80 | font="SansSerifSmall" height="16" initial_value="false" | 106 | font="SansSerifSmall" height="16" initial_value="false" |
81 | label="Enable wind generation" left="142" mouse_opaque="true" | 107 | label="Enable wind generation" left="270" mouse_opaque="true" |
82 | name="mute_wind_check" radio_style="false" width="217" /> | 108 | name="mute_wind_check" radio_style="false" width="217" /> |
83 | <slider bottom_delta="-20" control_name="AudioLevelDoppler" edit_text="true" | 109 | <slider bottom_delta="-20" control_name="AudioLevelDoppler" edit_text="true" |
84 | enabled="true" follows="left|top" height="15" increment="0.1" | 110 | enabled="true" follows="left|top" height="15" increment="0.1" |
85 | initial_val="1" label="Doppler effect:" label_width="100" left="148" | 111 | initial_val="1" label="Doppler effect:" label_width="100" left_delta="0" |
86 | max_val="2" min_val="0" mouse_opaque="true" name="Doppler Effect" | 112 | max_val="2" min_val="0" mouse_opaque="true" name="Doppler Effect" |
87 | show_text="true" width="250" /> | 113 | show_text="true" width="200" /> |
88 | <slider bottom_delta="-20" control_name="AudioLevelRolloff" edit_text="true" | 114 | <slider bottom_delta="-20" control_name="AudioLevelRolloff" edit_text="true" |
89 | enabled="true" follows="left|top" height="15" increment="0.1" | 115 | enabled="true" follows="left|top" height="15" increment="0.1" |
90 | initial_val="1" label="Rolloff factor:" label_width="100" left="148" | 116 | initial_val="1" label="Rolloff factor:" label_width="100" left_delta="0" |
91 | max_val="2" min_val="0" mouse_opaque="true" name="Rolloff Factor" | 117 | max_val="2" min_val="0" mouse_opaque="true" name="Rolloff Factor" |
92 | show_text="true" width="250" /> | 118 | show_text="true" width="200" /> |
119 | |||
120 | |||
93 | </panel> | 121 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml index 9ead3bf..0a2678f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml | |||
@@ -1,196 +1,358 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Chat" left="102" mouse_opaque="true" name="chat" | 18 | height="408" label="Chat" left="102" mouse_opaque="true" name="chat" |
4 | width="517"> | 19 | width="517"> |
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 20 | |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 21 | <tab_container bottom="0" height="450" left="0" mouse_opaque="false" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 22 | name="chattab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | 23 | |
9 | Font Size: | 24 | |
10 | </text> | 25 | <!-- CHAT OPTIONS PANEL --> |
11 | <radio_group bottom="-40" draw_border="true" enabled="true" | 26 | |
12 | follows="left|top" height="30" left="148" mouse_opaque="true" | 27 | |
13 | name="chat_font_size" width="331"> | 28 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
14 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="0" mouse_opaque="true" | 29 | height="408" label="Chat & IMs" left="102" mouse_opaque="true" |
15 | name="radio" width="98"> | 30 | name="chat_panel" width="517"> |
16 | Small | 31 | |
17 | </radio_item> | 32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
18 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="110" mouse_opaque="true" | 33 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
19 | name="radio2" width="98"> | 34 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
20 | Medium | 35 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> |
21 | </radio_item> | 36 | Chat Text Size: |
22 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="220" mouse_opaque="true" | 37 | </text> |
23 | name="radio3" width="98"> | 38 | |
24 | Large | 39 | <combo_box allow_text_entry="false" bottom_delta="-25" enabled="true" follows="left|top" |
25 | </radio_item> | 40 | height="16" left_delta="30" max_chars="100" mouse_opaque="true" |
26 | </radio_group> | 41 | name="chat_font_size" width="160"> |
27 | 42 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> | |
28 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 43 | Small |
29 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | 44 | </combo_item> |
30 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 45 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
31 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="128"> | 46 | Medium |
32 | Translate Chat: | 47 | </combo_item> |
33 | </text> | 48 | <combo_item type="string" length="1" enabled="true" name="2" value="2"> |
34 | <check_box bottom_delta="-3" control_name="TranslateChat" enabled="true" follows="left|top" | 49 | Large |
35 | font="SansSerifSmall" height="16" initial_value="false" | 50 | </combo_item> |
36 | label="Use machine translation while chatting (powered by Google)" left="148" mouse_opaque="true" | 51 | </combo_box> |
37 | name="translate_chat" radio_style="false" width="237" /> | 52 | |
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | |
39 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | 54 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
40 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="149" | 55 | height="1" left="55" name="border" width="380" /> |
41 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="160"> | 56 | |
42 | Translate into this language: | 57 | |
43 | </text> | 58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
44 | <combo_box allow_text_entry="true" bottom_delta="-5" enabled="true" | 59 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
45 | follows="left|top" height="16" left_delta="183" max_chars="135" | 60 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
46 | mouse_opaque="true" name="translate_language_combobox" width="146"> | 61 | mouse_opaque="false" name="text_box3" v_pad="0" width="135"> |
47 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | 62 | Chat Console: |
48 | System Default | 63 | </text> |
49 | </combo_item> | 64 | <spinner bottom_delta="-25" control_name="ChatPersistTime" decimal_digits="0" |
50 | <combo_item type="string" length="1" enabled="true" name="English" value="en"> | 65 | enabled="true" follows="left|top" height="16" increment="1" |
51 | English | 66 | initial_val="10" label="Fade chat after" label_width="80" left_delta="30" |
52 | </combo_item> | 67 | max_val="60" min_val="2" mouse_opaque="true" name="fade_chat_time" |
53 | 68 | width="130" /> | |
54 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | 69 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
55 | 70 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | |
56 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | 71 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
57 | Dansk (Danish) | 72 | height="10" left_delta="135" mouse_opaque="false" name="text_box4" v_pad="0" |
58 | </combo_item> | 73 | width="80"> |
59 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | 74 | seconds and |
60 | Deutsch (German) | 75 | </text> |
61 | </combo_item> | 76 | <spinner bottom_delta="-6" decimal_digits="0" |
62 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | 77 | enabled="true" follows="left|top" height="16" increment="1" |
63 | Español (Spanish) | 78 | initial_val="10" left_delta="82" max_val="50" min_val="1" mouse_opaque="true" |
64 | </combo_item> | 79 | name="max_chat_count" width="60" /> |
65 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | 80 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
66 | Français (French) | 81 | bottom_delta="6" drop_shadow_visible="true" enabled="true" |
67 | </combo_item> | 82 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
68 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | 83 | height="10" left_delta="65" mouse_opaque="false" name="text_box5" v_pad="0" |
69 | Italiano (Italian) | 84 | width="60"> |
70 | </combo_item> | 85 | lines |
71 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | 86 | </text> |
72 | Magyar (Hungarian) | 87 | |
73 | </combo_item> | 88 | <slider bottom_delta="-25" can_edit_text="false" control_name="ConsoleBackgroundOpacity" |
74 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | 89 | decimal_digits="3" enabled="true" follows="left|top" height="12" |
75 | Nederlands (Dutch) | 90 | increment="0.05" initial_val="1" label="Console opacity:" left="50" max_val="1" |
76 | </combo_item> | 91 | min_val="0" mouse_opaque="true" name="console_opacity" show_text="true" |
77 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | 92 | value="0.4" width="200" /> |
78 | Polski (Polish) | 93 | <check_box bottom_delta="-4" control_name="ChatFullWidth" enabled="true" |
79 | </combo_item> | 94 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
80 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | 95 | label="Full screen width (requires restart)" left="270" |
81 | Portugués (Portuguese) | 96 | mouse_opaque="true" name="chat_full_width_check" radio_style="false" |
82 | </combo_item> | 97 | width="239" /> |
83 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | 98 | |
84 | Русский (Russian) | 99 | |
85 | </combo_item> | 100 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
86 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | 101 | height="1" left="55" name="border" width="380" /> |
87 | Türkçe (Turkish) | 102 | |
88 | </combo_item> | 103 | |
89 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | 104 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
90 | Українська (Ukrainian) | 105 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
91 | </combo_item> | 106 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
92 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | 107 | mouse_opaque="false" name="text_box7" v_pad="0" width="128"> |
93 | 中文 (简体) (Chinese) | 108 | Chat Bubbles: |
94 | </combo_item> | 109 | </text> |
95 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | 110 | |
96 | 日本語 (Japanese) | 111 | <check_box bottom_delta="-25" control_name="UseChatBubbles" enabled="true" follows="left|top" |
97 | </combo_item> | 112 | font="SansSerifSmall" height="16" initial_value="false" |
98 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | 113 | label="Show chat bubbles" left_delta="30" mouse_opaque="true" |
99 | 한국어 (Korean) | 114 | name="bubble_text_chat" radio_style="false" width="237" /> |
100 | </combo_item> | 115 | <check_box bottom_delta="-0" control_name="UseLocalChatBubbles" enabled="true" follows="left|top" |
101 | </combo_box> | 116 | font="SansSerifSmall" height="16" initial_value="false" |
117 | label="Show local chat and bubbles" left="270" mouse_opaque="true" | ||
118 | name="local_bubble_text_chat" radio_style="false" width="237" /> | ||
119 | <slider bottom_delta="-20" can_edit_text="false" control_name="ChatBubbleOpacity" | ||
120 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
121 | increment="0.05" initial_val="1" label="Bubble opacity:" left="50" max_val="1" | ||
122 | min_val="0" mouse_opaque="true" name="bubble_chat_opacity" show_text="true" | ||
123 | value="0.5" width="200" /> | ||
124 | |||
125 | |||
126 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
127 | height="1" left="55" name="border" width="380" /> | ||
128 | |||
129 | |||
130 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
131 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
132 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
133 | mouse_opaque="false" name="text_box6" v_pad="0" width="135"> | ||
134 | Chatbar: | ||
135 | </text> | ||
136 | |||
137 | <check_box bottom_delta="-25" enabled="true" | ||
138 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
139 | label="Close chatbar after hitting return" left_delta="30" mouse_opaque="true" | ||
140 | name="close_chat_on_return_check" radio_style="false" width="237" /> | ||
141 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
142 | font="SansSerifSmall" height="16" initial_value="false" | ||
143 | label="Show custom chat channel" left="270" mouse_opaque="true" | ||
144 | name="toggle_channel_control" radio_style="false" width="237" /> | ||
145 | <check_box bottom_delta="-20" enabled="true" | ||
146 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | ||
147 | label="Play typing animation when chatting" left="50" mouse_opaque="true" | ||
148 | name="play_typing_animation" radio_style="false" width="237" /> | ||
149 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
150 | initial_value="false" label="Use the chatbar as a command line" left="50" | ||
151 | mouse_opaque="true" name="command_line_check" radio_style="false" width="250"/> | ||
152 | <button bottom_delta="-2" follows="left|top" font="SansSerifSmall" height="20" width="160" | ||
153 | label="Chatbar Commands" name="command_line_btn" left="270" | ||
154 | tool_tip="Set specific chatbar command line commands here" /> | ||
155 | |||
156 | |||
157 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
158 | height="1" left="55" name="border" width="380" /> | ||
159 | |||
160 | |||
161 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
162 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
163 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
164 | mouse_opaque="false" name="text_box6" v_pad="0" width="135"> | ||
165 | Instant Messages: | ||
166 | </text> | ||
167 | |||
168 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
169 | height="16" initial_value="false" label="Send offline IMs to email ([EMAIL])" | ||
170 | left_delta="30" mouse_opaque="true" name="send_im_to_email" radio_style="false" | ||
171 | width="350" /> | ||
172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
173 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
174 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
175 | mouse_opaque="false" name="show_ims_label" v_pad="0" width="100"> | ||
176 | Show IMs in: | ||
177 | </text> | ||
178 | <check_box bottom_delta="-6" enabled="true" follows="left|top" | ||
179 | font="SansSerifSmall" height="16" initial_value="false" | ||
180 | label="Main chat" left="150" mouse_opaque="true" | ||
181 | name="include_im_in_chat_console" radio_style="false" width="100" /> | ||
182 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
183 | font="SansSerifSmall" height="16" initial_value="false" | ||
184 | label="Local Chat window" left="270" mouse_opaque="true" | ||
185 | name="include_im_in_chat_history" radio_style="false" width="100" /> | ||
186 | <check_box bottom_delta="-20" enabled="true" | ||
187 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
188 | label="Vertical IM tabs (requires restart)" left="50" mouse_opaque="true" | ||
189 | name="vertical-imtabs-toggle" radio_style="false" width="270" /> | ||
190 | |||
191 | |||
192 | </panel> | ||
193 | |||
194 | |||
195 | <!-- SPELL CHECKING AND TRANSLATE PANEL --> | ||
196 | |||
197 | |||
198 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Spell Checking & Translate" | ||
199 | left="1" mouse_opaque="true" name="spell_check_tab" width="418"> | ||
200 | |||
201 | |||
202 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
203 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
204 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
205 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | ||
206 | Spell Checking: | ||
207 | </text> | ||
208 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
209 | label="Enable spell checking" left_delta="30" mouse_opaque="true" name="EmeraldSpellDisplay" | ||
210 | control_name="EmeraldSpellDisplay" width="126"/> | ||
211 | <text bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" left_delta="30" | ||
212 | name="EmSpell_txt4" width="512"> | ||
213 | Right-click a misspelled/red-underlined word to correct | ||
214 | </text> | ||
215 | |||
216 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="-30" | ||
217 | name="EmSpell_txt1" width="512"> | ||
218 | Current language (dictionary): | ||
219 | </text> | ||
220 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
221 | max_chars="200" mouse_opaque="true" name="EmeraldSpellBase" width="250" | ||
222 | control_name="EmeraldSpellBase" tool_tip=""/> | ||
223 | |||
224 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | ||
225 | name="EmSpell_txt3" width="512"> | ||
226 | Downloaded languages (dictionaries): | ||
227 | </text> | ||
228 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
229 | max_chars="200" mouse_opaque="true" name="EmSpell_Avail" width="250" | ||
230 | control_name="EmSpell_Avail" tool_tip=""/> | ||
231 | |||
232 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Install" | ||
233 | name="EmSpell_Add" tool_tip="" left_delta="255" width="110"/> | ||
234 | |||
235 | <button bottom_delta="-22" follows="left|top" font="SansSerifSmall" height="20" label="Download More..." | ||
236 | name="EmSpell_GetMore" tool_tip="Get more dictionaries availabe online" left="50" width="250"/> | ||
237 | |||
238 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | ||
239 | name="EmSpell_txt2" width="512"> | ||
240 | Additional custom languages (dictionaries): | ||
241 | </text> | ||
242 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
243 | max_chars="200" mouse_opaque="true" name="EmSpell_Installed" width="250" | ||
244 | control_name="EmSpell_Installed" tool_tip=""/> | ||
245 | |||
246 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Remove" | ||
247 | name="EmSpell_Remove" tool_tip="" left_delta="255" width="110"/> | ||
248 | |||
249 | <!--<button bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="18" label="Edit Custom dictionary" | ||
250 | name="EmSpell_EditCustom" tool_tip="" left_delta="20" width="130"/>--> | ||
251 | |||
252 | <button name="ac_button" label="AutoCorrect..." halign="center" | ||
253 | tool_tip="Modify the AutoCorrect word list and settings" left="50" | ||
254 | bottom_delta="-40" width="160" height="20" font="SansSerifSmall" follows="left|top"/> | ||
255 | |||
256 | |||
257 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
258 | height="1" left="55" name="border" width="380" /> | ||
259 | |||
260 | |||
261 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
262 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
263 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
264 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | ||
265 | Translate Chat: | ||
266 | </text> | ||
267 | <check_box bottom_delta="-25" control_name="TranslateChat" enabled="true" follows="left|top" | ||
268 | font="SansSerifSmall" height="16" initial_value="false" | ||
269 | label="Use machine translation while chatting (powered by Google)" left_delta="30" mouse_opaque="true" | ||
270 | name="translate_chat" radio_style="false" width="237" /> | ||
271 | |||
272 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
273 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
274 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
275 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="160"> | ||
276 | Translate into this language: | ||
277 | </text> | ||
278 | |||
279 | <combo_box allow_text_entry="false" bottom_delta="-5" enabled="true" | ||
280 | follows="left|top" height="16" left="270" max_chars="135" | ||
281 | mouse_opaque="true" name="translate_language_combobox" width="160"> | ||
282 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | ||
283 | System Default | ||
284 | </combo_item> | ||
285 | <combo_item type="string" length="1" enabled="true" name="English" value="en"> | ||
286 | English | ||
287 | </combo_item> | ||
288 | |||
289 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | ||
290 | |||
291 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | ||
292 | Dansk (Danish) | ||
293 | </combo_item> | ||
294 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | ||
295 | Deutsch (German) | ||
296 | </combo_item> | ||
297 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | ||
298 | Español (Spanish) | ||
299 | </combo_item> | ||
300 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | ||
301 | Français (French) | ||
302 | </combo_item> | ||
303 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | ||
304 | Italiano (Italian) | ||
305 | </combo_item> | ||
306 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | ||
307 | Magyar (Hungarian) | ||
308 | </combo_item> | ||
309 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | ||
310 | Nederlands (Dutch) | ||
311 | </combo_item> | ||
312 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | ||
313 | Polski (Polish) | ||
314 | </combo_item> | ||
315 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | ||
316 | Portugués (Portuguese) | ||
317 | </combo_item> | ||
318 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | ||
319 | Русский (Russian) | ||
320 | </combo_item> | ||
321 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | ||
322 | Türkçe (Turkish) | ||
323 | </combo_item> | ||
324 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | ||
325 | Українська (Ukrainian) | ||
326 | </combo_item> | ||
327 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | ||
328 | 中文 (简体) (Chinese) | ||
329 | </combo_item> | ||
330 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | ||
331 | 日本語 (Japanese) | ||
332 | </combo_item> | ||
333 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | ||
334 | 한국어 (Korean) | ||
335 | </combo_item> | ||
336 | </combo_box> | ||
337 | |||
338 | |||
339 | <button bottom="-20" follows="left|top" font="SansSerifSmall" height="18" label="?" | ||
340 | name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page." | ||
341 | right="490" width="18"/> | ||
342 | |||
343 | |||
344 | </panel> | ||
345 | |||
346 | |||
347 | </tab_container> | ||
348 | |||
102 | 349 | ||
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 350 | <string name="log_in_to_change"> |
104 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | 351 | log in to change |
105 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 352 | </string> |
106 | mouse_opaque="false" name="text_box3" v_pad="0" width="135"> | 353 | <string name="default_email_used"> |
107 | Chat Console: | 354 | using default address |
108 | </text> | 355 | </string> |
109 | <spinner bottom_delta="-8" control_name="ChatPersistTime" decimal_digits="0" | ||
110 | enabled="true" follows="left|top" height="16" increment="1" | ||
111 | initial_val="10" label="Fade chat after" label_width="80" left="148" | ||
112 | max_val="60" min_val="2" mouse_opaque="true" name="fade_chat_time" | ||
113 | width="130" /> | ||
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
115 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | ||
116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
117 | height="10" left="282" mouse_opaque="false" name="text_box4" v_pad="0" | ||
118 | width="80"> | ||
119 | (seconds) | ||
120 | </text> | ||
121 | <spinner bottom_delta="-6" decimal_digits="0" | ||
122 | enabled="true" follows="left|top" height="16" increment="1" | ||
123 | initial_val="10" left="340" max_val="50" min_val="1" mouse_opaque="true" | ||
124 | name="max_chat_count" width="60" /> | ||
125 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
126 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | ||
127 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
128 | height="10" left="405" mouse_opaque="false" name="text_box5" v_pad="0" | ||
129 | width="60"> | ||
130 | (# lines) | ||
131 | </text> | ||
132 | <slider bottom_delta="-25" can_edit_text="false" control_name="ConsoleBackgroundOpacity" | ||
133 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
134 | increment="0.05" initial_val="1" label="Console opacity:" left="148" max_val="1" | ||
135 | min_val="0" mouse_opaque="true" name="console_opacity" show_text="true" | ||
136 | value="0.4" width="225" /> | ||
137 | <check_box bottom_delta="-25" control_name="ChatFullWidth" enabled="true" | ||
138 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
139 | label="Use full screen width (requires restart)" left="148" | ||
140 | mouse_opaque="true" name="chat_full_width_check" radio_style="false" | ||
141 | width="239" /> | ||
142 | |||
143 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
144 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
145 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
146 | mouse_opaque="false" name="text_box7" v_pad="0" width="128"> | ||
147 | Chat Bubbles: | ||
148 | </text> | ||
149 | <check_box bottom_delta="-8" control_name="UseChatBubbles" enabled="true" follows="left|top" | ||
150 | font="SansSerifSmall" height="16" initial_value="false" | ||
151 | label="Show chat bubbles" left="148" mouse_opaque="true" | ||
152 | name="bubble_text_chat" radio_style="false" width="237" /> | ||
153 | <check_box bottom_delta="-0" control_name="UseLocalChatBubbles" enabled="true" follows="left|top" | ||
154 | font="SansSerifSmall" height="16" initial_value="false" | ||
155 | label="Show local chat and bubbles" left="288" mouse_opaque="true" | ||
156 | name="local_bubble_text_chat" radio_style="false" width="237" /> | ||
157 | <slider bottom_delta="-20" can_edit_text="false" control_name="ChatBubbleOpacity" | ||
158 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
159 | increment="0.05" initial_val="1" label="Bubble opacity:" left="148" max_val="1" | ||
160 | min_val="0" mouse_opaque="true" name="bubble_chat_opacity" show_text="true" | ||
161 | value="0.5" width="225" /> | ||
162 | 356 | ||
163 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
164 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
165 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
166 | mouse_opaque="false" name="text_box6" v_pad="0" width="135"> | ||
167 | Miscellaneous: | ||
168 | </text> | ||
169 | <check_box bottom_delta="-8" enabled="true" | ||
170 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
171 | label="Close chat bar after hitting return" left="148" mouse_opaque="true" | ||
172 | name="close_chat_on_return_check" radio_style="false" width="237" /> | ||
173 | <check_box bottom_delta="-18" enabled="true" | ||
174 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
175 | label="Arrow keys always move avatar when chatting" left="148" | ||
176 | mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false" | ||
177 | width="237" /> | ||
178 | <check_box bottom_delta="-18" enabled="true" | ||
179 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
180 | label="Show timestamps in Local Chat" left="148" mouse_opaque="true" | ||
181 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
182 | <check_box bottom_delta="-18" control_name="ScriptErrorsAsChat" enabled="true" | ||
183 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
184 | label="Show script errors and warnings as regular chat" left="148" | ||
185 | mouse_opaque="true" name="script_errors_as_chat" radio_style="false" | ||
186 | width="275" /> | ||
187 | <check_box bottom_delta="-18" enabled="true" | ||
188 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | ||
189 | label="Play typing animation when chatting" left="148" mouse_opaque="true" | ||
190 | name="play_typing_animation" radio_style="false" width="237" /> | ||
191 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
192 | font="SansSerifSmall" height="16" initial_value="false" | ||
193 | label="Show custom chat channel" left="148" mouse_opaque="true" | ||
194 | name="toggle_channel_control" radio_style="false" width="237" /> | ||
195 | 357 | ||
196 | </panel> | 358 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml index 40a75a6..26aab9a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml | |||
@@ -1,115 +1,152 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Chat Colors" left="102" mouse_opaque="true" name="colors" | 18 | height="408" label="Colors" left="102" mouse_opaque="true" name="colors" |
4 | width="517"> | 19 | width="517"> |
20 | |||
21 | |||
22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
25 | mouse_opaque="true" name="effects_color_textbox" v_pad="0" width="394"> | ||
26 | Selection Beam Color: | ||
27 | </text> | ||
28 | |||
29 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
30 | can_apply_immediately="false" color="1 1 1 1" | ||
31 | enabled="true" follows="left|top" height="65" label="" left="50" | ||
32 | mouse_opaque="true" name="effect_color_swatch" | ||
33 | tool_tip="Click to open Color Picker" width="65" /> | ||
34 | |||
35 | |||
36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
37 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
38 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="270" | ||
39 | mouse_opaque="true" name="effects_color_textbox" v_pad="0" width="394"> | ||
40 | Client Tag Color: | ||
41 | </text> | ||
42 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
43 | can_apply_immediately="true" color="0.79 0.44 0.88 1" | ||
44 | enabled="true" follows="left|top" | ||
45 | height="65" label="Imprudence" left_delta="30" mouse_opaque="true" | ||
46 | name="client_tag_color" width="65" /> | ||
47 | <check_box bottom_delta="45" enabled="true" follows="left|top" | ||
48 | font="SansSerifSmall" height="16" initial_value="false" | ||
49 | label="Color client tags" left_delta="76" mouse_opaque="true" | ||
50 | name="client_name_color_check" radio_style="false" width="160" /> | ||
51 | |||
52 | |||
53 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-60" follows="left|top" | ||
54 | height="1" left="55" name="border" width="380" /> | ||
55 | |||
56 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 57 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 58 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 59 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> | 60 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> |
9 | Chat Colors: | 61 | Chat: |
10 | </text> | 62 | </text> |
11 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 63 | |
64 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
12 | can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor" | 65 | can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor" |
13 | enabled="true" follows="left|top" height="65" label="Your chat" left="120" | 66 | enabled="true" follows="left|top" height="65" label="Your chat" left="50" |
14 | mouse_opaque="true" name="user" width="65" /> | 67 | mouse_opaque="true" name="user" width="65" /> |
15 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 68 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
16 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" | 69 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" |
17 | enabled="true" follows="left|top" height="65" label="Others' chat" left_delta="76" | 70 | enabled="true" follows="left|top" height="65" label="Others' chat" left_delta="76" |
18 | mouse_opaque="true" name="agent" width="65" /> | 71 | mouse_opaque="true" name="agent" width="65" /> |
19 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 72 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
20 | can_apply_immediately="true" color="0.6 0.6 1 1" | 73 | can_apply_immediately="true" color="0.6 0.6 1 1" |
21 | enabled="true" follows="left|top" height="65" label="IMs" left_delta="76" | 74 | enabled="true" follows="left|top" height="65" label="IMs" left_delta="76" |
22 | mouse_opaque="true" name="im" width="65" /> | 75 | mouse_opaque="true" name="im" width="65" /> |
23 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 76 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
24 | can_apply_immediately="true" color="0.8 1 1 1" | 77 | can_apply_immediately="true" color="0.8 1 1 1" |
25 | enabled="true" follows="left|top" | 78 | enabled="true" follows="left|top" |
26 | height="65" label="System" left_delta="76" mouse_opaque="true" | 79 | height="65" label="System" left_delta="76" mouse_opaque="true" |
27 | name="system" width="65" /> | 80 | name="system" width="65" /> |
28 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 81 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
29 | can_apply_immediately="true" color="0.82 0.82 0.99 1" | 82 | can_apply_immediately="true" color="0.82 0.82 0.99 1" |
30 | control_name="ScriptErrorColor" enabled="true" follows="left|top" | 83 | control_name="ScriptErrorColor" enabled="true" follows="left|top" |
31 | height="65" label="Script errors" left_delta="76" mouse_opaque="true" | 84 | height="65" label="Script errors" left_delta="76" mouse_opaque="true" |
32 | name="script_error" width="65" /> | 85 | name="script_error" width="65" /> |
33 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 86 | |
87 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
34 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 88 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
35 | control_name="ObjectChatColor" enabled="true" follows="left|top" | 89 | control_name="ObjectChatColor" enabled="true" follows="left|top" |
36 | height="65" label="Object chat" left="120" mouse_opaque="true" | 90 | height="65" label="Object chat" left="50" mouse_opaque="true" |
37 | name="objects" width="65" /> | 91 | name="objects" width="65" /> |
38 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 92 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
39 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 93 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
40 | control_name="ObjectIMColor" enabled="true" follows="left|top" | 94 | control_name="ObjectIMColor" enabled="true" follows="left|top" |
41 | height="65" label="Object IMs" left_delta="76" mouse_opaque="true" | 95 | height="65" label="Object IMs" left_delta="76" mouse_opaque="true" |
42 | name="object_ims" width="65" /> | 96 | name="object_ims" width="65" /> |
43 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 97 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
44 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 98 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
45 | enabled="true" follows="left|top" | 99 | enabled="true" follows="left|top" |
46 | height="65" label="Owner chat" left_delta="76" mouse_opaque="true" name="owner" | 100 | height="65" label="Owner chat" left_delta="76" mouse_opaque="true" name="owner" |
47 | width="65" /> | 101 | width="65" /> |
48 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 102 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
49 | can_apply_immediately="true" color="0 0 0 1" | 103 | can_apply_immediately="true" color="0 0 0 1" |
50 | enabled="true" follows="left|top" | 104 | enabled="true" follows="left|top" |
51 | height="65" label="Bubble chat" left_delta="76" mouse_opaque="true" | 105 | height="65" label="Bubble chat" left_delta="76" mouse_opaque="true" |
52 | name="background" width="65" /> | 106 | name="background" width="65" /> |
53 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 107 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
54 | can_apply_immediately="true" color="0.6 0.6 1 1" | 108 | can_apply_immediately="true" color="0.6 0.6 1 1" |
55 | enabled="true" follows="left|top" height="65" | 109 | enabled="true" follows="left|top" height="65" |
56 | label="Links" left_delta="76" mouse_opaque="true" name="links" width="65" /> | 110 | label="Links" left_delta="76" mouse_opaque="true" name="links" width="65" /> |
111 | |||
112 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-85" | ||
113 | can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor" | ||
114 | enabled="true" follows="left|top" height="65" label="Friends" left="50" | ||
115 | mouse_opaque="true" name="FriendsChatColor" width="65" /> | ||
116 | <check_box bottom_delta="45" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
117 | initial_value="true" label="Highlight chat from friends" left_delta="76" | ||
118 | mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/> | ||
57 | 119 | ||
58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 120 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-121" |
59 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 121 | can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor" |
60 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 122 | enabled="true" follows="left|top" height="65" label="Your name" left="50" |
61 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | 123 | mouse_opaque="true" name="OwnNameChatColor" width="65" /> |
62 | Line Highlighting: | 124 | <check_box bottom_delta="45" enabled="true" follows="left|top" |
63 | </text> | 125 | font="SansSerifSmall" height="16" initial_value="true" |
64 | 126 | label="Highlight local chat containing your name and/or nicknames:" left_delta="76" mouse_opaque="true" | |
65 | <check_box bottom_delta="-7" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 127 | name="HighlightOwnNameInChat" radio_style="false" width="217" /> |
66 | initial_value="true" label="Highlight chat from friends" left="120" | ||
67 | mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/> | ||
68 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
69 | can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor" | ||
70 | enabled="true" follows="left|top" height="65" label="Friends" left_delta="20" | ||
71 | mouse_opaque="true" name="FriendsChatColor" width="65" /> | ||
72 | |||
73 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
74 | font="SansSerifSmall" height="16" initial_value="true" | ||
75 | label="Highlight local chat containing your name" left="120" mouse_opaque="true" | ||
76 | name="HighlightOwnNameInChat" radio_style="false" width="217" /> | ||
77 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 128 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" |
78 | initial_value="true" label="Highlight group chat containing your name" left_delta="0" | 129 | initial_value="true" label="Highlight group chat containing your name and/or nicknames:" left_delta="0" |
79 | mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/> | 130 | mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/> |
80 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
81 | can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor" | ||
82 | enabled="true" follows="left|top" height="65" label="Your name" left_delta="20" | ||
83 | mouse_opaque="true" name="OwnNameChatColor" width="65" /> | ||
84 | 131 | ||
85 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="20" | 132 | |
86 | left="140" name="nick01_text" width="150"> | 133 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-22" |
87 | Highlight nickname 1: | 134 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 1" |
88 | </text> | 135 | handle_edit_keys_directly="true" height="18" left_delta="0" |
89 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
90 | enabled="true" follows="left|top" font="SansSerif" | ||
91 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
92 | max_length="50" mouse_opaque="true" name="nick01" | 136 | max_length="50" mouse_opaque="true" name="nick01" |
93 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 137 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
94 | 138 | ||
95 | <text bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" | 139 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0" |
96 | left="140" name="nick02_text" width="150"> | 140 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 2" |
97 | Highlight nickname 2: | 141 | handle_edit_keys_directly="true" height="18" left_delta="120" |
98 | </text> | ||
99 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
100 | enabled="true" follows="left|top" font="SansSerif" | ||
101 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
102 | max_length="50" mouse_opaque="true" name="nick02" | 142 | max_length="50" mouse_opaque="true" name="nick02" |
103 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 143 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
104 | 144 | ||
105 | <text bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" | 145 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0" |
106 | left="140" name="nick03_text" width="150"> | 146 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 3" |
107 | Highlight nickname 3: | 147 | handle_edit_keys_directly="true" height="18" left_delta="120" |
108 | </text> | ||
109 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
110 | enabled="true" follows="left|top" font="SansSerif" | ||
111 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
112 | max_length="50" mouse_opaque="true" name="nick03" | 148 | max_length="50" mouse_opaque="true" name="nick03" |
113 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 149 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
150 | |||
114 | 151 | ||
115 | </panel> | 152 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml index c64ce9f..8488656 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml | |||
@@ -1,15 +1,35 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | 2 | ||
3 | <panel name="font_panel" label="Fonts" | 3 | <!-- |
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel name="fonts_panel" label="Fonts" | ||
4 | bottom="-409" left="102" height="408" width="517" | 18 | bottom="-409" left="102" height="408" width="517" |
5 | border="true" follows="left|top|right|bottom"> | 19 | border="true" follows="left|top|right|bottom"> |
6 | 20 | ||
7 | <text bottom="-25" left="10" height="15" width="300"> | 21 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
8 | User interface font (requires restart): | 22 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" |
23 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
24 | mouse_opaque="true" name="fontselect" v_pad="0" width="128" font-style="BOLD|SHADOW"> | ||
25 | Select UI Font: | ||
26 | </text> | ||
27 | <text font="SansSerifSmall" bottom="-22" left_delta="80" height="12" width="300"> | ||
28 | (requires restart) | ||
9 | </text> | 29 | </text> |
10 | 30 | ||
11 | <radio_group name="fonts" draw_border="false" | 31 | <radio_group name="fonts" draw_border="false" |
12 | top="-30" left="20" bottom="0" right="-20" | 32 | top="-30" left="50" bottom="0" right="-20" |
13 | follows="top|left|bottom|right"> | 33 | follows="top|left|bottom|right"> |
14 | 34 | ||
15 | <radio_item name="DroidSans" bottom="-20" left="0" height="20"> | 35 | <radio_item name="DroidSans" bottom="-20" left="0" height="20"> |
@@ -48,12 +68,37 @@ | |||
48 | 68 | ||
49 | 69 | ||
50 | <spinner name="font_mult" label="Font size multiplier:" label_width="130" | 70 | <spinner name="font_mult" label="Font size multiplier:" label_width="130" |
51 | bottom="-280" left="20" height="16" width="180" follows="left|top" | 71 | bottom_delta="150" left="50" height="16" width="180" follows="left|top" |
52 | decimal_digits="2" increment="0.01" max_val="3.0" min_val="0.1" | 72 | decimal_digits="2" increment="0.01" max_val="3.0" min_val="0.1" |
53 | tool_tip="Multiply all font sizes by this amount." /> | 73 | tool_tip="Multiply all font sizes by this amount." /> |
54 | 74 | ||
55 | <check_box name="font_round" follows="left|top" | 75 | <check_box name="font_round" follows="left|top" |
56 | bottom="-300" left="20" height="16" width="300" | 76 | bottom_delta="-20" left_delta="0" height="16" width="300" |
57 | label="Force integer font sizes (may fix blurry fonts)" /> | 77 | label="Force integer font sizes (may fix blurry fonts)" /> |
58 | 78 | ||
79 | |||
80 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
81 | height="1" left="55" name="border" width="380" /> | ||
82 | |||
83 | |||
84 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
85 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
86 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
87 | mouse_opaque="true" name="UI Size:" v_pad="0" width="128" font-style="BOLD|SHADOW"> | ||
88 | UI Size: | ||
89 | </text> | ||
90 | |||
91 | <slider bottom_delta="22" can_edit_text="true" label_width="0" label="" | ||
92 | decimal_digits="3" enabled="true" height="16" increment="0.001" | ||
93 | initial_val="1" left="50" max_val="1.4" min_val="0.75" mouse_opaque="true" | ||
94 | name="ui_scale_slider" show_text="true" value="1" width="160" /> | ||
95 | <button bottom_delta="-48" enabled="true" follows="left|top" | ||
96 | font="SansSerifSmall" halign="center" height="20" label="Reset to Default" | ||
97 | left="270" mouse_opaque="true" | ||
98 | name="reset_ui_size" scale_image="true" width="160" /> | ||
99 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | ||
100 | font="SansSerifSmall" height="16" initial_value="false" | ||
101 | label="Use resolution independent scale" left="50" mouse_opaque="true" | ||
102 | name="ui_auto_scale" radio_style="false" width="256" /> | ||
103 | |||
59 | </panel> | 104 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml index 8b354b4..e96def5 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml | |||
@@ -1,18 +1,35 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="General" left="102" mouse_opaque="true" | 18 | height="408" label="General" left="102" mouse_opaque="true" |
4 | name="general_panel" width="517"> | 19 | name="general_panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
8 | mouse_opaque="true" name="start_location_textbox" v_pad="0" width="394"> | 25 | mouse_opaque="true" name="start_location_textbox" v_pad="0" width="394"> |
9 | Start Location: | 26 | Default Start Location: |
10 | </text> | 27 | </text> |
11 | <string name="region_name_prompt"> | 28 | <string name="region_name_prompt"> |
12 | <Type region name> | 29 | <Type region name> |
13 | </string> | 30 | </string> |
14 | <combo_box name="default_location_combo" | 31 | <combo_box name="default_location_combo" |
15 | bottom="-22" left="155" height="16" width="150" | 32 | bottom_delta="-25" left="50" height="16" width="160" |
16 | follows="left|top" font="SansSerifSmall" | 33 | follows="left|top" font="SansSerifSmall" |
17 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> | 34 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> |
18 | <combo_item name="MyHome" value="My Home"> | 35 | <combo_item name="MyHome" value="My Home"> |
@@ -26,153 +43,122 @@ | |||
26 | </combo_item> | 43 | </combo_item> |
27 | </combo_box> | 44 | </combo_box> |
28 | <button name="grid_btn" label="Grid Manager" | 45 | <button name="grid_btn" label="Grid Manager" |
29 | bottom_delta="-3" left="330" height="20" width="100" | 46 | bottom_delta="-3" left="270" height="20" width="160" |
30 | follows="left|top" font="SansSerifSmall" halign="center" | 47 | follows="left|top" font="SansSerifSmall" halign="center" |
31 | mouse_opaque="true" scale_image="TRUE" /> | 48 | mouse_opaque="true" scale_image="TRUE" /> |
32 | <check_box bottom="-44" enabled="true" follows="left|top" | 49 | <check_box bottom_delta="-17" enabled="true" follows="left|top" |
33 | font="SansSerifSmall" height="16" initial_value="true" | 50 | font="SansSerifSmall" height="16" initial_value="true" |
34 | label="Show start location at login screen" left="151" mouse_opaque="true" | 51 | label="Show at login screen" left="50" mouse_opaque="true" |
35 | name="show_location_checkbox" radio_style="false" width="256" /> | 52 | name="show_location_checkbox" radio_style="false" width="256" /> |
53 | |||
54 | |||
55 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
56 | height="1" left="55" name="border" width="380" /> | ||
57 | |||
58 | |||
36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
37 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
38 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
39 | mouse_opaque="true" name="show_names_textbox" v_pad="0" width="394"> | 62 | mouse_opaque="true" name="show_names_textbox" v_pad="0" width="394"> |
40 | Nametags: | 63 | Nametags: |
41 | </text> | 64 | </text> |
42 | <combo_box bottom_delta="0" follows="left|top" height="18" left="155" | 65 | <combo_box bottom_delta="-30" follows="left|top" height="18" left="50" |
43 | mouse_opaque="true" name="fade_out_combobox" width="146"> | 66 | mouse_opaque="true" name="fade_out_combobox" width="160"> |
44 | <combo_item name="Never" value="Never"> | 67 | <combo_item name="Never" value="Never"> |
45 | Never show | 68 | Never show nametags |
46 | </combo_item> | 69 | </combo_item> |
47 | <combo_item name="Show Temporarily" value="Show Temporarily"> | 70 | <combo_item name="Show Temporarily" value="Show Temporarily"> |
48 | Temporarily show | 71 | Briefly show nametags |
49 | </combo_item> | 72 | </combo_item> |
50 | <combo_item name="Always" value="Always"> | 73 | <combo_item name="Always" value="Always"> |
51 | Always show | 74 | Always show nametags |
52 | </combo_item> | 75 | </combo_item> |
53 | </combo_box> | 76 | </combo_box> |
54 | <check_box bottom_delta="0" follows="left|top" | 77 | <check_box bottom_delta="0" follows="left|top" |
55 | font="SansSerifSmall" height="16" initial_value="true" | 78 | font="SansSerifSmall" height="16" initial_value="false" |
56 | label="Small avatar names" left="330" name="small_avatar_names_checkbox" | 79 | label="Large nametags" left="270" name="large_avatar_names_checkbox" |
57 | width="200" /> | 80 | width="200" /> |
58 | <check_box bottom_delta="-20" follows="left|top" | 81 | <check_box bottom_delta="-20" follows="left|top" |
59 | font="SansSerifSmall" height="16" initial_value="false" | 82 | font="SansSerifSmall" height="16" initial_value="false" |
60 | label="Hide my name on my screen" left="151" name="show_my_name_checkbox" | 83 | label="Hide my nametag" left="50" name="show_my_name_checkbox" |
61 | width="200" /> | 84 | width="200" /> |
62 | 85 | <check_box bottom_delta="0" follows="left|top" | |
63 | <check_box bottom_delta="-20" follows="left|top" | ||
64 | font="SansSerifSmall" height="16" initial_value="false" | 86 | font="SansSerifSmall" height="16" initial_value="false" |
65 | label="Highlight friends tags" left="151" name="highlight_friends_checkbox" | 87 | label="Bold my friends' nametags" left="270" name="highlight_friends_checkbox" |
66 | width="200" /> | 88 | width="200" /> |
67 | <text type="string" length="1" bottom_delta="-24" follows="left|top" font="SansSerifSmall" h_pad="0" | 89 | <check_box bottom_delta="-20" follows="left|top" |
68 | halign="left" height="16" left="10" name="Display_Names_textbox" v_pad="0" | 90 | font="SansSerifSmall" height="16" initial_value="false" |
69 | width="394"> | 91 | label="Hide group titles in nametags" left="50" mouse_opaque="true" |
92 | name="show_all_title_checkbox" radio_style="false" width="256" /> | ||
93 | |||
94 | |||
95 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
96 | height="1" left="55" name="border" width="380" /> | ||
97 | |||
98 | |||
99 | <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" h_pad="0" | ||
100 | halign="left" height="10" left="20" name="Display_Names_textbox" v_pad="0" | ||
101 | width="394" font-style="BOLD|SHADOW"> | ||
70 | Display Names: | 102 | Display Names: |
71 | </text> | 103 | </text> |
72 | <radio_group name="displaynames" draw_border="false" | 104 | <radio_group name="displaynames" draw_border="false" |
73 | bottom_delta="0" left_delta="60" height="18" | 105 | bottom_delta="-30" left="50" height="18" |
74 | follows="top|left" | 106 | follows="top|left" |
75 | control_name="DisplayNamesUsage"> | 107 | control_name="DisplayNamesUsage"> |
76 | <radio_item name="0" bottom_delta="-8" left_delta="40" height="18"> | 108 | <radio_item name="0" bottom_delta="-8" left="0" height="18"> |
77 | Legacy Names | 109 | Show legacy names |
78 | </radio_item> | 110 | </radio_item> |
79 | <radio_item name="1" bottom_delta="0" left_delta="50" height="18"> | 111 | <radio_item name="1" bottom_delta="0" left_delta="70" height="18"> |
80 | Display Names | 112 | Show display names |
81 | </radio_item> | 113 | </radio_item> |
82 | <radio_item name="2" bottom_delta="0" left_delta="50" height="18"> | 114 | <radio_item name="2" bottom_delta="0" left_delta="70" height="18"> |
83 | Show Both | 115 | Show Both |
84 | </radio_item> | 116 | </radio_item> |
85 | </radio_group> | 117 | </radio_group> |
86 | <check_box bottom_delta="-20" follows="left|top" control_name="LegacyNamesForFriends" | 118 | <check_box bottom_delta="-17" follows="left|top" control_name="LegacyNamesForFriends" |
87 | font="SansSerifSmall" height="16" initial_value="false" | 119 | font="SansSerifSmall" height="16" initial_value="false" |
88 | label="Show legacy names for friends" left="151" name="legacy_friends_checkbox" | 120 | label="Show legacy names for friends" left="50" name="legacy_friends_checkbox" |
89 | width="200" /> | 121 | width="200" /> |
90 | <text type="string" length="1" bottom_delta="-24" follows="left|top" font="SansSerifSmall" h_pad="0" | 122 | |
91 | halign="left" height="16" left="10" name="group_titles_textbox" v_pad="0" | 123 | |
92 | width="394"> | 124 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
93 | Group Titles: | 125 | height="1" left="55" name="border" width="380" /> |
94 | </text> | 126 | |
95 | <check_box bottom_delta="0" follows="left|top" | 127 | |
96 | font="SansSerifSmall" height="16" initial_value="false" | ||
97 | label="Hide all group titles" left="151" mouse_opaque="true" | ||
98 | name="show_all_title_checkbox" radio_style="false" width="256" /> | ||
99 | <check_box bottom_delta="0" follows="left|top" | ||
100 | font="SansSerifSmall" height="16" initial_value="false" | ||
101 | label="Hide my group title" left="330" name="show_my_title_checkbox" | ||
102 | radio_style="false" width="256" /> | ||
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
104 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
105 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | ||
106 | mouse_opaque="true" name="effects_color_textbox" v_pad="0" width="394"> | ||
107 | Selection Beam Color: | ||
108 | </text> | ||
109 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-44" | ||
110 | can_apply_immediately="false" color="1 1 1 1" | ||
111 | enabled="true" follows="left|top" height="55" label="" left="153" | ||
112 | mouse_opaque="true" name="effect_color_swatch" | ||
113 | tool_tip="Click to open Color Picker" width="45" /> | ||
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 128 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
115 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 129 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
116 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 130 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
117 | mouse_opaque="true" name="UI Size:" v_pad="0" width="128"> | 131 | mouse_opaque="true" name="afk_textbox" v_pad="0" width="394"> |
118 | UI Size: | 132 | Idle Away: |
119 | </text> | 133 | </text> |
120 | <slider bottom_delta="42" can_edit_text="true" | 134 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
121 | decimal_digits="3" enabled="true" height="16" increment="0.001" | 135 | font="SansSerifSmall" height="16" initial_value="false" |
122 | initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true" | 136 | label="Go Away/AFK when idle after" left="50" mouse_opaque="true" |
123 | name="ui_scale_slider" show_text="true" value="1" width="220" /> | 137 | name="afk_timeout_checkbox" radio_style="false" width="256" /> |
124 | <button bottom_delta="-48" enabled="true" follows="left|top" | 138 | <spinner bottom_delta="0" decimal_digits="0" enabled="true" |
125 | font="SansSerif" halign="center" height="22" label="Reset" | 139 | follows="left|top" height="16" increment="1" initial_val="5" |
126 | label_selected="Reset" left_delta="226" mouse_opaque="true" | 140 | label="" label_width="0" left="270" max_val="360" |
127 | name="reset_ui_size" scale_image="true" width="80" /> | 141 | min_val="1" mouse_opaque="true" name="afk_timeout_spinner" width="50" /> |
128 | <check_box bottom_delta="-14" enabled="true" follows="left|top" | ||
129 | font="SansSerifSmall" height="16" initial_value="false" | ||
130 | label="Use resolution independent scale" left="151" mouse_opaque="true" | ||
131 | name="ui_auto_scale" radio_style="false" width="256" /> | ||
132 | <spinner bottom_delta="-24" decimal_digits="0" enabled="true" | ||
133 | follows="left|top" height="16" increment="1" initial_val="300" | ||
134 | label="Away Timeout:" label_width="141" left="10" max_val="600" | ||
135 | min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" /> | ||
136 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
137 | bottom_delta="6" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
138 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="220" | ||
139 | mouse_opaque="true" name="seconds_textbox" v_pad="0" width="128"> | ||
140 | seconds | ||
141 | </text> | ||
142 | <check_box bottom_delta="-5" enabled="true" follows="left|top" | ||
143 | font="SansSerifSmall" height="16" initial_value="false" | ||
144 | label="Go Away/AFK when idle" left="330" mouse_opaque="true" | ||
145 | name="afk_timeout_checkbox" radio_style="false" width="256" /> | ||
146 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 142 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
147 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" | 143 | bottom_delta="5" drop_shadow_visible="true" enabled="true" follows="left|top" |
148 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 144 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="55" |
149 | mouse_opaque="true" name="Mini-Map Notify:" v_pad="0" width="128"> | 145 | mouse_opaque="true" name="minutes_textbox" v_pad="0" width="128"> |
150 | Mini-Map Notify: | 146 | minute(s) |
151 | </text> | 147 | </text> |
152 | <check_box bottom_delta="-4" enabled="true" | 148 | |
153 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 149 | |
154 | label="Entering chat range" left="151" | 150 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
155 | mouse_opaque="true" name="mini_map_notify_chat" radio_style="false" | 151 | height="1" left="55" name="border" width="380" /> |
156 | width="256" /> | 152 | |
157 | <check_box bottom_delta="0" enabled="true" | 153 | |
158 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
159 | label="Entering sim" left="330" | ||
160 | mouse_opaque="true" name="mini_map_notify_sim" radio_style="false" | ||
161 | width="256" /> | ||
162 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 154 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
163 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 155 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
164 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 156 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
165 | mouse_opaque="true" name="maturity_desired_label" v_pad="0" width="394"> | 157 | mouse_opaque="true" name="maturity_desired_label" v_pad="0" width="394"> |
166 | Rating: | 158 | Access Content Rated: |
167 | </text> | ||
168 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
169 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
170 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="151" | ||
171 | mouse_opaque="true" name="maturity_desired_prompt" v_pad="0" width="394"> | ||
172 | I want to access content rated: | ||
173 | </text> | 159 | </text> |
174 | <combo_box bottom_delta="-6" follows="left|top" height="18" left="315" | 160 | <combo_box bottom_delta="-25" follows="left|top" height="18" left="50" |
175 | mouse_opaque="true" name="maturity_desired_combobox" width="150"> | 161 | mouse_opaque="true" name="maturity_desired_combobox" width="160"> |
176 | <combo_item name="Desired_Adult" value="42"> | 162 | <combo_item name="Desired_Adult" value="42"> |
177 | PG, Mature and Adult | 163 | PG, Mature and Adult |
178 | </combo_item> | 164 | </combo_item> |
@@ -185,100 +171,108 @@ | |||
185 | </combo_box> | 171 | </combo_box> |
186 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
187 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | 173 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" |
188 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="315" | 174 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
189 | mouse_opaque="true" name="maturity_desired_textbox" v_pad="0" width="150"> | 175 | mouse_opaque="true" name="maturity_desired_textbox" v_pad="0" width="160"> |
190 | PG only | 176 | PG only |
191 | </text> | 177 | </text> |
192 | 178 | ||
179 | |||
180 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
181 | height="1" left="55" name="border" width="380" /> | ||
182 | |||
193 | 183 | ||
194 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 184 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
195 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 185 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
196 | font="SansSerifSmall" h_pad="0" halign="left" height="18" left="10" | 186 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
197 | mouse_opaque="true" name="time_textbox" v_pad="0" width="394"> | ||
198 | Clock: | ||
199 | </text> | ||
200 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top" | ||
201 | height="18" left="153" max_chars="20" mouse_opaque="true" | ||
202 | name="time_combobox" width="146"> | ||
203 | <combo_item type="string" name="12HourTime" value="PST 12"> | ||
204 | 12-hour PST/PDT | ||
205 | </combo_item> | ||
206 | <combo_item type="string" name="24HourTime" value="PST 24"> | ||
207 | 24-hour PST/PDT | ||
208 | </combo_item> | ||
209 | <combo_item type="string" name="UTCTime" value="UTC"> | ||
210 | UTC | ||
211 | </combo_item> | ||
212 | </combo_box> | ||
213 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
214 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
215 | font="SansSerifSmall" h_pad="0" halign="left" height="18" left="10" | ||
216 | mouse_opaque="true" name="language_textbox" v_pad="0" width="394"> | 187 | mouse_opaque="true" name="language_textbox" v_pad="0" width="394"> |
217 | Language: | 188 | Language: |
218 | </text> | 189 | </text> |
219 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" | 190 | <combo_box allow_text_entry="false" bottom_delta="-30" enabled="true" |
220 | follows="left|top" height="18" left="153" max_chars="135" | 191 | follows="left|top" height="18" left="50" max_chars="135" |
221 | mouse_opaque="true" name="language_combobox" width="146"> | 192 | mouse_opaque="true" name="language_combobox" width="160"> |
222 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | 193 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> |
223 | System Default | 194 | System Default |
224 | </combo_item> | 195 | </combo_item> |
225 | <combo_item type="string" length="1" enabled="true" name="English" value="en-us"> | 196 | <combo_item type="string" length="1" enabled="true" name="English" value="en-us"> |
226 | English | 197 | English |
227 | </combo_item> | 198 | </combo_item> |
228 | 199 | ||
229 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | 200 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> |
230 | 201 | ||
231 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | 202 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> |
232 | Dansk (Danish) - Beta | 203 | Dansk (Danish) - Beta |
233 | </combo_item> | 204 | </combo_item> |
234 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | 205 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> |
235 | Deutsch (German) - Beta | 206 | Deutsch (German) - Beta |
236 | </combo_item> | 207 | </combo_item> |
237 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | 208 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> |
238 | Español (Spanish) - Beta | 209 | Español (Spanish) - Beta |
239 | </combo_item> | 210 | </combo_item> |
240 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | 211 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> |
241 | Français (French) - Beta | 212 | Français (French) - Beta |
242 | </combo_item> | 213 | </combo_item> |
243 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | 214 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> |
244 | Italiano (Italian) - Beta | 215 | Italiano (Italian) - Beta |
245 | </combo_item> | 216 | </combo_item> |
246 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | 217 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> |
247 | Magyar (Hungarian) - Beta | 218 | Magyar (Hungarian) - Beta |
248 | </combo_item> | 219 | </combo_item> |
249 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | 220 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> |
250 | Nederlands (Dutch) - Beta | 221 | Nederlands (Dutch) - Beta |
251 | </combo_item> | 222 | </combo_item> |
252 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | 223 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> |
253 | Polski (Polish) - Beta | 224 | Polski (Polish) - Beta |
254 | </combo_item> | 225 | </combo_item> |
255 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | 226 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> |
256 | Portugués (Portuguese) - Beta | 227 | Portugués (Portuguese) - Beta |
257 | </combo_item> | 228 | </combo_item> |
258 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | 229 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> |
259 | Русский (Russian) - Beta | 230 | Русский (Russian) - Beta |
260 | </combo_item> | 231 | </combo_item> |
261 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | 232 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> |
262 | Türkçe (Turkish) - Beta | 233 | Türkçe (Turkish) - Beta |
263 | </combo_item> | 234 | </combo_item> |
264 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | 235 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> |
265 | Українська (Ukrainian) - Beta | 236 | Українська (Ukrainian) - Beta |
266 | </combo_item> | 237 | </combo_item> |
267 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | 238 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> |
268 | 中文 (简体) (Chinese) - Beta | 239 | 中文 (简体) (Chinese) - Beta |
269 | </combo_item> | 240 | </combo_item> |
270 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | 241 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> |
271 | 日本語 (Japanese) - Beta | 242 | 日本語 (Japanese) - Beta |
272 | </combo_item> | 243 | </combo_item> |
273 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | 244 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> |
274 | 한국어 (Korean) - Beta | 245 | 한국어 (Korean) - Beta |
275 | </combo_item> | 246 | </combo_item> |
276 | </combo_box> | 247 | </combo_box> |
277 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 248 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
278 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 249 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" |
279 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 250 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
280 | height="18" left_delta="150" mouse_opaque="true" name="language_textbox2" | 251 | height="18" left="50" mouse_opaque="true" name="language_textbox2" |
281 | v_pad="0" width="400"> | 252 | v_pad="0" width="380"> |
282 | (requires restart for full effect) | 253 | (requires restart) |
283 | </text> | 254 | </text> |
255 | |||
256 | |||
257 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
258 | bottom_delta="50" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
259 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="270" font-style="BOLD|SHADOW" | ||
260 | mouse_opaque="true" name="time_textbox" v_pad="0" width="394"> | ||
261 | Inworld Clock: | ||
262 | </text> | ||
263 | <combo_box allow_text_entry="false" bottom_delta="-30" enabled="true" follows="left|top" | ||
264 | height="18" left="300" max_chars="20" mouse_opaque="true" | ||
265 | name="time_combobox" width="160"> | ||
266 | <combo_item type="string" name="12HourTime" value="PST 12"> | ||
267 | 12-hour PST/PDT | ||
268 | </combo_item> | ||
269 | <combo_item type="string" name="24HourTime" value="PST 24"> | ||
270 | 24-hour PST/PDT | ||
271 | </combo_item> | ||
272 | <combo_item type="string" name="UTCTime" value="UTC"> | ||
273 | UTC | ||
274 | </combo_item> | ||
275 | </combo_box> | ||
276 | |||
277 | |||
284 | </panel> | 278 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml index 2ed0869..a5d1e7d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml | |||
@@ -1,34 +1,56 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Graphics" left="102" mouse_opaque="true" | 18 | height="408" label="Graphics" left="102" mouse_opaque="true" |
4 | name="Display panel" width="517"> | 19 | name="Display panel" width="517"> |
20 | |||
21 | |||
5 | <button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?" | 22 | <button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?" |
6 | left="470" name="GraphicsPreferencesHelpButton" width="22" /> | 23 | left="470" name="GraphicsPreferencesHelpButton" width="22" /> |
7 | <check_box bottom="-23" enabled="true" follows="left|top" font="SansSerifSmall" | 24 | |
25 | |||
26 | <text type="string" length="1" bottom="-20" follows="left|top" font="SansSerifSmall" h_pad="0" | ||
27 | halign="left" height="10" left="20" name="Display_textbox" v_pad="0" | ||
28 | width="394" font-style="BOLD|SHADOW"> | ||
29 | Display Mode: | ||
30 | </text> | ||
31 | |||
32 | |||
33 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
8 | height="16" initial_value="false" | 34 | height="16" initial_value="false" |
9 | label="Run Imprudence in a window" left="10" mouse_opaque="true" | 35 | tool_tip="If unchecked, viewer will display full-screen when logged in" |
36 | label="Windowed mode" left_delta="30" mouse_opaque="true" | ||
10 | name="windowed mode" radio_style="false" width="100" /> | 37 | name="windowed mode" radio_style="false" width="100" /> |
11 | <check_box bottom_delta="0" enabled="true" follows="left|top" | 38 | |
12 | font="SansSerifSmall" height="16" initial_value="false" | ||
13 | label="Show WindLight toolbar" left="275" mouse_opaque="true" | ||
14 | name="toggle_windlight_control" radio_style="false" width="237" | ||
15 | control_name="EnableWindlightRemote" /> | ||
16 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom="-43" | ||
17 | embedded_items="false" enabled="false" follows="left|top" | ||
18 | font="SansSerifSmall" height="20" hide_border="true" | ||
19 | hide_scrollbar="true" left="10" max_length="65535" mouse_opaque="true" | ||
20 | name="FullScreenInfo" tab_stop="false" width="350" word_wrap="true"> | ||
21 | If unchecked, viewer will display full-screen when logged in. | ||
22 | </text_editor> | ||
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 39 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
24 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | 40 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" |
25 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 41 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" |
26 | mouse_opaque="true" name="WindowSizeLabel" v_pad="0" width="128"> | 42 | mouse_opaque="true" name="WindowSizeLabel" v_pad="0" width="128"> |
27 | Window size: | 43 | Window size: |
28 | </text> | 44 | </text> |
29 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" | 45 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
46 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
47 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
48 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> | ||
49 | Display resolution: | ||
50 | </text> | ||
51 | <combo_box allow_text_entry="false" bottom_delta="-4" enabled="true" follows="left|top" | ||
30 | height="18" left="185" max_chars="20" mouse_opaque="true" | 52 | height="18" left="185" max_chars="20" mouse_opaque="true" |
31 | name="windowsize combo" width="150"> | 53 | name="windowsize combo" width="160"> |
32 | <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600"> | 54 | <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600"> |
33 | 800x600 | 55 | 800x600 |
34 | </combo_item> | 56 | </combo_item> |
@@ -51,25 +73,20 @@ | |||
51 | 1920x1080 (HD1080) | 73 | 1920x1080 (HD1080) |
52 | </combo_item> | 74 | </combo_item> |
53 | </combo_box> | 75 | </combo_box> |
54 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 76 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top" |
55 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
56 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
57 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> | ||
58 | Display resolution: | ||
59 | </text> | ||
60 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" | ||
61 | height="18" left="185" max_chars="20" mouse_opaque="true" | 77 | height="18" left="185" max_chars="20" mouse_opaque="true" |
62 | name="fullscreen combo" width="150" /> | 78 | name="fullscreen combo" width="160" /> |
79 | |||
63 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 80 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
64 | bottom="-39" drop_shadow_visible="true" enabled="true" follows="left|top" | 81 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" |
65 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 82 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
66 | left="10" mouse_opaque="true" name="AspectRatioLabel1" | 83 | left="50" mouse_opaque="true" name="AspectRatioLabel1" |
67 | tool_tip="width / height" v_pad="0" width="160"> | 84 | tool_tip="width / height" v_pad="0" width="160"> |
68 | Aspect ratio: | 85 | Aspect ratio: |
69 | </text> | 86 | </text> |
70 | <combo_box allow_text_entry="true" bottom="-43" enabled="true" follows="left|top" | 87 | <combo_box allow_text_entry="true" bottom_delta="-4" enabled="true" follows="left|top" |
71 | height="16" left="185" max_chars="100" mouse_opaque="true" | 88 | height="16" left="185" max_chars="100" mouse_opaque="true" |
72 | name="aspect_ratio" tool_tip="width / height" width="150"> | 89 | name="aspect_ratio" tool_tip="width / height" width="160"> |
73 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> | 90 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> |
74 | 4:3 (Standard CRT) | 91 | 4:3 (Standard CRT) |
75 | </combo_item> | 92 | </combo_item> |
@@ -83,319 +100,316 @@ | |||
83 | 16:9 (Widescreen) | 100 | 16:9 (Widescreen) |
84 | </combo_item> | 101 | </combo_item> |
85 | </combo_box> | 102 | </combo_box> |
86 | <check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" enabled="true" | 103 | <check_box bottom_delta="-2" control_name="FullScreenAutoDetectAspectRatio" enabled="true" |
87 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 104 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
88 | label="Auto-detect ratio" left="358" mouse_opaque="true" | 105 | label="Auto-detect" left_delta="165" mouse_opaque="true" |
89 | name="aspect_auto_detect" radio_style="false" width="256" /> | 106 | name="aspect_auto_detect" radio_style="false" width="256" /> |
90 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 107 | |
91 | bottom="-85" drop_shadow_visible="true" enabled="true" follows="left|top" | 108 | |
92 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 109 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
93 | left="10" mouse_opaque="true" name="HigherText" v_pad="0" width="80"> | 110 | height="1" left="55" name="border" width="380" /> |
94 | Quality and | 111 | |
95 | </text> | 112 | |
96 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 113 | <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" h_pad="0" |
97 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | 114 | halign="left" height="10" left="20" name="textbox" v_pad="0" |
98 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 115 | width="394" font-style="BOLD|SHADOW"> |
99 | height="12" left_delta="0" mouse_opaque="true" | 116 | Performance |
100 | name="QualityText" v_pad="0" width="95"> | 117 | </text> |
101 | performance: | 118 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
102 | </text> | 119 | bottom_delta="-22" drop_shadow_visible="true" enabled="true" follows="left|top" |
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
104 | bottom="-86" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
105 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
106 | left="115" mouse_opaque="true" name="FasterText" v_pad="0" width="80"> | ||
107 | Faster | ||
108 | </text> | ||
109 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
110 | bottom="-105" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
111 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 120 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
112 | left="158" mouse_opaque="true" name="ShadersPrefText" v_pad="0" width="40"> | 121 | left="110" mouse_opaque="true" name="ShadersPrefText" v_pad="0" width="40"> |
113 | Low | 122 | Low |
114 | </text> | 123 | </text> |
115 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 124 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
116 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 125 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
117 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 126 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
118 | height="12" left_delta="47" mouse_opaque="true" | 127 | height="12" left_delta="62" mouse_opaque="true" |
119 | name="ShadersPrefText2" v_pad="0" width="40"> | 128 | name="ShadersPrefText2" v_pad="0" width="40"> |
120 | Mid | 129 | Mid |
121 | </text> | 130 | </text> |
122 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 131 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
123 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 132 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
124 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 133 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
125 | height="12" left_delta="47" mouse_opaque="true" | 134 | height="12" left_delta="62" mouse_opaque="true" |
126 | name="ShadersPrefText3" v_pad="0" width="40"> | 135 | name="ShadersPrefText3" v_pad="0" width="40"> |
127 | High | 136 | High |
128 | </text> | 137 | </text> |
129 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 138 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
130 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 139 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
131 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 140 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
132 | height="12" left_delta="47" mouse_opaque="true" | 141 | height="12" left_delta="62" mouse_opaque="true" |
133 | name="ShadersPrefText4" v_pad="0" width="40"> | 142 | name="ShadersPrefText4" v_pad="0" width="40"> |
134 | Ultra | 143 | Ultra |
135 | </text> | 144 | </text> |
136 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 145 | <icon bottom_delta="18" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
137 | bottom="-80" drop_shadow_visible="true" enabled="true" follows="left|top" | 146 | image_name="rounded_square.tga" left="123" name="LowGraphicsDivet" |
138 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
139 | left="334" mouse_opaque="true" name="HigherText2" v_pad="0" width="80"> | ||
140 | Higher | ||
141 | </text> | ||
142 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
143 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | ||
144 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
145 | height="12" left_delta="0" mouse_opaque="true" | ||
146 | name="QualityText2" v_pad="0" width="95"> | ||
147 | Quality | ||
148 | </text> | ||
149 | <icon bottom="-89" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | ||
150 | image_name="rounded_square.tga" left="173" name="LowGraphicsDivet" | ||
151 | width="2" /> | 147 | width="2" /> |
152 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 148 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
153 | image_name="rounded_square.tga" left_delta="44" name="MidGraphicsDivet" | 149 | image_name="rounded_square.tga" left_delta="60" name="MidGraphicsDivet" |
154 | width="2" /> | 150 | width="2" /> |
155 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 151 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
156 | image_name="rounded_square.tga" left_delta="44" name="HighGraphicsDivet" | 152 | image_name="rounded_square.tga" left_delta="61" name="HighGraphicsDivet" |
157 | width="2" /> | 153 | width="2" /> |
158 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 154 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
159 | image_name="rounded_square.tga" left_delta="44" name="UltraGraphicsDivet" | 155 | image_name="rounded_square.tga" left_delta="61" name="UltraGraphicsDivet" |
160 | width="2" /> | 156 | width="2" /> |
161 | <slider bottom="-90" can_edit_text="false" control_name="RenderQualityPerformance" | 157 | <slider bottom_delta="0" can_edit_text="false" control_name="RenderQualityPerformance" |
162 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 158 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
163 | increment="1" initial_val="0" label="" label_width="0" | 159 | increment="1" initial_val="0" label="" label_width="0" |
164 | left="165" max_val="3" min_val="0" mouse_opaque="true" | 160 | left="115" max_val="3" min_val="0" mouse_opaque="true" |
165 | name="QualityPerformanceSelection" show_text="false" width="150" /> | 161 | name="QualityPerformanceSelection" show_text="false" width="200" /> |
166 | <check_box bottom="-91" control_name="RenderCustomSettings" enabled="true" | 162 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
163 | bottom_delta="2" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
164 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
165 | left="340" mouse_opaque="true" name="HigherText2" v_pad="0" width="200"> | ||
166 | Graphics Quality | ||
167 | </text> | ||
168 | |||
169 | |||
170 | <check_box bottom_delta="-50" control_name="RenderCustomSettings" enabled="true" | ||
167 | follows="left|top" font="SansSerifSmall" height="16" | 171 | follows="left|top" font="SansSerifSmall" height="16" |
168 | initial_value="true" label="Custom" left="385" mouse_opaque="true" | 172 | initial_value="true" label="Advanced options" left="50" mouse_opaque="true" |
169 | name="CustomSettings" radio_style="false" width="256" /> | 173 | name="CustomSettings" radio_style="false" width="256" /> |
170 | <view_border bevel_style="none" border_thickness="1" bottom="-415" follows="left|top" | 174 | |
171 | height="300" left="5" name="GraphicsBorder" width="485" /> | 175 | <button bottom_delta="0" enabled="true" font="SansSerifSmall" halign="center" height="20" |
172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 176 | label="Recommended Settings" left="210" mouse_opaque="true" |
173 | bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top" | 177 | name="Defaults" scale_image="true" width="160" follows="left|top" /> |
174 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 178 | <button bottom_delta="0" enabled="true" font="SansSerifSmall" halign="center" height="20" |
179 | label="Hardware" | ||
180 | left_delta="165" mouse_opaque="true" name="GraphicsHardwareButton" | ||
181 | scale_image="true" width="110" follows="left|top" /> | ||
182 | |||
183 | |||
184 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
185 | bottom_delta="-15" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
186 | font="SansSerifSmall" h_pad="0" halign="left" height="10" | ||
175 | left="10" mouse_opaque="true" name="ShadersText" v_pad="0" width="128"> | 187 | left="10" mouse_opaque="true" name="ShadersText" v_pad="0" width="128"> |
176 | Shaders: | 188 | Shaders: |
177 | </text> | 189 | </text> |
178 | <check_box bottom="-153" control_name="RenderObjectBump" enabled="true" follows="left|top" | 190 | <check_box bottom_delta="-23" control_name="RenderObjectBump" enabled="true" follows="left|top" |
179 | font="SansSerifSmall" height="16" initial_value="true" | 191 | font="SansSerifSmall" height="16" initial_value="true" |
180 | label="Bump mapping and shiny" left="10" mouse_opaque="true" | 192 | label="Bump mapping and shiny" left_delta="10" mouse_opaque="true" |
181 | name="BumpShiny" radio_style="false" width="256" /> | 193 | name="BumpShiny" radio_style="false" width="256" /> |
182 | <check_box bottom_delta="-17" control_name="VertexShaderEnable" enabled="true" | 194 | <check_box bottom_delta="-18" control_name="VertexShaderEnable" enabled="true" |
183 | follows="left|top" font="SansSerifSmall" height="16" | 195 | follows="left|top" font="SansSerifSmall" height="16" |
184 | initial_value="true" label="Basic shaders" left_delta="0" | 196 | initial_value="true" label="Basic shaders" left_delta="0" |
185 | mouse_opaque="true" name="BasicShaders" radio_style="false" | 197 | mouse_opaque="true" name="BasicShaders" radio_style="false" |
186 | tool_tip="Disabling this option may prevent some graphics card drivers from crashing." | 198 | tool_tip="Disabling this option may prevent some graphics card drivers from crashing." |
187 | width="315" /> | 199 | width="315" /> |
188 | <check_box bottom_delta="-17" control_name="WindLightUseAtmosShaders" enabled="true" | 200 | <check_box bottom_delta="-18" control_name="WindLightUseAtmosShaders" enabled="true" |
189 | follows="left|top" font="SansSerifSmall" height="16" | 201 | follows="left|top" font="SansSerifSmall" height="16" |
190 | initial_value="true" label="Atmospheric shaders" left_delta="0" | 202 | initial_value="true" label="Atmospheric shaders" left_delta="0" |
191 | mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false" | 203 | mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false" |
192 | width="256" /> | 204 | width="256" /> |
193 | <check_box bottom_delta="-17" control_name="RenderWaterReflections" enabled="true" | 205 | <check_box bottom_delta="-18" control_name="RenderWaterReflections" enabled="true" |
194 | follows="left|top" font="SansSerifSmall" height="16" | 206 | follows="left|top" font="SansSerifSmall" height="16" |
195 | initial_value="true" label="Water reflections" left_delta="0" | 207 | initial_value="true" label="Water reflections" left_delta="0" |
196 | mouse_opaque="true" name="Reflections" radio_style="false" width="256" /> | 208 | mouse_opaque="true" name="Reflections" radio_style="false" width="256" /> |
197 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 209 | |
198 | bottom="-223" drop_shadow_visible="true" enabled="true" follows="left|top" | 210 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
199 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 211 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
200 | left="10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0" | 212 | font="SansSerifSmall" h_pad="0" halign="left" height="10" |
213 | left_delta="-10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0" | ||
201 | width="128"> | 214 | width="128"> |
202 | Reflection Detail: | 215 | Water Reflections: |
203 | </text> | 216 | </text> |
204 | <radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false" | 217 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" |
205 | enabled="true" follows="left|top" height="70" | 218 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderReflectionDetail" |
206 | left_delta="-2" mouse_opaque="true" name="ReflectionDetailRadio" | 219 | name="ReflectionDetailCombo" width="160"> |
207 | width="321"> | 220 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> |
208 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | 221 | Terrain and trees |
209 | left="3" mouse_opaque="true" name="0" width="315"> | 222 | </combo_item> |
210 | Terrain and trees | 223 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
211 | </radio_item> | 224 | All static objects |
212 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | 225 | </combo_item> |
213 | left="3" mouse_opaque="true" name="1" width="315"> | 226 | <combo_item type="string" length="1" enabled="true" name="2" value="2"> |
214 | All static objects | 227 | All avatars and objects |
215 | </radio_item> | 228 | </combo_item> |
216 | <radio_item type="string" length="1" bottom="-51" enabled="true" follows="left|top" height="16" | 229 | <combo_item type="string" length="1" enabled="true" name="3" value="3"> |
217 | left="3" mouse_opaque="true" name="2" width="315"> | 230 | Everything |
218 | All avatars and objects | 231 | </combo_item> |
219 | </radio_item> | 232 | </combo_box> |
220 | <radio_item type="string" length="1" bottom="-67" enabled="true" follows="left|top" height="16" | 233 | |
221 | left="3" mouse_opaque="true" name="3" width="315"> | 234 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
222 | Everything | 235 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
223 | </radio_item> | 236 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="-10" |
224 | </radio_group> | ||
225 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
226 | bottom="-313" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
227 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
228 | mouse_opaque="true" name="AvatarRenderingText" v_pad="0" width="128"> | 237 | mouse_opaque="true" name="AvatarRenderingText" v_pad="0" width="128"> |
229 | Avatar Rendering: | 238 | Avatar Rendering: |
230 | </text> | 239 | </text> |
231 | <check_box bottom_delta="-23" control_name="RenderUseImpostors" enabled="true" | 240 | <check_box bottom_delta="-23" control_name="RenderUseImpostors" enabled="true" |
232 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 241 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
233 | label="Avatar impostors" left_delta="0" mouse_opaque="true" | 242 | label="Avatar impostors" left_delta="10" mouse_opaque="true" |
234 | name="AvatarImpostors" radio_style="false" width="256" /> | 243 | name="AvatarImpostors" radio_style="false" width="256" /> |
235 | <check_box bottom_delta="-17" control_name="RenderAvatarVP" enabled="true" | 244 | <check_box bottom_delta="-18" control_name="RenderAvatarVP" enabled="true" |
236 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 245 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
237 | label="Hardware skinning" left_delta="0" mouse_opaque="true" | 246 | label="Hardware skinning" left_delta="0" mouse_opaque="true" |
238 | name="AvatarVertexProgram" radio_style="false" width="256" /> | 247 | name="AvatarVertexProgram" radio_style="false" width="256" /> |
239 | <check_box bottom_delta="-17" control_name="RenderAvatarCloth" enabled="true" | 248 | <check_box bottom_delta="-18" control_name="RenderAvatarCloth" enabled="true" |
240 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 249 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
241 | label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth" | 250 | label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth" |
242 | radio_style="false" width="256" /> | 251 | radio_style="false" width="256" /> |
252 | |||
253 | |||
254 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
255 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
256 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="-10" | ||
257 | mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128"> | ||
258 | Terrain Detail: | ||
259 | </text> | ||
260 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" | ||
261 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderTerrainDetail" | ||
262 | name="TerrainDetailCombo" width="160"> | ||
263 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> | ||
264 | Low | ||
265 | </combo_item> | ||
266 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> | ||
267 | High | ||
268 | </combo_item> | ||
269 | </combo_box> | ||
270 | |||
271 | |||
243 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 272 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
244 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 273 | bottom="-190" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
245 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left_delta="0" | 274 | font="SansSerifSmall" h_pad="0" halign="left" height="10" |
246 | mouse_opaque="true" name="AvatarCountText" v_pad="0" width="128"> | 275 | left="210" mouse_opaque="true" name="LimitsText" v_pad="0" width="128"> |
247 | Max. non-imposters: | 276 | Limits: |
248 | </text> | 277 | </text> |
249 | <slider bottom_delta="-20" can_edit_text="true" control_name="RenderAvatarMaxVisible" | 278 | <slider bottom_delta="-23" can_edit_text="true" control_name="RenderFarClip" |
250 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
251 | increment="1" initial_val="35" label="" | ||
252 | label_width="0" left_delta="0" max_val="50" min_val="0" mouse_opaque="true" | ||
253 | name="AvatarMaxVisible" show_text="true" width="100" /> | ||
254 | <slider bottom="-135" can_edit_text="true" control_name="RenderFarClip" | ||
255 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 279 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
256 | increment="4" initial_val="160" label="Draw distance (meters):" | 280 | increment="4" initial_val="160" label="Draw distance (meters):" |
257 | label_width="140" left="215" max_val="1024" min_val="32" mouse_opaque="true" | 281 | label_width="140" left_delta="10" max_val="1024" min_val="32" mouse_opaque="true" |
258 | name="DrawDistance" show_text="true" width="262" /> | 282 | name="DrawDistance" show_text="true" width="262" /> |
259 | <slider bottom_delta="-20" can_edit_text="true" control_name="RenderMaxPartCount" | 283 | <slider bottom_delta="-18" can_edit_text="true" control_name="RenderMaxPartCount" |
260 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 284 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
261 | increment="256" initial_val="4096" | 285 | increment="256" initial_val="4096" |
262 | label="Max. particle count:" label_width="140" left_delta="0" | 286 | label="Max. particle count:" label_width="140" left_delta="0" |
263 | max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount" | 287 | max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount" |
264 | show_text="true" width="262" /> | 288 | show_text="true" width="262" /> |
265 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderGlowResolutionPow" | 289 | <slider bottom_delta="-18" can_edit_text="true" control_name="RenderAvatarMaxVisible" |
290 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
291 | increment="1" initial_val="35" label="Max. non-imposters:" | ||
292 | label_width="140" left_delta="0" max_val="50" min_val="0" mouse_opaque="true" | ||
293 | name="AvatarMaxVisible" show_text="true" width="250" /> | ||
294 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderGlowResolutionPow" | ||
266 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 295 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
267 | increment="1" initial_val="8" label="Post process quality:" | 296 | increment="1" initial_val="8" label="Post process quality:" |
268 | label_width="140" left_delta="0" max_val="9" min_val="8" | 297 | label_width="140" left_delta="0" max_val="9" min_val="8" |
269 | mouse_opaque="true" name="RenderPostProcess" show_text="false" width="223" /> | 298 | mouse_opaque="true" name="RenderPostProcess" show_text="false" width="223" /> |
270 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 299 | |
271 | bottom_delta="-17" drop_shadow_visible="true" enabled="true" | 300 | |
301 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
302 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
272 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 303 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
273 | height="12" left="215" mouse_opaque="true" name="MeshDetailText" v_pad="0" | 304 | height="12" left_delta="0" mouse_opaque="true" name="MeshDetailText" v_pad="0" |
274 | width="128"> | 305 | width="128"> |
275 | Mesh Detail: | 306 | Mesh Detail: |
276 | </text> | 307 | </text> |
277 | <slider bottom_delta="-22" can_edit_text="false" control_name="RenderVolumeLODFactor" | 308 | <slider bottom_delta="-23" can_edit_text="false" control_name="RenderVolumeLODFactor" |
278 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 309 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
279 | increment="0.125" initial_val="160" label=" Objects:" | 310 | increment="0.125" initial_val="160" label=" Objects:" |
280 | label_width="140" left_delta="0" max_val="4" min_val="0" | 311 | label_width="140" left_delta="0" max_val="4" min_val="0" |
281 | mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" /> | 312 | mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" /> |
282 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderFlexTimeFactor" | 313 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderFlexTimeFactor" |
283 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 314 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
284 | increment="0.1" initial_val="160" label=" Flexiprims:" | 315 | increment="0.1" initial_val="160" label=" Flexiprims:" |
285 | label_width="140" left_delta="0" max_val="1" min_val="0" | 316 | label_width="140" left_delta="0" max_val="1" min_val="0" |
286 | mouse_opaque="true" name="FlexibleMeshDetail" show_text="false" width="223" /> | 317 | mouse_opaque="true" name="FlexibleMeshDetail" show_text="false" width="223" /> |
287 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderTreeLODFactor" | 318 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderTreeLODFactor" |
288 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 319 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
289 | increment="0.125" initial_val="160" label=" Trees:" | 320 | increment="0.125" initial_val="160" label=" Trees:" |
290 | label_width="140" left_delta="0" max_val="1" min_val="0" | 321 | label_width="140" left_delta="0" max_val="1" min_val="0" |
291 | mouse_opaque="true" name="TreeMeshDetail" show_text="false" width="223" /> | 322 | mouse_opaque="true" name="TreeMeshDetail" show_text="false" width="223" /> |
292 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderAvatarLODFactor" | 323 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderAvatarLODFactor" |
293 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 324 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
294 | increment="0.125" initial_val="160" label=" Avatars:" | 325 | increment="0.125" initial_val="160" label=" Avatars:" |
295 | label_width="140" left_delta="0" max_val="1" min_val="0" | 326 | label_width="140" left_delta="0" max_val="1" min_val="0" |
296 | mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" /> | 327 | mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" /> |
297 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderTerrainLODFactor" | 328 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderTerrainLODFactor" |
298 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 329 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
299 | increment="0.125" initial_val="160" label=" Terrain:" | 330 | increment="0.125" initial_val="160" label=" Terrain:" |
300 | label_width="140" left_delta="0" max_val="2" min_val="1" | 331 | label_width="140" left_delta="0" max_val="2" min_val="1" |
301 | mouse_opaque="true" name="TerrainMeshDetail" show_text="false" width="223" /> | 332 | mouse_opaque="true" name="TerrainMeshDetail" show_text="false" width="223" /> |
302 | <slider bottom_delta="-20" can_edit_text="false" control_name="WLSkyDetail" | 333 | <slider bottom_delta="-18" can_edit_text="false" control_name="WLSkyDetail" |
303 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 334 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
304 | increment="8" initial_val="160" label=" Sky:" | 335 | increment="8" initial_val="160" label=" Sky:" |
305 | label_width="140" left_delta="0" max_val="128" min_val="16" | 336 | label_width="140" left_delta="0" max_val="128" min_val="16" |
306 | mouse_opaque="true" name="SkyMeshDetail" show_text="false" width="223" /> | 337 | mouse_opaque="true" name="SkyMeshDetail" show_text="false" width="223" /> |
307 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 338 | |
308 | bottom="-172" drop_shadow_visible="true" enabled="true" follows="left|top" | 339 | |
340 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
341 | bottom="-266" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
309 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 342 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
310 | left="444" mouse_opaque="true" name="PostProcessText" v_pad="0" width="128"> | 343 | left="444" mouse_opaque="true" name="PostProcessText" v_pad="0" width="128"> |
311 | Low | 344 | Low |
312 | </text> | 345 | </text> |
313 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 346 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
314 | bottom="-210" drop_shadow_visible="true" enabled="true" follows="left|top" | 347 | bottom_delta="-44" drop_shadow_visible="true" enabled="true" follows="left|top" |
315 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 348 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
316 | left="444" mouse_opaque="true" name="ObjectMeshDetailText" v_pad="0" | 349 | left="444" mouse_opaque="true" name="ObjectMeshDetailText" v_pad="0" |
317 | width="128"> | 350 | width="128"> |
318 | Low | 351 | Low |
319 | </text> | 352 | </text> |
320 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 353 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
321 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 354 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
322 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 355 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
323 | height="12" left_delta="0" mouse_opaque="true" | 356 | height="12" left_delta="0" mouse_opaque="true" |
324 | name="FlexibleMeshDetailText" v_pad="0" width="128"> | 357 | name="FlexibleMeshDetailText" v_pad="0" width="128"> |
325 | Low | 358 | Low |
326 | </text> | 359 | </text> |
327 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 360 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
328 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 361 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
329 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 362 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
330 | height="12" left_delta="0" mouse_opaque="true" | 363 | height="12" left_delta="0" mouse_opaque="true" |
331 | name="TreeMeshDetailText" v_pad="0" width="128"> | 364 | name="TreeMeshDetailText" v_pad="0" width="128"> |
332 | Low | 365 | Low |
333 | </text> | 366 | </text> |
334 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 367 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
335 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 368 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
336 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 369 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
337 | height="12" left_delta="0" mouse_opaque="true" | 370 | height="12" left_delta="0" mouse_opaque="true" |
338 | name="AvatarMeshDetailText" v_pad="0" width="128"> | 371 | name="AvatarMeshDetailText" v_pad="0" width="128"> |
339 | Low | 372 | Low |
340 | </text> | 373 | </text> |
341 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 374 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
342 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 375 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
343 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 376 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
344 | height="12" left_delta="0" mouse_opaque="true" | 377 | height="12" left_delta="0" mouse_opaque="true" |
345 | name="TerrainMeshDetailText" v_pad="0" width="128"> | 378 | name="TerrainMeshDetailText" v_pad="0" width="128"> |
346 | Low | 379 | Low |
347 | </text> | 380 | </text> |
348 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 381 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
349 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 382 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
350 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 383 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
351 | height="12" left_delta="0" mouse_opaque="true" | 384 | height="12" left_delta="0" mouse_opaque="true" |
352 | name="SkyMeshDetailText" v_pad="0" width="128"> | 385 | name="SkyMeshDetailText" v_pad="0" width="128"> |
353 | Low | 386 | Low |
354 | </text> | 387 | </text> |
355 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 388 | |
356 | bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top" | 389 | |
390 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
391 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
357 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 392 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
358 | left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0" | 393 | left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0" |
359 | width="128"> | 394 | width="128"> |
360 | Lighting Detail: | 395 | Lighting Detail: |
361 | </text> | 396 | </text> |
362 | <radio_group bottom_delta="-43" control_name="RenderLightingDetail" draw_border="false" | 397 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" |
363 | enabled="true" follows="left|top" height="38" left_delta="0" | 398 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderLightingDetail" |
364 | mouse_opaque="true" name="LightingDetailRadio" width="321"> | 399 | name="LightingDetailCombo" width="160"> |
365 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | 400 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> |
366 | left="3" mouse_opaque="true" name="SunMoon" width="156"> | 401 | Sun and moon only |
367 | Sun and moon only | 402 | </combo_item> |
368 | </radio_item> | 403 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
369 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | 404 | Nearby local lights |
370 | left="3" mouse_opaque="true" name="LocalLights" width="156"> | 405 | </combo_item> |
371 | Nearby local lights | 406 | </combo_box> |
372 | </radio_item> | 407 | |
373 | </radio_group> | 408 | |
374 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 409 | <view_border bevel_style="none" border_thickness="1" bottom="-448" follows="left|top" |
375 | bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top" | 410 | height="271" left="5" name="GraphicsBorder" width="488" /> |
376 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="360" | 411 | |
377 | mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128"> | 412 | |
378 | Terrain Detail: | ||
379 | </text> | ||
380 | <radio_group bottom_delta="-43" control_name="RenderTerrainDetail" draw_border="false" | ||
381 | enabled="true" follows="left|top" height="38" left_delta="0" | ||
382 | mouse_opaque="true" name="TerrainDetailRadio" width="321"> | ||
383 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | ||
384 | left="3" mouse_opaque="true" name="0" width="315"> | ||
385 | Low | ||
386 | </radio_item> | ||
387 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | ||
388 | left="3" mouse_opaque="true" name="2" width="315"> | ||
389 | High | ||
390 | </radio_item> | ||
391 | </radio_group> | ||
392 | <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20" | ||
393 | label="Recommended Settings" left="130" mouse_opaque="true" | ||
394 | name="Defaults" scale_image="true" width="170" follows="left|bottom" /> | ||
395 | <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20" | ||
396 | label="Hardware Options" label_selected="Hardware Options" | ||
397 | left="310" mouse_opaque="true" name="GraphicsHardwareButton" | ||
398 | scale_image="true" width="170" follows="left|bottom" /> | ||
399 | <string name="resolution_format"> | 413 | <string name="resolution_format"> |
400 | [RES_X] x [RES_Y] | 414 | [RES_X] x [RES_Y] |
401 | </string> | 415 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml index fe17e7a..dd3e183 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml | |||
@@ -1,114 +1,108 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="IMs & Logging" left="102" mouse_opaque="true" name="im" | 18 | height="408" label="Logging & Privacy" left="102" mouse_opaque="true" name="im" |
4 | width="517"> | 19 | width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | 25 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> |
9 | My Online Status: | 26 | Logging: |
10 | </text> | 27 | </text> |
11 | <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" | 28 | |
12 | height="16" initial_value="false" | 29 | <check_box bottom_delta="-25" enabled="true" |
13 | label="Only my Friends and Groups can see when I am online" | ||
14 | left="148" mouse_opaque="true" name="online_visibility" radio_style="false" | ||
15 | width="350" /> | ||
16 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
17 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
18 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
19 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> | ||
20 | IM Options: | ||
21 | </text> | ||
22 | <string name="log_in_to_change"> | ||
23 | log in to change | ||
24 | </string> | ||
25 | <string name="default_email_used"> | ||
26 | using default address | ||
27 | </string> | ||
28 | <check_box bottom="-45" enabled="true" follows="left|top" font="SansSerifSmall" | ||
29 | height="16" initial_value="false" label="Send IM to email ([EMAIL])" | ||
30 | left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false" | ||
31 | width="350" /> | ||
32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
33 | bottom="-59" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
34 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | ||
35 | mouse_opaque="false" name="show_ims_label" v_pad="0" width="100"> | ||
36 | Show IMs in: | ||
37 | </text> | ||
38 | <check_box bottom="-65" enabled="true" follows="left|top" | ||
39 | font="SansSerifSmall" height="16" initial_value="false" | ||
40 | label="Main chat" left="248" mouse_opaque="true" | ||
41 | name="include_im_in_chat_console" radio_style="false" width="100" /> | ||
42 | <check_box bottom="-65" enabled="true" follows="left|top" | ||
43 | font="SansSerifSmall" height="16" initial_value="false" | ||
44 | label="Local Chat window" left="348" mouse_opaque="true" | ||
45 | name="include_im_in_chat_history" radio_style="false" width="100" /> | ||
46 | <check_box bottom="-85" enabled="true" follows="left|top" | ||
47 | font="SansSerifSmall" height="16" initial_value="false" | ||
48 | label="Show timestamps in IM" left="148" mouse_opaque="true" | ||
49 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
50 | <check_box bottom="-105" enabled="true" | ||
51 | follows="left|top" font="SansSerifSmall" height="16" | 30 | follows="left|top" font="SansSerifSmall" height="16" |
52 | initial_value="false" label="Show online Friend notifications" left="148" | 31 | initial_value="false" label="Save a log of IM on my computer" left_delta="30" |
53 | mouse_opaque="true" name="friends_online_notify_checkbox" | 32 | mouse_opaque="true" name="log_instant_messages" radio_style="false" |
54 | radio_style="false" width="256" /> | 33 | width="237" /> |
55 | <check_box bottom_delta="-20" enabled="true" | ||
56 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
57 | label="Vertical IM tabs (requires restart)" left_delta="0" mouse_opaque="true" | ||
58 | name="vertical-imtabs-toggle" radio_style="false" width="270" /> | ||
59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
62 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
63 | Busy Mode Response: | ||
64 | </text> | ||
65 | <text_editor type="string" length="1" bottom_delta="-60" embedded_items="false" enabled="true" follows="left|top" | ||
66 | font="SansSerifSmall" height="70" left="148" max_length="255" | ||
67 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" spell_check="true" /> | ||
68 | <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" | ||
69 | left="164" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" | ||
70 | width="180" /> | ||
71 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
72 | bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
73 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
74 | mouse_opaque="false" name="text_box4" v_pad="0" width="128"> | ||
75 | Logging Options: | ||
76 | </text> | ||
77 | <check_box bottom_delta="-7" enabled="true" | ||
78 | follows="left|top" font="SansSerifSmall" height="16" | ||
79 | initial_value="false" label="Save a log of IM on my computer" left="148" | ||
80 | mouse_opaque="true" name="log_instant_messages" radio_style="false" | ||
81 | width="237" /> | ||
82 | <check_box bottom_delta="-20" enabled="true" | 34 | <check_box bottom_delta="-20" enabled="true" |
83 | follows="left|top" font="SansSerifSmall" height="16" | 35 | follows="left|top" font="SansSerifSmall" height="16" |
84 | initial_value="false" label="Show timestamps in IM log" left="168" | 36 | initial_value="false" label="Show timestamps in IM log" left_delta="30" |
85 | mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" | 37 | mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" |
86 | width="217" /> | 38 | width="217" /> |
87 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 39 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
88 | font="SansSerifSmall" height="16" initial_value="false" | 40 | font="SansSerifSmall" height="16" initial_value="false" |
89 | label="Show the end of last IM conversation" left="168" mouse_opaque="true" | 41 | label="Show the end of last IM conversation" left_delta="0" mouse_opaque="true" |
90 | name="log_show_history" radio_style="false" width="217" /> | 42 | name="log_show_history" radio_style="false" width="217" /> |
91 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 43 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
92 | font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" | 44 | font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" |
93 | left="148" mouse_opaque="true" name="log_chat" radio_style="false" | 45 | left_delta="-30" mouse_opaque="true" name="log_chat" radio_style="false" |
94 | width="237" /> | 46 | width="237" /> |
95 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 47 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
96 | font="SansSerifSmall" height="16" initial_value="false" | 48 | font="SansSerifSmall" height="16" initial_value="false" |
97 | label="Show timestamps in Local Chat log" left="168" mouse_opaque="true" | 49 | label="Show timestamps in Local Chat log" left_delta="30" mouse_opaque="true" |
98 | name="log_chat_timestamp" radio_style="false" width="217" /> | 50 | name="log_chat_timestamp" radio_style="false" width="217" /> |
99 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 51 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
100 | font="SansSerifSmall" height="16" initial_value="false" | 52 | font="SansSerifSmall" height="16" initial_value="false" |
101 | label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true" | 53 | label="Show incoming IM in Local Chat log" left_delta="0" mouse_opaque="true" |
102 | name="log_chat_IM" radio_style="false" width="217" /> | 54 | name="log_chat_IM" radio_style="false" width="217" /> |
103 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 55 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
104 | font="SansSerifSmall" height="16" initial_value="false" | 56 | font="SansSerifSmall" height="16" initial_value="false" |
105 | label="Include date with timestamps" left="148" mouse_opaque="true" | 57 | label="Include date with timestamps" left_delta="-30" mouse_opaque="true" |
106 | name="log_date_timestamp" radio_style="false" width="237" /> | 58 | name="log_date_timestamp" radio_style="false" width="237" /> |
107 | <button bottom_delta="-22" follows="left|top" font="SansSerif" halign="center" | 59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
108 | height="20" label="Change Path" label_selected="Change Path" left="148" | 60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
109 | mouse_opaque="true" name="log_path_button" width="96" /> | 61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" |
110 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="1" | 62 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> |
111 | drop_shadow_visible="true" enabled="false" follows="top|left|right" | 63 | Log location: |
112 | font="SansSerifSmall" halign="right" height="19" left="248" | 64 | </text> |
113 | max_length="254" mouse_opaque="false" name="log_path_string" right="-20" /> | 65 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="-25" |
66 | drop_shadow_visible="true" enabled="false" follows="top|left|right" width="395" | ||
67 | font="SansSerifSmall" halign="right" height="19" left_delta="0" | ||
68 | max_length="254" mouse_opaque="false" name="log_path_string" /> | ||
69 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" halign="center" | ||
70 | height="20" label="Change Location" label_selected="Change Path" left_delta="0" | ||
71 | mouse_opaque="true" name="log_path_button" width="160" /> | ||
72 | |||
73 | |||
74 | |||
75 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
76 | height="1" left="55" name="border" width="380" /> | ||
77 | |||
78 | |||
79 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
80 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
81 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
82 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | ||
83 | Privacy: | ||
84 | </text> | ||
85 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
86 | height="16" initial_value="false" | ||
87 | label="Only my Friends and Groups can see when I am online" | ||
88 | left_delta="30" mouse_opaque="true" name="online_visibility" radio_style="false" | ||
89 | width="350" /> | ||
90 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
91 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
92 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
93 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
94 | Busy Mode Response: | ||
95 | </text> | ||
96 | <text_editor type="string" length="1" bottom_delta="-75" embedded_items="false" enabled="true" follows="left|top" | ||
97 | font="SansSerifSmall" height="70" left_delta="0" max_length="255" | ||
98 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" spell_check="true" /> | ||
99 | <button bottom_delta="-30" follows="top|left" height="20" label="Auto-Response Options" | ||
100 | left_delta="0" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" | ||
101 | width="160" font="SansSerifSmall" /> | ||
102 | |||
103 | <string name="log_in_to_change"> | ||
104 | log in to change | ||
105 | </string> | ||
106 | |||
107 | |||
114 | </panel> | 108 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml index 70c8464..5713933 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml | |||
@@ -1,152 +1,180 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Input & Camera" left="102" mouse_opaque="true" | 18 | height="408" label="Input & Camera" left="102" mouse_opaque="true" |
4 | name="Input panel" width="517"> | 19 | name="Input panel" width="517"> |
20 | |||
21 | |||
22 | <text name="double_click_action_label" font-style="BOLD|SHADOW" | ||
23 | bottom="-26" left="20" height="16" width="200" | ||
24 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
25 | Double-Click Action: | ||
26 | </text> | ||
27 | |||
28 | <combo_box name="double_click_action" | ||
29 | bottom_delta="-25" left_delta="30" height="18" width="160" | ||
30 | follows="left|top" mouse_opaque="true"> | ||
31 | <combo_item name="None" value="None"> | ||
32 | No action | ||
33 | </combo_item> | ||
34 | <combo_item name="Go" value="Go"> | ||
35 | Autopilot | ||
36 | </combo_item> | ||
37 | </combo_box> | ||
38 | |||
39 | <text name="go_action_label" | ||
40 | bottom_delta="-25" left_delta="0" height="18" width="200" | ||
41 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
42 | Autopilot: | ||
43 | </text> | ||
44 | |||
45 | <combo_box name="go_action" | ||
46 | bottom_delta="0" left_delta="70" height="18" width="90" | ||
47 | follows="left|top" mouse_opaque="true"> | ||
48 | <combo_item name="Move" value="Move"> | ||
49 | Move | ||
50 | </combo_item> | ||
51 | <combo_item name="Teleport" value="Teleport"> | ||
52 | Teleport | ||
53 | </combo_item> | ||
54 | </combo_box> | ||
55 | |||
56 | |||
57 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
58 | height="1" left="55" name="border" width="380" /> | ||
59 | |||
60 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 61 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 62 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 63 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="true" name=" Mouselook Options:" v_pad="0" width="266"> | 64 | mouse_opaque="true" name=" Mouselook Options:" v_pad="0" width="266"> |
9 | Mouselook: | 65 | Mouselook: |
10 | </text> | 66 | </text> |
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 67 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
12 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 68 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 69 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
14 | mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128"> | 70 | mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128"> |
15 | Mouse sensitivity: | 71 | Mouse sensitivity: |
16 | </text> | 72 | </text> |
17 | <slider_bar bottom="-26" enabled="true" follows="left|top" | 73 | <slider_bar bottom_delta="-6" enabled="true" follows="left|top" |
18 | height="16" increment="0.25" initial_val="2" left="276" max_val="15" | 74 | height="16" increment="0.25" initial_val="2" left_delta="98" max_val="15" |
19 | min_val="0" mouse_opaque="true" name="mouse_sensitivity" width="128" /> | 75 | min_val="0" mouse_opaque="true" name="mouse_sensitivity" width="88" /> |
20 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 76 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
21 | font="SansSerifSmall" height="16" label="Invert mouse" left="148" | 77 | font="SansSerifSmall" height="16" label="Invert mouse" left="270" |
22 | mouse_opaque="true" name="invert_mouse" radio_style="false" width="128" /> | 78 | mouse_opaque="true" name="invert_mouse" radio_style="false" width="128" /> |
23 | <check_box bottom_delta="-18" enabled="true" | 79 | <check_box bottom_delta="-20" enabled="true" |
24 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 80 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
25 | label="Show avatar in mouselook" left="148" mouse_opaque="true" name="first_person_avatar_visible" | 81 | label="Show my avatar in mouselook" left_delta="0" mouse_opaque="true" name="first_person_avatar_visible" |
26 | radio_style="false" width="256" /> | 82 | radio_style="false" width="256" /> |
83 | |||
84 | |||
85 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
86 | height="1" left="55" name="border" width="380" /> | ||
87 | |||
88 | |||
27 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 89 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
28 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 90 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
29 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 91 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
30 | mouse_opaque="true" name=" Auto Fly Options:" v_pad="0" width="266"> | 92 | mouse_opaque="true" name="text2" v_pad="0" width="128"> |
31 | Auto-Fly: | 93 | Joystick: |
32 | </text> | 94 | </text> |
33 | <check_box bottom_delta="-6" enabled="true" follows="left|top" | 95 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" |
34 | font="SansSerifSmall" height="16" label="Fly/land on holding up/down" | 96 | label="Joystick Setup" left="50" mouse_opaque="true" |
35 | left="148" mouse_opaque="true" name="automatic_fly" radio_style="false" | 97 | name="joystick_setup_button" width="160" /> |
36 | width="178" /> | 98 | |
99 | |||
100 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
101 | height="1" left="55" name="border" width="380" /> | ||
102 | |||
103 | |||
37 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 104 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
38 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 105 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
39 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 106 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
40 | mouse_opaque="true" name=" Camera Options:" v_pad="0" width="266"> | 107 | mouse_opaque="true" name="Camera Options:" v_pad="0" width="266"> |
41 | Default Camera: | 108 | Camera: |
42 | </text> | 109 | </text> |
110 | <check_box bottom_delta="-25" enabled="true" | ||
111 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
112 | label="Automatic edit camera movement" left="50" mouse_opaque="true" | ||
113 | name="edit_camera_movement" radio_style="false" | ||
114 | tool_tip="Use automatic camera positioning when entering and exiting edit mode" | ||
115 | width="201" /> | ||
116 | <check_box bottom_delta="-20" enabled="true" | ||
117 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
118 | label="Automatic appearance camera movement" left_delta="0" mouse_opaque="true" | ||
119 | name="appearance_camera_movement" radio_style="false" | ||
120 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> | ||
121 | <check_box bottom_delta="-20" enabled="true" | ||
122 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
123 | label="Disable camera constraints" left_delta="0" mouse_opaque="true" | ||
124 | name="Disable camera constraints" radio_style="false" | ||
125 | tool_tip="Disables camera limits such as distance and terrain" width="242" /> | ||
126 | <check_box bottom_delta="-20" enabled="true" | ||
127 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
128 | label="Disable minimum zoom distance" left_delta="30" mouse_opaque="true" | ||
129 | name="disable_min_zoom_check" radio_style="false" | ||
130 | tool_tip="Disables minimum zoom distance for prims and avatars" width="242" /> | ||
131 | |||
132 | |||
43 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 133 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
44 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | 134 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" |
45 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 135 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
46 | mouse_opaque="true" name="camera_fov_label" v_pad="0" width="128"> | 136 | mouse_opaque="true" name="camera_fov_label" v_pad="0" width="128"> |
47 | Camera view angle: | 137 | View angle: |
48 | </text> | 138 | </text> |
49 | <slider bottom_delta="-6" can_edit_text="true" | 139 | <slider bottom_delta="-6" can_edit_text="true" |
50 | decimal_digits="2" enabled="true" follows="left|top" width="128" height="16" | 140 | decimal_digits="2" enabled="true" follows="left|top" width="100" height="16" |
51 | increment=".025" initial_val="1.57" left="276" max_val="2.97" min_val=".17" | 141 | increment=".025" initial_val="1.57" left_delta="98" max_val="2.97" min_val=".17" |
52 | mouse_opaque="true" name="camera_fov" show_text="false" value="60" /> | 142 | mouse_opaque="true" name="camera_fov" show_text="false" value="60" /> |
143 | |||
53 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 144 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
54 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 145 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
55 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 146 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
56 | mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> | 147 | mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> |
57 | Camera follow distance: | 148 | Follow distance: |
58 | </text> | 149 | </text> |
59 | <slider bottom_delta="-6" can_edit_text="true" control_name="CameraOffsetScale" | 150 | <slider bottom_delta="-6" can_edit_text="true" control_name="CameraOffsetScale" |
60 | decimal_digits="2" enabled="true" follows="left|top" height="16" | 151 | decimal_digits="2" enabled="true" follows="left|top" height="16" |
61 | increment=".025" initial_val="1" left="276" min_val=".5" max_val="3" | 152 | increment=".025" initial_val="1" left_delta="98" min_val=".5" max_val="3" |
62 | mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1" | 153 | mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1" |
63 | width="128" /> | 154 | width="100" /> |
155 | |||
64 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 156 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
65 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 157 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
66 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 158 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
67 | mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128"> | 159 | mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128"> |
68 | Camera transition time: | 160 | Transition time: |
69 | </text> | 161 | </text> |
70 | <slider bottom_delta="-6" can_edit_text="true" decimal_digits="1" | 162 | <slider bottom_delta="-6" can_edit_text="true" decimal_digits="1" |
71 | enabled="true" follows="left|top" height="16" increment="0.1" | 163 | enabled="true" follows="left|top" height="16" increment="0.1" |
72 | initial_val="0.4" left="276" max_val="4" min_val="0" mouse_opaque="true" | 164 | initial_val="0.4" left_delta="98" max_val="4" min_val="0" mouse_opaque="true" |
73 | name="zoom_time" show_text="false" value="2" width="128" /> | 165 | name="zoom_time" show_text="false" value="2" width="100" /> |
166 | |||
74 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 167 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
75 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 168 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
76 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 169 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
77 | mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128"> | 170 | mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128"> |
78 | Camera smoothing: | 171 | Smoothing: |
79 | </text> | 172 | </text> |
80 | <slider bottom_delta="-6" can_edit_text="true" | 173 | <slider bottom_delta="-6" can_edit_text="true" |
81 | decimal_digits="1" enabled="true" follows="left|top" height="16" | 174 | decimal_digits="1" enabled="true" follows="left|top" height="16" |
82 | increment="0.1" initial_val="1" left="276" max_val="9" min_val="0" | 175 | increment="0.1" initial_val="1" left_delta="98" max_val="9" min_val="0" |
83 | mouse_opaque="true" name="camera_position_smoothing" show_text="false" value="2" | 176 | mouse_opaque="true" name="camera_position_smoothing" show_text="false" value="2" |
84 | width="128" /> | 177 | width="100" /> |
85 | <check_box bottom_delta="-24" enabled="true" | ||
86 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
87 | label="Automatic edit camera movement" left="148" mouse_opaque="true" | ||
88 | name="edit_camera_movement" radio_style="false" | ||
89 | tool_tip="Use automatic camera positioning when entering and exiting edit mode" | ||
90 | width="201" /> | ||
91 | <check_box bottom_delta="-18" enabled="true" | ||
92 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
93 | label="Automatic appearance camera movement" left="148" mouse_opaque="true" | ||
94 | name="appearance_camera_movement" radio_style="false" | ||
95 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> | ||
96 | <check_box bottom_delta="-18" enabled="true" | ||
97 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
98 | label="Disable camera constraints" left="148" mouse_opaque="true" | ||
99 | name="Disable camera constraints" radio_style="false" | ||
100 | tool_tip="Disables camera limits such as distance and terrain" width="242" /> | ||
101 | <check_box bottom_delta="-18" enabled="true" | ||
102 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
103 | label="Disable minimum zoom distance" left="168" mouse_opaque="true" | ||
104 | name="disable_min_zoom_check" radio_style="false" | ||
105 | tool_tip="Disables minimum zoom distance for prims and avatars" width="242" /> | ||
106 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
107 | bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
108 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
109 | mouse_opaque="true" name="text2" v_pad="0" width="128"> | ||
110 | Joystick: | ||
111 | </text> | ||
112 | <button bottom_delta="-4" follows="left|top" font="SansSerif" height="20" | ||
113 | label="Joystick Setup" left="148" mouse_opaque="true" | ||
114 | name="joystick_setup_button" width="155" /> | ||
115 | |||
116 | |||
117 | <text name="double_click_action_label" | ||
118 | bottom_delta="-35" left="10" height="18" width="200" | ||
119 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
120 | Double-Click Action: | ||
121 | </text> | ||
122 | |||
123 | <combo_box name="double_click_action" | ||
124 | bottom_delta="0" left_delta="138" height="18" width="150" | ||
125 | follows="left|top" mouse_opaque="true"> | ||
126 | <combo_item name="None" value="None"> | ||
127 | None | ||
128 | </combo_item> | ||
129 | <combo_item name="Go" value="Go"> | ||
130 | Autopilot | ||
131 | </combo_item> | ||
132 | </combo_box> | ||
133 | |||
134 | 178 | ||
135 | <text name="go_action_label" | ||
136 | bottom_delta="-20" left="10" height="18" width="200" | ||
137 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
138 | Autopilot Style: | ||
139 | </text> | ||
140 | |||
141 | <combo_box name="go_action" | ||
142 | bottom_delta="0" left_delta="138" height="18" width="150" | ||
143 | follows="left|top" mouse_opaque="true"> | ||
144 | <combo_item name="Move" value="Move"> | ||
145 | Move | ||
146 | </combo_item> | ||
147 | <combo_item name="Teleport" value="Teleport"> | ||
148 | Teleport | ||
149 | </combo_item> | ||
150 | </combo_box> | ||
151 | 179 | ||
152 | </panel> | 180 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml index 7d6bb4a..976e7a8 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml | |||
@@ -1,178 +1,434 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Network" left="102" mouse_opaque="true" name="network" | 18 | height="408" label="Network" left="102" mouse_opaque="true" name="network" |
4 | width="517"> | 19 | width="517"> |
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 20 | |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 21 | |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 22 | <tab_container bottom="0" height="450" left="0" mouse_opaque="false" |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> | 23 | name="networktab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
9 | Maximum bandwidth: | 24 | |
10 | </text> | 25 | |
11 | <slider bottom_delta="-25" can_edit_text="true" control_name="ThrottleBandwidthKBPS" | 26 | <!-- BANDWIDTH SETTINGS PANEL --> |
12 | decimal_digits="0" enabled="true" follows="left|top" height="15" | 27 | |
13 | increment="10" initial_val="1000" left_delta="0" max_val="5000" min_val="50" | 28 | |
14 | mouse_opaque="true" name="max_bandwidth" show_text="true" value="1000" | 29 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
15 | width="180" /> | 30 | height="408" label="Performance" left="102" mouse_opaque="true" |
16 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 31 | name="bandwidth_panel" width="517"> |
17 | bottom_delta="4" drop_shadow_visible="true" enabled="true" | 32 | |
18 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 33 | |
19 | height="10" left_delta="186" mouse_opaque="false" name="text_box2" | 34 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
20 | v_pad="0" width="200"> | 35 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
21 | kbps (kilobits per second) | 36 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
22 | </text> | 37 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 38 | Maximum Viewer Bandwidth: |
24 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" | 39 | </text> |
25 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 40 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
26 | height="10" left="12" mouse_opaque="false" name="cache_size_label_l" | 41 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
27 | v_pad="0" width="200"> | 42 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
28 | Disk cache size (MB): | 43 | height="10" left="50" mouse_opaque="false" name="cache_size_label_l" |
29 | </text> | 44 | v_pad="0" width="200"> |
30 | <slider bottom_delta="-25" can_edit_text="true" control_name="CacheSize" | 45 | Speed: |
31 | decimal_digits="0" enabled="true" follows="left|top" height="15" | 46 | </text> |
32 | increment="10" initial_val="50" left_delta="0" max_val="1000" min_val="10" | 47 | <slider bottom_delta="-4" can_edit_text="true" control_name="ThrottleBandwidthKBPS" |
33 | mouse_opaque="true" name="cache_size" show_text="true" width="180" /> | 48 | decimal_digits="0" enabled="true" follows="left|top" height="15" |
34 | <button bottom_delta="-4" enabled="true" follows="left|top" | 49 | increment="10" initial_val="1000" left_delta="50" max_val="5000" min_val="50" |
35 | font="SansSerif" halign="center" height="22" label="Clear Disk Cache" left="340" | 50 | mouse_opaque="true" name="max_bandwidth" show_text="true" value="1000" |
36 | left_delta="186" mouse_opaque="true" name="clear_cache" scale_image="true" | 51 | width="160" /> |
37 | width="150" /> | 52 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | bottom_delta="4" drop_shadow_visible="true" enabled="true" |
39 | bottom_delta="-17" drop_shadow_visible="true" enabled="true" | 54 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
40 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 55 | height="10" left_delta="166" mouse_opaque="false" name="text_box2" |
41 | height="10" left="12" mouse_opaque="false" name="cache_location_label" | 56 | v_pad="0" width="200"> |
42 | v_pad="0" width="200"> | 57 | kbps (kilobits per second) |
43 | Disk cache location: | 58 | </text> |
44 | </text> | 59 | |
45 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-28" | 60 | |
46 | enabled="false" follows="left|top" font="SansSerif" | 61 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
47 | handle_edit_keys_directly="true" height="20" left_delta="0" | 62 | height="1" left="55" name="border" width="380" /> |
48 | max_length="4096" mouse_opaque="true" name="cache_location" | 63 | |
49 | select_all_on_focus_received="false" width="470" word_wrap="false" /> | 64 | |
50 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerif" | 65 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
51 | halign="center" height="22" label="Set" label_selected="Set" left_delta="0" | 66 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
52 | mouse_opaque="true" name="set_cache" scale_image="true" width="100" /> | 67 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
53 | <button bottom="-105" bottom_delta="0" enabled="true" follows="left|top" | 68 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
54 | font="SansSerif" halign="center" height="22" label="Reset" | 69 | Texture Fetching: |
55 | label_selected="Set" left_delta="103" mouse_opaque="true" | 70 | </text> |
56 | name="reset_cache" scale_image="true" width="100" /> | 71 | |
57 | <check_box bottom="-173" bottom_delta="-25" control_name="ConnectionPortEnabled" | 72 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
58 | enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 73 | font="SansSerifSmall" height="16" initial_value="false" |
59 | initial_value="false" label="Enable custom outgoing port" left="12" | 74 | label="Use HTTP texture fetching (experimental)" left="50" mouse_opaque="true" |
60 | mouse_opaque="true" name="connection_port_enabled" radio_style="false" | 75 | name="http_texture_check" radio_style="false" width="217" /> |
61 | tool_tip="Enables custom port for outgoing connections" | 76 | |
62 | width="256" /> | 77 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
63 | <spinner bottom="-193" bottom_delta="-20" control_name="ConnectionPort" | 78 | font="SansSerifSmall" height="16" initial_value="false" |
64 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 79 | label="Increase rez speed via draw distance stepping" left_delta="0" mouse_opaque="true" |
65 | increment="1" initial_val="13000" label="Port number:" label_width="75" | 80 | name="speed_rez_check" radio_style="false" width="217" /> |
66 | left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" | 81 | <spinner bottom_delta="-20" decimal_digits="0" |
67 | name="connection_port" width="140" /> | 82 | tool_tip="Interval in seconds between each draw distance increment" |
68 | 83 | follows="left|top" height="16" increment="1" initial_val="12" | |
69 | <!-- XMLRPC PROXY --> | 84 | label="Step interval every:" label_width="105" left_delta="30" max_val="20" |
70 | 85 | min_val="1" mouse_opaque="true" name="speed_rez_interval_spinner" width="145" /> | |
71 | <check_box bottom_delta="-25" enabled="true" | 86 | <text bottom_delta="0" follows="top|left" height="15" left_delta="150" |
72 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 87 | name="speed_rez_seconds_text" width="115"> |
73 | label="Enable XMLRPC proxy (Login, Land, and Money purchases)" left="15" mouse_opaque="true" | 88 | seconds |
74 | name="xmlrpc_proxy_enabled" radio_style="false" width="300" /> | 89 | </text> |
75 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 90 | |
76 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | 91 | |
77 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 92 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
78 | height="10" left_delta="20" mouse_opaque="false" name="xmlrpc_proxy_text_label" | 93 | height="1" left="55" name="border" width="380" /> |
79 | v_pad="0" width="128"> | 94 | |
80 | Address: | 95 | |
81 | </text> | 96 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
82 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 97 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
83 | height="20" left="112" name="xmlrpc_proxy_editor" | 98 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
84 | tool_tip="The name or IP address of the proxy you would like to use" | 99 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
85 | width="200" /> | 100 | Disk Cache: |
86 | <spinner bottom_delta="-20" decimal_digits="0" | 101 | </text> |
87 | enabled="true" follows="left|top" height="16" increment="1" | 102 | |
88 | initial_val="80" label="Port number:" label_width="75" left="35" | 103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
89 | max_val="65535" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port" | 104 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
90 | width="140" /> | 105 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
91 | 106 | height="10" left="50" mouse_opaque="false" name="cache_size_label_l" | |
92 | <!-- SOCKS 5 PROXY --> | 107 | v_pad="0" width="200"> |
93 | 108 | Size: | |
94 | <check_box bottom_delta="-24" enabled="true" | 109 | </text> |
95 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 110 | <slider bottom_delta="-4" can_edit_text="true" control_name="CacheSize" |
96 | label="Enable SOCKS 5 proxy" left="15" mouse_opaque="true" | 111 | decimal_digits="0" enabled="true" follows="left|top" height="15" |
97 | name="socks5_proxy_enabled" radio_style="false" width="256" /> | 112 | increment="10" initial_val="50" left_delta="50" max_val="1000" min_val="10" |
98 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 113 | mouse_opaque="true" name="disk_cache_size" show_text="true" width="160" /> |
99 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | 114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
100 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 115 | bottom_delta="4" drop_shadow_visible="true" enabled="true" |
101 | height="10" left="35" mouse_opaque="false" name="socks5_host_label" | 116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
102 | v_pad="0" width="128"> | 117 | height="10" left_delta="166" mouse_opaque="false" name="cache_size_label_l" |
103 | SOCKS 5 host: | 118 | v_pad="0" width="200"> |
104 | </text> | 119 | megabytes |
105 | <line_editor bottom_delta="-6" enabled="true" follows="left|top" font="SansSerif" | 120 | </text> |
106 | height="20" left="113" name="socks5_proxy_host" | 121 | |
107 | tool_tip="The name or IP address of the SOCKS5 proxy you would like to use" | 122 | <button bottom_delta="-30" enabled="true" follows="left|top" |
108 | width="200" /> | 123 | font="SansSerifSmall" halign="center" height="20" label="Clear Disk Cache" |
109 | <spinner bottom_delta="-20" decimal_digits="0" | 124 | left="50" mouse_opaque="true" name="clear_disk_cache" scale_image="true" |
110 | enabled="true" follows="left|top" height="16" increment="1" | 125 | width="160" /> |
111 | initial_val="80" label="Port number:" label_width="75" left="35" | 126 | |
112 | max_val="65535" min_val="10" mouse_opaque="true" name="socks5_proxy_port" | 127 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
113 | width="140" /> | 128 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 129 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
115 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 130 | height="10" left="50" mouse_opaque="false" name="cache_location_label" |
116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 131 | v_pad="0" width="200"> |
117 | height="10" left="35" mouse_opaque="false" name="socks5_auth_label" | 132 | Location: |
118 | v_pad="0" width="128"> | 133 | </text> |
119 | SOCKS 5 authentication: | 134 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-25" |
120 | </text> | 135 | enabled="false" follows="left|top" font="SansSerif" |
121 | <radio_group bottom_delta="-6" draw_border="false" follows="left|top" height="20" left="35" | 136 | handle_edit_keys_directly="true" height="20" left_delta="0" |
122 | name="socks5_auth" width="420"> | 137 | max_length="4096" mouse_opaque="true" name="disk_cache_location" |
123 | <radio_item bottom="0" height="20" left_delta="80" name="None" width="50" | 138 | select_all_on_focus_received="false" width="395" word_wrap="false" /> |
124 | tool_tip="No authentication"> | 139 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" |
125 | None | 140 | halign="center" height="20" label="Change Location" left_delta="0" |
126 | </radio_item> | 141 | mouse_opaque="true" name="set_disk_cache" scale_image="true" width="160" /> |
127 | <radio_item bottom="0" height="20" left_delta="50" name="UserPass" width="50" | 142 | <button bottom_delta="0" enabled="true" follows="left|top" |
128 | tool_tip="Username / Password authentication"> | 143 | font="SansSerifSmall" halign="center" height="20" label="Reset to Default" |
129 | Username / Password | 144 | left_delta="165" mouse_opaque="true" |
130 | </radio_item> | 145 | name="reset_disk_cache" scale_image="true" width="160" /> |
131 | </radio_group> | 146 | |
132 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 147 | |
133 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" | 148 | </panel> |
134 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 149 | |
135 | height="10" left="122" mouse_opaque="false" name="socks5_username_label" | 150 | |
136 | v_pad="0" width="128"> | 151 | <!-- PROXY SETTINGS PANEL --> |
137 | Username: | 152 | |
138 | </text> | 153 | |
139 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 154 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Proxy Settings" |
140 | height="20" left="200" name="socks5_proxy_username" | 155 | left="1" mouse_opaque="true" name="proxies" width="418"> |
141 | tool_tip="Username for the Socks5 proxy" | 156 | |
142 | width="200" /> | 157 | |
143 | 158 | <!-- XMLRPC PROXY --> | |
144 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 159 | |
145 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | 160 | |
146 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 161 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
147 | height="10" left="122" mouse_opaque="false" name="socks5_password_label" | 162 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
148 | v_pad="0" width="128"> | 163 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
149 | Password: | 164 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
150 | </text> | 165 | XMLRPC: |
151 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 166 | </text> |
152 | height="20" left="200" name="socks5_proxy_password" | 167 | |
153 | tool_tip="Password for the Socks5 proxy" | 168 | <check_box bottom_delta="-25" enabled="true" |
154 | width="200" /> | 169 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
155 | 170 | label="Enable XMLRPC proxy (Login, Land, and Money purchases)" left="50" mouse_opaque="true" | |
156 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 171 | name="xmlrpc_proxy_enabled" radio_style="false" width="300" /> |
157 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 172 | |
158 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 173 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
159 | height="10" left="35" mouse_opaque="false" name="http_proxy_label" | 174 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
160 | v_pad="0" width="128"> | 175 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
161 | HTTP proxy: | 176 | height="10" left_delta="30" mouse_opaque="false" name="xmlrpc_proxy_text_label" |
162 | </text> | 177 | v_pad="0" width="128"> |
163 | <radio_group bottom_delta="-8" draw_border="false" follows="left|top" height="20" left="35" | 178 | Address: |
164 | name="socks5_http_proxy_type" width="380" > | 179 | </text> |
165 | <radio_item height="20" bottom="0" left="100" name="None" width="50" | 180 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" |
166 | tool_tip="No HTTP proxy"> | 181 | height="20" left_delta="50" name="xmlrpc_proxy_editor" |
167 | None | 182 | tool_tip="The name or IP address of the proxy you would like to use" |
168 | </radio_item> | 183 | width="200" /> |
169 | <radio_item height="20" bottom="0" left="170" name="Socks" width="50" | 184 | <spinner bottom_delta="-20" decimal_digits="0" |
170 | tool_tip="Use Socks for HTTP proxy"> | 185 | enabled="true" follows="left|top" height="16" increment="1" |
171 | SOCKS 5 | 186 | initial_val="80" label="Port number:" label_width="75" left_delta="-50" |
172 | </radio_item> | 187 | max_val="65535" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port" |
173 | <radio_item height="20" bottom="0" left="250" name="Web" width="50" | 188 | width="140" /> |
174 | tool_tip="Use web proxy for HTTP proxy"> | 189 | |
175 | Web | 190 | |
176 | </radio_item> | 191 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
177 | </radio_group> | 192 | height="1" left="55" name="border" width="380" /> |
193 | |||
194 | |||
195 | <!-- SOCKS 5 PROXY --> | ||
196 | |||
197 | |||
198 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
199 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
200 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
201 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> | ||
202 | SOCKS 5: | ||
203 | </text> | ||
204 | |||
205 | <check_box bottom_delta="-25" enabled="true" | ||
206 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
207 | label="Enable SOCKS 5 proxy" left="50" mouse_opaque="true" | ||
208 | name="socks5_proxy_enabled" radio_style="false" width="256" /> | ||
209 | |||
210 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
211 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
212 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
213 | height="10" left_delta="30" mouse_opaque="false" name="socks5_host_label" | ||
214 | v_pad="0" width="128"> | ||
215 | SOCKS 5 host: | ||
216 | </text> | ||
217 | <line_editor bottom_delta="-6" enabled="true" follows="left|top" font="SansSerif" | ||
218 | height="20" left_delta="80" name="socks5_proxy_host" | ||
219 | tool_tip="The name or IP address of the SOCKS5 proxy you would like to use" | ||
220 | width="200" /> | ||
221 | <spinner bottom_delta="-20" decimal_digits="0" | ||
222 | enabled="true" follows="left|top" height="16" increment="1" | ||
223 | initial_val="80" label="Port number:" label_width="78" left_delta="-80" | ||
224 | max_val="65535" min_val="10" mouse_opaque="true" name="socks5_proxy_port" | ||
225 | width="140" /> | ||
226 | |||
227 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
228 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | ||
229 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
230 | height="10" left_delta="0" mouse_opaque="false" name="socks5_auth_label" | ||
231 | v_pad="0" width="128"> | ||
232 | SOCKS 5 authentication: | ||
233 | </text> | ||
234 | <radio_group bottom_delta="-6" draw_border="false" follows="left|top" height="20" left_delta="0" | ||
235 | name="socks5_auth" width="420"> | ||
236 | <radio_item bottom="0" height="20" left_delta="80" name="None" width="50" | ||
237 | tool_tip="No authentication"> | ||
238 | None | ||
239 | </radio_item> | ||
240 | <radio_item bottom="0" height="20" left_delta="50" name="UserPass" width="50" | ||
241 | tool_tip="Username / Password authentication"> | ||
242 | Username / Password | ||
243 | </radio_item> | ||
244 | </radio_group> | ||
245 | |||
246 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
247 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" | ||
248 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
249 | height="10" left="122" mouse_opaque="false" name="socks5_username_label" | ||
250 | v_pad="0" width="128"> | ||
251 | Username: | ||
252 | </text> | ||
253 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
254 | height="20" left="200" name="socks5_proxy_username" | ||
255 | tool_tip="Username for the Socks5 proxy" | ||
256 | width="200" /> | ||
257 | |||
258 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
259 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | ||
260 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
261 | height="10" left="122" mouse_opaque="false" name="socks5_password_label" | ||
262 | v_pad="0" width="128"> | ||
263 | Password: | ||
264 | </text> | ||
265 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
266 | height="20" left="200" name="socks5_proxy_password" | ||
267 | tool_tip="Password for the Socks5 proxy" | ||
268 | width="200" /> | ||
269 | |||
270 | |||
271 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
272 | height="1" left="55" name="border" width="380" /> | ||
273 | |||
274 | |||
275 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
276 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
277 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
278 | height="10" left="20" mouse_opaque="false" name="http_proxy_label" | ||
279 | v_pad="0" width="128"> | ||
280 | HTTP Textures Proxy: | ||
281 | </text> | ||
282 | <radio_group bottom_delta="-25" draw_border="false" follows="left|top" height="20" left="50" | ||
283 | name="socks5_http_proxy_type" width="380" > | ||
284 | <radio_item height="20" bottom="0" left="50" name="None" width="50" | ||
285 | tool_tip="No HTTP proxy"> | ||
286 | None | ||
287 | </radio_item> | ||
288 | <radio_item height="20" bottom="0" left="160" name="Socks" width="50" | ||
289 | tool_tip="Use Socks for HTTP proxy"> | ||
290 | SOCKS 5 | ||
291 | </radio_item> | ||
292 | <radio_item height="20" bottom="0" left="270" name="Web" width="50" | ||
293 | tool_tip="Use web proxy for HTTP proxy"> | ||
294 | Web | ||
295 | </radio_item> | ||
296 | </radio_group> | ||
297 | |||
298 | |||
299 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
300 | height="1" left="55" name="border" width="380" /> | ||
301 | |||
302 | |||
303 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
304 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
305 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
306 | height="10" left="20" mouse_opaque="false" name="port_label" | ||
307 | v_pad="0" width="128"> | ||
308 | Ougoing Connections: | ||
309 | </text> | ||
310 | <check_box bottom_delta="-25" control_name="ConnectionPortEnabled" | ||
311 | enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
312 | initial_value="false" label="Enable custom outgoing port" left_delta="30" | ||
313 | mouse_opaque="true" name="connection_port_enabled" radio_style="false" | ||
314 | tool_tip="Enables custom port for outgoing connections" | ||
315 | width="256" /> | ||
316 | <spinner bottom_delta="-20" control_name="ConnectionPort" | ||
317 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
318 | increment="1" initial_val="13000" label="Port number:" label_width="75" | ||
319 | left_delta="30" max_val="13050" min_val="13000" mouse_opaque="true" | ||
320 | name="connection_port" width="140" /> | ||
321 | |||
322 | |||
323 | </panel> | ||
324 | |||
325 | |||
326 | <!-- WEB BROWSER PANEL --> | ||
327 | |||
328 | |||
329 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Web Browser" | ||
330 | left="1" mouse_opaque="true" name="web_browser" width="418"> | ||
331 | |||
332 | |||
333 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
334 | bottom="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
335 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
336 | height="10" left="20" mouse_opaque="false" name="open_links_label" | ||
337 | v_pad="0" width="128"> | ||
338 | Open Links In: | ||
339 | </text> | ||
340 | |||
341 | <radio_group bottom_delta="-45" draw_border="false" follows="top|left" height="40" left="50" | ||
342 | name="use_external_browser" width="480"> | ||
343 | <radio_item bottom="-20" height="20" left="0" name="external" width="480" | ||
344 | tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."> | ||
345 | My external browser (Firefox, Safari, Internet Explorer, etc.) | ||
346 | </radio_item> | ||
347 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480" | ||
348 | tool_tip="Use the internal browser for help, web links, etc. This browser opens as a new window inside Second Life."> | ||
349 | Imprudence's internal browser | ||
350 | </radio_item> | ||
351 | </radio_group> | ||
352 | |||
353 | |||
354 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
355 | height="1" left="55" name="border" width="380" /> | ||
356 | |||
357 | |||
358 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
359 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
360 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
361 | height="10" left="20" mouse_opaque="false" name="internal_browser_label" | ||
362 | v_pad="0" width="128"> | ||
363 | Internal Browser: | ||
364 | </text> | ||
365 | |||
366 | <button bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" | ||
367 | halign="center" height="20" label="Clear Internal Browser Cache" left_delta="30" | ||
368 | mouse_opaque="true" name="clear_web_cache" scale_image="true" width="320" /> | ||
369 | |||
370 | <check_box bottom_delta="-35" enabled="true" follows="left|top" | ||
371 | font="SansSerifSmall" height="16" initial_value="false" | ||
372 | label="Accept cookies while using internal browser" left_delta="0" mouse_opaque="true" | ||
373 | tool_top="Allows the internal browser to accept cookies from websites" | ||
374 | name="cookies_enabled" radio_style="false" width="256" /> | ||
375 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
376 | halign="center" height="20" label="Clear Cookies" left_delta="30" | ||
377 | tool_tip="Clear Cookies" | ||
378 | mouse_opaque="true" name="clear_ookies" scale_image="true" width="160" /> | ||
379 | |||
380 | <check_box bottom_delta="-35" enabled="true" | ||
381 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
382 | label="Enable proxy for internal browser" left="50" mouse_opaque="true" | ||
383 | name="web_proxy_enabled" radio_style="false" width="256" /> | ||
384 | |||
385 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
386 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
387 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
388 | height="10" left_delta="30" mouse_opaque="false" name="proxy_text_label" | ||
389 | v_pad="0" width="128"> | ||
390 | Address: | ||
391 | </text> | ||
392 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
393 | height="20" left_delta="50" name="web_proxy_editor" | ||
394 | tool_tip="The name or IP address of the proxy you would like to use" | ||
395 | width="200" /> | ||
396 | <spinner bottom_delta="-20" decimal_digits="0" | ||
397 | enabled="true" follows="left|top" height="16" increment="1" | ||
398 | initial_val="80" label="Port number:" label_width="75" left_delta="-50" | ||
399 | max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port" | ||
400 | width="140" /> | ||
401 | |||
402 | |||
403 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
404 | height="1" left="55" name="border" width="380" /> | ||
405 | |||
406 | |||
407 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
408 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
409 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
410 | height="10" left="20" mouse_opaque="false" name="search_url_label" | ||
411 | v_pad="0" width="200"> | ||
412 | Custom All (Web) Search URL: | ||
413 | </text> | ||
414 | |||
415 | <line_editor bottom_delta="-25" enabled="true" follows="left|top" | ||
416 | font="SansSerifSmall" height="18" left_delta="30" name="world_search_editor" | ||
417 | tool_tip="Address of the world search engine you would like to use" | ||
418 | width="395" /> | ||
419 | <button bottom_delta="-22" enabled="true" follows="left|top" font="SansSerifSmall" | ||
420 | halign="center" height="20" label="Clear" left_delta="0" | ||
421 | tool_tip="clear field" | ||
422 | mouse_opaque="true" name="world_search_clear" scale_image="true" width="160" /> | ||
423 | <button bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall" | ||
424 | halign="center" height="20" label="Reset to Default" left_delta="165" | ||
425 | mouse_opaque="true" name="world_search_reset_default" scale_image="true" width="160" /> | ||
426 | |||
427 | |||
428 | </panel> | ||
429 | |||
430 | |||
431 | </tab_container> | ||
432 | |||
433 | |||
178 | </panel> | 434 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml index 2168137..aa3857c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml | |||
@@ -1,47 +1,117 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="true" bottom="0" height="500" label="Popups" left="0" name="popups" | 2 | |
3 | title="Popups" width="400"> | 3 | <!-- |
4 | <text bottom="-20" follows="top|left" left="15" width="300" name="dont_show_label"> | 4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP |
5 | Hide These Popups: | 5 | |
6 | </text> | 6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP |
7 | <scroll_list follows="top|left" height="88" left="15" name="disabled_popups" width="480" /> | 7 | |
8 | <button follows="top|left" height="20" label="Enable This Popup" left="15" | 8 | USE LINES BETWEEN GROUPS |
9 | name="enable_popup" width="175" /> | 9 | |
10 | <button follows="top|left" height="20" label="Enable All Popups" left="200" | 10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS |
11 | name="reset_dialogs_btn" | 11 | |
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel border="true" bottom="-409" height="408" label="Notifications" left="0" name="popups" | ||
18 | title="Notifications" width="400"> | ||
19 | |||
20 | |||
21 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
22 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
23 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
24 | mouse_opaque="true" name="hidetext" v_pad="0" width="200" font-style="BOLD|SHADOW"> | ||
25 | Hide These Notifications: | ||
26 | </text> | ||
27 | |||
28 | <scroll_list follows="top|left" height="88" left="50" name="disabled_popups" width="420"/> | ||
29 | |||
30 | <button follows="top|left" height="20" label="Enable This" left="50" bottom_delta="-22" | ||
31 | name="enable_popup" width="160" font="SansSerifSmall" /> | ||
32 | <button follows="top|left" height="20" label="Enable All" left="270" | ||
33 | name="reset_dialogs_btn" font="SansSerifSmall" | ||
12 | tool_tip="Enable all of the optional popups and 'first time use' notifications." | 34 | tool_tip="Enable all of the optional popups and 'first time use' notifications." |
13 | width="175" bottom_delta="0" /> | 35 | width="160" bottom_delta="0" /> |
14 | <text follows="top|left" left="15" width="128" name="show_label" bottom_delta="-24"> | 36 | |
15 | Show These Popups: | 37 | |
16 | </text> | 38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
17 | <scroll_list follows="top|left" height="88" left="15" name="enabled_popups" width="480" /> | 39 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" |
18 | <button bottom_delta="-24" follows="top|left" height="20" | 40 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
19 | label="Disable All Popups" left="200" | 41 | mouse_opaque="true" name="showtext" v_pad="0" width="200" font-style="BOLD|SHADOW"> |
20 | name="skip_dialogs_btn" | 42 | Show These Notifications: |
43 | </text> | ||
44 | |||
45 | <scroll_list follows="top|left" height="88" left="50" name="enabled_popups" width="420" /> | ||
46 | |||
47 | <button bottom_delta="-22" follows="top|left" height="20" | ||
48 | label="Disable All" left="270" | ||
49 | name="skip_dialogs_btn" font="SansSerifSmall" | ||
21 | tool_tip="Disable all of the optional popups and 'first time use' notifications." | 50 | tool_tip="Disable all of the optional popups and 'first time use' notifications." |
22 | width="175" /> | 51 | width="160" /> |
52 | |||
53 | |||
54 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
55 | height="1" left="55" name="border" width="380" /> | ||
56 | |||
57 | |||
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
24 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" | 59 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" |
25 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 60 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
26 | height="10" left="15" mouse_opaque="false" name="text_box2" v_pad="0" | 61 | height="10" left="20" mouse_opaque="false" name="text_box2" v_pad="0" |
27 | width="270"> | 62 | width="270"> |
28 | Offers of Notecards, Textures and Landmarks: | 63 | Inventory Offers: |
29 | </text> | 64 | </text> |
30 | <check_box bottom_delta="-25" enabled="true" | 65 | <check_box bottom_delta="-25" enabled="true" |
31 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 66 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
32 | label="Automatically accept" left="40" mouse_opaque="true" | 67 | label="Automatically accept" left="50" mouse_opaque="true" |
33 | name="accept_new_inventory" radio_style="false" width="270" /> | 68 | name="accept_new_inventory" radio_style="false" width="270" /> |
34 | <check_box bottom_delta="-20" enabled="true" | 69 | <check_box bottom_delta="-20" enabled="true" |
35 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 70 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
36 | label="Automatically view after accepting" left="40" mouse_opaque="true" | 71 | label="Automatically view Notecards, Textures and Landmarks after accepting" left_delta="0" mouse_opaque="true" |
37 | name="show_new_inventory" radio_style="false" width="270" /> | 72 | name="show_new_inventory" radio_style="false" width="270" /> |
38 | <check_box bottom_delta="-20" enabled="true" | 73 | <check_box bottom_delta="-20" enabled="true" |
39 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 74 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
40 | label="Automatically show newly accepted objects in inventory" left="40" mouse_opaque="true" | 75 | label="Automatically show newly accepted objects in inventory" left_delta="0" mouse_opaque="true" |
41 | name="show_in_inventory" radio_style="false" width="270" /> | 76 | name="show_in_inventory" radio_style="false" width="270" /> |
42 | <check_box bottom_delta="-30" enabled="true" | 77 | |
78 | |||
79 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
80 | height="1" left="55" name="border" width="380" /> | ||
81 | |||
82 | |||
83 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
84 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
85 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" font-style="BOLD|SHADOW" | ||
86 | mouse_opaque="true" name="radar_text" v_pad="0" width="128"> | ||
87 | Chat Notifications: | ||
88 | </text> | ||
89 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
90 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
91 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" | ||
92 | mouse_opaque="true" name="radar_text" v_pad="0" width="128"> | ||
93 | When an avatar enters: | ||
94 | </text> | ||
95 | <check_box bottom_delta="-6" enabled="true" | ||
96 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
97 | label="Chat range" left="270" | ||
98 | mouse_opaque="true" name="mini_map_notify_chat" radio_style="false" | ||
99 | width="256" /> | ||
100 | <check_box bottom_delta="0" enabled="true" | ||
101 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
102 | label="Current sim" left="390" | ||
103 | mouse_opaque="true" name="mini_map_notify_sim" radio_style="false" | ||
104 | width="256" /> | ||
105 | |||
106 | <check_box bottom_delta="-20" enabled="true" | ||
107 | follows="left|top" font="SansSerifSmall" height="16" | ||
108 | initial_value="false" label="When Friends come online" left="50" | ||
109 | mouse_opaque="true" name="friends_online_notify_checkbox" | ||
110 | radio_style="false" width="256" /> | ||
111 | <check_box bottom_delta="0" enabled="true" | ||
43 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 112 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
44 | label="Notify when [CURRENCY] spent or received" left="15" | 113 | label="When [CURRENCY] spent or received" left="270" |
45 | mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false" | 114 | mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false" |
46 | width="256" /> | 115 | width="256" /> |
116 | |||
47 | </panel> | 117 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml index 58a2989..eb1dc79 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml | |||
@@ -1,14 +1,39 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Skins" left="102" mouse_opaque="true" | 18 | height="408" label="Skins" left="102" mouse_opaque="true" |
4 | name="Skins panel" width="517"> | 19 | name="Skins panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
8 | mouse_opaque="true" name="muting_text" v_pad="0" width="500"> | 25 | mouse_opaque="true" name="muting_text" v_pad="0" width="500"> |
9 | Select a skin (requires restart). (Please see the skin folders for information and credits) | 26 | Select Skin: |
10 | </text> | 27 | </text> |
11 | <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="12" | 28 | |
29 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
30 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
31 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left_delta="80" | ||
32 | mouse_opaque="true" name="muting_text" v_pad="0" width="500"> | ||
33 | (requires restart). See skin folder for credits | ||
34 | </text> | ||
35 | |||
36 | <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="50" | ||
12 | name="skin_selection" width="480"> | 37 | name="skin_selection" width="480"> |
13 | <radio_item bottom="-20" height="20" left="0" name="default" width="480"> | 38 | <radio_item bottom="-20" height="20" left="0" name="default" width="480"> |
14 | Default | 39 | Default |
@@ -40,24 +65,24 @@ | |||
40 | scale_image="true" label="" image_selected="skin_thumbnail_gemini.png" | 65 | scale_image="true" label="" image_selected="skin_thumbnail_gemini.png" |
41 | image_hover_selected="skin_thumbnail_gemini.png" image_unselected="skin_thumbnail_gemini.png" | 66 | image_hover_selected="skin_thumbnail_gemini.png" image_unselected="skin_thumbnail_gemini.png" |
42 | image_hover_unselected="skin_thumbnail_gemini.png" follows="left|top" /> | 67 | image_hover_unselected="skin_thumbnail_gemini.png" follows="left|top" /> |
43 | <text name="skin_current_text" | 68 | <text name="skin_current_text" font-style="BOLD|SHADOW" |
44 | left="10" bottom="5" halign="left" height="12" | 69 | left="20" bottom="5" halign="left" height="12" |
45 | follows="left|bottom" h_pad="0" v_pad="0" | 70 | follows="left|bottom" h_pad="0" v_pad="0" |
46 | bg_visible="false" drop_shadow_visible="true" | 71 | bg_visible="false" drop_shadow_visible="true" |
47 | border_visible="false" border_drop_shadow_visible="false" | 72 | border_visible="false" border_drop_shadow_visible="false" |
48 | font="SansSerif" mouse_opaque="true"> | 73 | font="SansSerifSmall" mouse_opaque="true"> |
49 | Other Skin Name: | 74 | Custom Skin Name: |
50 | </text> | 75 | </text> |
51 | <line_editor name="skin_current_edit" | 76 | <line_editor name="skin_current_edit" |
52 | bottom_delta="0" left_delta="120" height="20" width="120" | 77 | bottom_delta="-2" left_delta="110" height="18" width="160" |
53 | follows="left|bottom" font="SansSerif" | 78 | follows="left|bottom" font="SansSerif" |
54 | bevel_style="in" border_style="line" border_thickness="1" | 79 | bevel_style="in" border_style="line" border_thickness="1" |
55 | max_length="31" mouse_opaque="true" | 80 | max_length="31" mouse_opaque="true" |
56 | handle_edit_keys_directly="true" | 81 | handle_edit_keys_directly="true" |
57 | select_all_on_focus_received="true" /> | 82 | select_all_on_focus_received="true" /> |
58 | <button name="save_skin" label="Save" | 83 | <button name="save_skin" label="Save" |
59 | bottom_delta="-2" left_delta="120" height="24" width="90" | 84 | bottom_delta="-2" left_delta="165" height="20" width="110" |
60 | follows="left|center" font="SansSerif" halign="center" | 85 | follows="left|center" font="SansSerifSmall" halign="center" |
61 | mouse_opaque="true" scale_image="TRUE" /> | 86 | mouse_opaque="true" scale_image="TRUE" /> |
62 | </panel> | 87 | </panel> |
63 | 88 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml index b4939ca..d9c3f5e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml | |||
@@ -1,20 +1,39 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 2 | |
3 | height="408" label="Voice" left="102" mouse_opaque="true" name="chat" | 3 | <!-- |
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel border="true" bottom="-20" enabled="true" follows="left|top|right|bottom" | ||
18 | height="408" label="Voice" left="102" mouse_opaque="true" name="voice_chat" | ||
4 | width="517"> | 19 | width="517"> |
5 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-26" | 20 | |
6 | embedded_items="false" enabled="false" follows="left|top" | 21 | |
7 | font="SansSerifSmall" height="20" hide_border="true" hide_scrollbar="true" | 22 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom="-30" |
8 | left_delta="8" max_length="65535" mouse_opaque="true" | 23 | embedded_items="false" enabled="false" follows="left|top" |
9 | name="voice_unavailable" tab_stop="false" width="450" word_wrap="true"> | 24 | font="SansSerifSmall" height="20" hide_border="true" hide_scrollbar="true" |
10 | Voice Chat Is Not Available | 25 | left="20" max_length="65535" mouse_opaque="true" |
11 | </text_editor> | 26 | name="voice_unavailable" tab_stop="false" width="450" word_wrap="true"> |
12 | <check_box bottom_delta="0" enabled="true" | 27 | Voice Chat Is Not Available |
13 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 28 | </text_editor> |
14 | label="Enable voice chat" left="8" mouse_opaque="true" | 29 | <check_box bottom="-26" enabled="true" |
15 | name="enable_voice_check" radio_style="false" width="200" /> | 30 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
31 | label="Enable voice chat" left="20" mouse_opaque="true" | ||
32 | name="enable_voice_check" radio_style="false" width="200" /> | ||
33 | |||
34 | |||
16 | <radio_group bottom_delta="-40" draw_border="false" follows="left|top" height="40" | 35 | <radio_group bottom_delta="-40" draw_border="false" follows="left|top" height="40" |
17 | left_delta="20" name="ear_location" width="364"> | 36 | left_delta="30" name="ear_location" width="364"> |
18 | <radio_item type="string" length="1" bottom="-19" follows="left|top" height="16" left="3" name="0" width="315"> | 37 | <radio_item type="string" length="1" bottom="-19" follows="left|top" height="16" left="3" name="0" width="315"> |
19 | Hear Voice Chat from camera position. | 38 | Hear Voice Chat from camera position. |
20 | </radio_item> | 39 | </radio_item> |
@@ -22,17 +41,19 @@ | |||
22 | Hear Voice Chat from avatar position. | 41 | Hear Voice Chat from avatar position. |
23 | </radio_item> | 42 | </radio_item> |
24 | </radio_group> | 43 | </radio_group> |
25 | <text type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-20" | 44 | |
26 | embedded_items="false" enabled="true" follows="left|top" | 45 | |
46 | <text type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-30" | ||
47 | embedded_items="false" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
27 | font="SansSerifSmall" height="16" hide_border="true" hide_scrollbar="true" | 48 | font="SansSerifSmall" height="16" hide_border="true" hide_scrollbar="true" |
28 | left_delta="0" max_length="65535" mouse_opaque="true" | 49 | left="20" max_length="65535" mouse_opaque="true" |
29 | name="push_to_talk_heading" width="445" word_wrap="true"> | 50 | name="push_to_talk_heading" width="445" word_wrap="true"> |
30 | Push To Talk: | 51 | Push To Talk: |
31 | </text> | 52 | </text> |
32 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-60" | 53 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-60" |
33 | embedded_items="false" enabled="false" follows="left|top" | 54 | embedded_items="false" enabled="false" follows="left|top" |
34 | font="SansSerifSmall" height="65" hide_border="true" hide_scrollbar="true" | 55 | font="SansSerifSmall" height="65" hide_border="true" hide_scrollbar="true" |
35 | left_delta="20" max_length="65535" mouse_opaque="true" | 56 | left_delta="30" max_length="65535" mouse_opaque="true" |
36 | name="voice_chat_description" tab_stop="false" width="465" word_wrap="true"> | 57 | name="voice_chat_description" tab_stop="false" width="465" word_wrap="true"> |
37 | Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down. | 58 | Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down. |
38 | </text_editor> | 59 | </text_editor> |
@@ -51,34 +72,38 @@ | |||
51 | drop_shadow_visible="true" enabled="false" | 72 | drop_shadow_visible="true" enabled="false" |
52 | follows="top|left" font="SansSerifSmall" halign="right" height="19" | 73 | follows="top|left" font="SansSerifSmall" halign="right" height="19" |
53 | left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo" | 74 | left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo" |
54 | width="280" /> | 75 | width="320" /> |
55 | <button bottom_delta="-25" follows="left|top" font="SansSerif" halign="center" | 76 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" halign="center" |
56 | height="20" label="Set Key" left_delta="0" mouse_opaque="true" | 77 | height="20" label="Set Key" left_delta="0" mouse_opaque="true" |
57 | name="set_voice_hotkey_button" width="115" /> | 78 | name="set_voice_hotkey_button" width="160" /> |
58 | <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center" height="20" | 79 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center" height="20" |
59 | label="Middle Mouse Button" left_delta="120" mouse_opaque="true" | 80 | label="Reset to Default" left_delta="165" mouse_opaque="true" |
60 | name="set_voice_middlemouse_button" width="160" /> | 81 | name="set_voice_middlemouse_button" width="160" /> |
61 | <text allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-25" | 82 | |
62 | embedded_items="false" enabled="true" follows="left|top" height="16" | 83 | |
63 | left="28" name="privacy_heading" width="445"> | 84 | <text allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-30" font="SansSerifSmall" |
85 | embedded_items="false" enabled="true" follows="left|top" height="16" font-style="BOLD|SHADOW" | ||
86 | left="30" name="privacy_heading" width="445"> | ||
64 | Privacy: | 87 | Privacy: |
65 | </text> | 88 | </text> |
66 | <check_box bottom_delta="-20" enabled="true" | 89 | <check_box bottom_delta="-20" enabled="true" |
67 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 90 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
68 | label="Only accept voice calls from people on My Friends list" | 91 | label="Only accept calls from my friends" |
69 | left_delta="20" mouse_opaque="true" name="voice_call_friends_only_check" | 92 | left_delta="30" mouse_opaque="true" name="voice_call_friends_only_check" |
70 | radio_style="false" width="200" /> | 93 | radio_style="false" width="200" /> |
71 | <check_box bottom_delta="-18" enabled="true" | 94 | <check_box bottom_delta="-18" enabled="true" |
72 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 95 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
73 | label="Switch off microphone when ending IM calls" | 96 | label="Switch off microphone when ending calls" |
74 | mouse_opaque="true" name="auto_disengage_mic_check" | 97 | mouse_opaque="true" name="auto_disengage_mic_check" |
75 | radio_style="false" width="200" /> | 98 | radio_style="false" width="200" /> |
76 | <button bottom_delta="-40" follows="left|top" font="SansSerif" height="20" | 99 | |
77 | label="Device Settings" left="28" mouse_opaque="true" | 100 | |
78 | name="device_settings_btn" width="155" /> | 101 | <button bottom_delta="-40" follows="left|top" font="SansSerifSmall" height="20" |
79 | <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center" height="20" | 102 | label="Device Settings" left="30" mouse_opaque="true" |
80 | label="Reconnect to Voice" left_delta="160" mouse_opaque="true" | 103 | name="device_settings_btn" width="160" /> |
81 | name="reset_voice" width="160" /> | 104 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center" height="20" |
105 | label="Reconnect to Voice" left_delta="160" mouse_opaque="true" | ||
106 | name="reset_voice" width="160" /> | ||
82 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-32" | 107 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-32" |
83 | embedded_items="false" enabled="false" follows="left|top" | 108 | embedded_items="false" enabled="false" follows="left|top" |
84 | font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true" | 109 | font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true" |
@@ -86,4 +111,6 @@ | |||
86 | name="device_settings_text" tab_stop="false" width="450" word_wrap="true"> | 111 | name="device_settings_text" tab_stop="false" width="450" word_wrap="true"> |
87 | NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied. | 112 | NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied. |
88 | </text_editor> | 113 | </text_editor> |
114 | |||
115 | |||
89 | </panel> | 116 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml deleted file mode 100644 index 7de8ef7..0000000 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | ||
3 | height="408" label="Web Browser" left="102" mouse_opaque="true" name="web" | ||
4 | width="517"> | ||
5 | <radio_group bottom="-45" draw_border="false" follows="top|left" height="40" left="12" | ||
6 | name="use_external_browser" width="480"> | ||
7 | <radio_item bottom="-20" height="20" left="0" name="external" width="480" | ||
8 | tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."> | ||
9 | Use external web browser (Firefox, Safari, Internet Explorer) | ||
10 | </radio_item> | ||
11 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480" | ||
12 | tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside Second Life."> | ||
13 | Use built-in web browser | ||
14 | </radio_item> | ||
15 | </radio_group> | ||
16 | <button bottom_delta="-30" enabled="true" follows="left|top" font="SansSerif" | ||
17 | halign="center" height="22" label="Clear Built-In Browser Cache" left="35" | ||
18 | mouse_opaque="true" name="clear_cache" scale_image="true" width="250" /> | ||
19 | <check_box bottom_delta="-35" enabled="true" follows="left|top" | ||
20 | font="SansSerifSmall" height="16" initial_value="false" | ||
21 | label="Accept cookies while using built-in web browser" left="15" mouse_opaque="true" | ||
22 | tool_top="Allows the built-in web browser to accept cookies from websites" | ||
23 | name="cookies_enabled" radio_style="false" width="256" /> | ||
24 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerif" | ||
25 | halign="center" height="20" label="Clear Cookies" left_delta="20" | ||
26 | tool_tip="Clear Cookies" | ||
27 | mouse_opaque="true" name="clear_ookies" scale_image="true" width="110" /> | ||
28 | <check_box bottom_delta="-35" enabled="true" | ||
29 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
30 | label="Enable proxy for built-in web browser" left="15" mouse_opaque="true" | ||
31 | name="web_proxy_enabled" radio_style="false" width="256" /> | ||
32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
33 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
34 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
35 | height="10" left_delta="20" mouse_opaque="false" name="proxy_text_label" | ||
36 | v_pad="0" width="128"> | ||
37 | Address: | ||
38 | </text> | ||
39 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
40 | height="20" left="112" name="web_proxy_editor" | ||
41 | tool_tip="The name or IP address of the proxy you would like to use" | ||
42 | width="200" /> | ||
43 | <spinner bottom_delta="-20" decimal_digits="0" | ||
44 | enabled="true" follows="left|top" height="16" increment="1" | ||
45 | initial_val="80" label="Port number:" label_width="75" left="35" | ||
46 | max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port" | ||
47 | width="140" /> | ||
48 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
49 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" | ||
50 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
51 | height="10" left="15" mouse_opaque="false" name="cache_size_label_l" | ||
52 | v_pad="0" width="200"> | ||
53 | Custom All (web) search tab URL: | ||
54 | </text> | ||
55 | <line_editor bottom_delta="-25" enabled="true" follows="left|top" | ||
56 | font="SansSerifSmall" height="18" left="15" name="world_search_editor" | ||
57 | tool_tip="Address of the world search engine you would like to use" | ||
58 | width="400" /> | ||
59 | <button bottom_delta="-22" enabled="true" follows="left|top" font="SansSerif" | ||
60 | halign="center" height="20" label="Reset" left="15" | ||
61 | tool_tip="Reset to default" | ||
62 | mouse_opaque="true" name="world_search_reset_default" scale_image="true" width="80" /> | ||
63 | <button bottom_delta="0" enabled="true" follows="left|top" font="SansSerif" | ||
64 | halign="center" height="20" label="Clear" left_delta="85" | ||
65 | tool_tip="clear field" | ||
66 | mouse_opaque="true" name="world_search_clear" scale_image="true" width="80" /> | ||
67 | |||
68 | </panel> | ||