aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/llui/lllineeditor.cpp77
-rw-r--r--linden/indra/llui/lltexteditor.cpp77
-rw-r--r--linden/indra/newview/app_settings/viewerversion.xml2
-rw-r--r--linden/indra/newview/lgghunspell_wrapper.cpp7
-rw-r--r--linden/indra/newview/lltexturecache.cpp5
-rw-r--r--linden/indra/newview/primbackup.cpp31
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml2
7 files changed, 76 insertions, 125 deletions
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp
index b3da7fd..e73b287 100644
--- a/linden/indra/llui/lllineeditor.cpp
+++ b/linden/indra/llui/lllineeditor.cpp
@@ -231,38 +231,22 @@ LLLineEditor::LLLineEditor(const std::string& name, const LLRect& rect,
231 menu->appendSeparator("Transep"); 231 menu->appendSeparator("Transep");
232 LLMenuGL* translatemenu = new LLMenuGL("Translate To"); 232 LLMenuGL* translatemenu = new LLMenuGL("Translate To");
233 translatemenu->setCanTearOff(FALSE); 233 translatemenu->setCanTearOff(FALSE);
234 SpellMenuBind* t=new SpellMenuBind;t->origin=this;t->word="en"; 234 translatemenu->append(new LLMenuItemCallGL("en", "English", context_translate, context_enable_translate, this));
235 translatemenu->append(new LLMenuItemCallGL("English", context_translate, context_enable_translate, t)); 235 translatemenu->append(new LLMenuItemCallGL("da", "Danish", context_translate, context_enable_translate, this));
236 t=new SpellMenuBind;t->origin=this;t->word="da"; 236 translatemenu->append(new LLMenuItemCallGL("de", "Deutsch(German)", context_translate, context_enable_translate, this));
237 translatemenu->append(new LLMenuItemCallGL("Danish", context_translate, context_enable_translate, t)); 237 translatemenu->append(new LLMenuItemCallGL("es", "Spanish", context_translate, context_enable_translate, this));
238 t=new SpellMenuBind;t->origin=this;t->word="de"; 238 translatemenu->append(new LLMenuItemCallGL("fr", "French", context_translate, context_enable_translate, this));
239 translatemenu->append(new LLMenuItemCallGL("Deutsch(German)", context_translate, context_enable_translate, t)); 239 translatemenu->append(new LLMenuItemCallGL("it", "Italian", context_translate, context_enable_translate, this));
240 t=new SpellMenuBind;t->origin=this;t->word="es"; 240 translatemenu->append(new LLMenuItemCallGL("hu", "Hungarian", context_translate, context_enable_translate, this));
241 translatemenu->append(new LLMenuItemCallGL("Spanish", context_translate, context_enable_translate, t)); 241 translatemenu->append(new LLMenuItemCallGL("nl", "Dutch", context_translate, context_enable_translate, this));
242 t=new SpellMenuBind;t->origin=this;t->word="fr"; 242 translatemenu->append(new LLMenuItemCallGL("pl", "Polish", context_translate, context_enable_translate, this));
243 translatemenu->append(new LLMenuItemCallGL("French", context_translate, context_enable_translate, t)); 243 translatemenu->append(new LLMenuItemCallGL("pt", "Portugese", context_translate, context_enable_translate, this));
244 t=new SpellMenuBind;t->origin=this;t->word="it"; 244 translatemenu->append(new LLMenuItemCallGL("ru", "Russian", context_translate, context_enable_translate, this));
245 translatemenu->append(new LLMenuItemCallGL("Italian", context_translate, context_enable_translate, t)); 245 translatemenu->append(new LLMenuItemCallGL("tr", "Turkish", context_translate, context_enable_translate, this));
246 t=new SpellMenuBind;t->origin=this;t->word="hu"; 246 translatemenu->append(new LLMenuItemCallGL("uk", "Ukrainian", context_translate, context_enable_translate, this));
247 translatemenu->append(new LLMenuItemCallGL("Hungarian", context_translate, context_enable_translate, t)); 247 translatemenu->append(new LLMenuItemCallGL("zh", "Chinese", context_translate, context_enable_translate, this));
248 t=new SpellMenuBind;t->origin=this;t->word="nl"; 248 translatemenu->append(new LLMenuItemCallGL("ja", "Japanese", context_translate, context_enable_translate, this));
249 translatemenu->append(new LLMenuItemCallGL("Dutch", context_translate, context_enable_translate, t)); 249 translatemenu->append(new LLMenuItemCallGL("ko", "Korean", context_translate, context_enable_translate, this));
250 t=new SpellMenuBind;t->origin=this;t->word="pl";
251 translatemenu->append(new LLMenuItemCallGL("Polish", context_translate, context_enable_translate, t));
252 t=new SpellMenuBind;t->origin=this;t->word="pt";
253 translatemenu->append(new LLMenuItemCallGL("Portugese", context_translate, context_enable_translate, t));
254 t=new SpellMenuBind;t->origin=this;t->word="ru";
255 translatemenu->append(new LLMenuItemCallGL("Russian", context_translate, context_enable_translate, t));
256 t=new SpellMenuBind;t->origin=this;t->word="tr";
257 translatemenu->append(new LLMenuItemCallGL("Turkish", context_translate, context_enable_translate, t));
258 t=new SpellMenuBind;t->origin=this;t->word="uk";
259 translatemenu->append(new LLMenuItemCallGL("Ukrainian", context_translate, context_enable_translate, t));
260 t=new SpellMenuBind;t->origin=this;t->word="zh";
261 translatemenu->append(new LLMenuItemCallGL("Chinese", context_translate, context_enable_translate, t));
262 t=new SpellMenuBind;t->origin=this;t->word="ja";
263 translatemenu->append(new LLMenuItemCallGL("Japanese", context_translate, context_enable_translate, t));
264 t=new SpellMenuBind;t->origin=this;t->word="ko";
265 translatemenu->append(new LLMenuItemCallGL("Korean", context_translate, context_enable_translate, t));
266 250
267 menu->appendMenu(translatemenu); 251 menu->appendMenu(translatemenu);
268 menu->appendSeparator("Spelsep"); 252 menu->appendSeparator("Spelsep");
@@ -555,15 +539,20 @@ void LLLineEditor::spell_correct(void* data)
555 539
556BOOL LLLineEditor::context_enable_translate(void* data) 540BOOL LLLineEditor::context_enable_translate(void* data)
557{ 541{
558 SpellMenuBind* t = (SpellMenuBind*)data; 542 LLLineEditor* line = (LLLineEditor*)data;
559 return (t && t->origin && t->origin->canTranslate()); 543 return line && line->canTranslate();
560} 544}
561 545
562void LLLineEditor::context_translate(void * data) 546void LLLineEditor::context_translate(void * data)
563{ 547{
564 SpellMenuBind* t = (SpellMenuBind*)data; 548 LLLineEditor* line = (LLLineEditor*)data;
565 LLLineEditor* line = t->origin; 549 LLMenuGL* menu = line ? (LLMenuGL*)(line->mPopupMenuHandle.get()) : NULL;
566 const std::string &toLang = t->word;//LLTranslate::getTranslateLanguage(); 550 LLMenuGL* translate_menu = menu ? menu->getChildMenuByName("Translate To", TRUE) : NULL;
551 if (!translate_menu)
552 {
553 return;
554 }
555 const std::string to_lang = translate_menu->getHighlightedItem()->getName();
567 556
568 bool has_text = false; 557 bool has_text = false;
569 S32 start, length; 558 S32 start, length;
@@ -584,8 +573,8 @@ void LLLineEditor::context_translate(void * data)
584 if (has_text) 573 if (has_text)
585 { 574 {
586 std::string to_translate = wstring_to_utf8str(line->getWText().substr(start, length)); 575 std::string to_translate = wstring_to_utf8str(line->getWText().substr(start, length));
587 LLHTTPClient::ResponderPtr result = LineChatTranslationReceiver::build(toLang, line, start, length); 576 LLHTTPClient::ResponderPtr result = LineChatTranslationReceiver::build(to_lang, line, start, length);
588 LLTranslate::translateMessage(result,"", toLang, to_translate); 577 LLTranslate::translateMessage(result,"", to_lang, to_translate);
589 } 578 }
590} 579}
591 580
@@ -790,7 +779,7 @@ BOOL LLLineEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
790 779
791 //setCursorAtLocalPos( x); 780 //setCursorAtLocalPos( x);
792 S32 wordStart = 0; 781 S32 wordStart = 0;
793 S32 wordEnd = 0; 782 S32 wordLen = 0;
794 S32 pos = calculateCursorFromMouse(x); 783 S32 pos = calculateCursorFromMouse(x);
795 784
796 LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get(); 785 LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();
@@ -819,11 +808,11 @@ BOOL LLLineEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
819 if (!mReadOnly && mSpellCheckable) 808 if (!mReadOnly && mSpellCheckable)
820 { 809 {
821 // search for word matches 810 // search for word matches
822 bool is_word_part = getWordBoundriesAt(pos, &wordStart, &wordEnd); 811 bool is_word_part = getWordBoundriesAt(pos, &wordStart, &wordLen);
823 if (is_word_part) 812 if (is_word_part)
824 { 813 {
825 const LLWString& text = mText.getWString(); 814 const LLWString& text = mText.getWString();
826 std::string selectedWord(std::string(text.begin(), text.end()).substr(wordStart,wordEnd-wordStart)); 815 std::string selectedWord(std::string(text.begin(), text.end()).substr(wordStart,wordLen));
827 816
828 if (!glggHunSpell->isSpelledRight(selectedWord)) 817 if (!glggHunSpell->isSpelledRight(selectedWord))
829 { 818 {
@@ -835,7 +824,7 @@ BOOL LLLineEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
835 SpellMenuBind * tempStruct = new SpellMenuBind; 824 SpellMenuBind * tempStruct = new SpellMenuBind;
836 tempStruct->origin = this; 825 tempStruct->origin = this;
837 tempStruct->word = suggs[i]; 826 tempStruct->word = suggs[i];
838 tempStruct->wordPositionEnd = wordEnd; 827 tempStruct->wordPositionEnd = wordStart + wordLen;
839 tempStruct->wordPositionStart=wordStart; 828 tempStruct->wordPositionStart=wordStart;
840 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL( 829 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL(
841 tempStruct->word, spell_correct, NULL, tempStruct); 830 tempStruct->word, spell_correct, NULL, tempStruct);
@@ -847,7 +836,7 @@ BOOL LLLineEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
847 SpellMenuBind * tempStruct = new SpellMenuBind; 836 SpellMenuBind * tempStruct = new SpellMenuBind;
848 tempStruct->origin = this; 837 tempStruct->origin = this;
849 tempStruct->word = selectedWord; 838 tempStruct->word = selectedWord;
850 tempStruct->wordPositionEnd = wordEnd; 839 tempStruct->wordPositionEnd = wordStart + wordLen;
851 tempStruct->wordPositionStart=wordStart; 840 tempStruct->wordPositionStart=wordStart;
852 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL( 841 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL(
853 "Add Word", spell_add, NULL, tempStruct); 842 "Add Word", spell_add, NULL, tempStruct);
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index 8dcb014..fdf8bcf 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -398,38 +398,22 @@ LLTextEditor::LLTextEditor(
398 menu->appendSeparator("Transep"); 398 menu->appendSeparator("Transep");
399 LLMenuGL* translatemenu = new LLMenuGL("Translate To"); 399 LLMenuGL* translatemenu = new LLMenuGL("Translate To");
400 translatemenu->setCanTearOff(FALSE); 400 translatemenu->setCanTearOff(FALSE);
401 SpellMenuBind* t=new SpellMenuBind;t->origin=this;t->word="en"; 401 translatemenu->append(new LLMenuItemCallGL("en", "English", context_translate, context_enable_translate, this));
402 translatemenu->append(new LLMenuItemCallGL("English", context_translate, context_enable_translate, t)); 402 translatemenu->append(new LLMenuItemCallGL("da", "Danish", context_translate, context_enable_translate, this));
403 t=new SpellMenuBind;t->origin=this;t->word="da"; 403 translatemenu->append(new LLMenuItemCallGL("de", "Deutsch(German)", context_translate, context_enable_translate, this));
404 translatemenu->append(new LLMenuItemCallGL("Danish", context_translate, context_enable_translate, t)); 404 translatemenu->append(new LLMenuItemCallGL("es", "Spanish", context_translate, context_enable_translate, this));
405 t=new SpellMenuBind;t->origin=this;t->word="de"; 405 translatemenu->append(new LLMenuItemCallGL("fr", "French", context_translate, context_enable_translate, this));
406 translatemenu->append(new LLMenuItemCallGL("Deutsch(German)", context_translate, context_enable_translate, t)); 406 translatemenu->append(new LLMenuItemCallGL("it", "Italian", context_translate, context_enable_translate, this));
407 t=new SpellMenuBind;t->origin=this;t->word="es"; 407 translatemenu->append(new LLMenuItemCallGL("hu", "Hungarian", context_translate, context_enable_translate, this));
408 translatemenu->append(new LLMenuItemCallGL("Spanish", context_translate, context_enable_translate, t)); 408 translatemenu->append(new LLMenuItemCallGL("nl", "Dutch", context_translate, context_enable_translate, this));
409 t=new SpellMenuBind;t->origin=this;t->word="fr"; 409 translatemenu->append(new LLMenuItemCallGL("pl", "Polish", context_translate, context_enable_translate, this));
410 translatemenu->append(new LLMenuItemCallGL("French", context_translate, context_enable_translate, t)); 410 translatemenu->append(new LLMenuItemCallGL("pt", "Portugese", context_translate, context_enable_translate, this));
411 t=new SpellMenuBind;t->origin=this;t->word="it"; 411 translatemenu->append(new LLMenuItemCallGL("ru", "Russian", context_translate, context_enable_translate, this));
412 translatemenu->append(new LLMenuItemCallGL("Italian", context_translate, context_enable_translate, t)); 412 translatemenu->append(new LLMenuItemCallGL("tr", "Turkish", context_translate, context_enable_translate, this));
413 t=new SpellMenuBind;t->origin=this;t->word="hu"; 413 translatemenu->append(new LLMenuItemCallGL("uk", "Ukrainian", context_translate, context_enable_translate, this));
414 translatemenu->append(new LLMenuItemCallGL("Hungarian", context_translate, context_enable_translate, t)); 414 translatemenu->append(new LLMenuItemCallGL("zh", "Chinese", context_translate, context_enable_translate, this));
415 t=new SpellMenuBind;t->origin=this;t->word="nl"; 415 translatemenu->append(new LLMenuItemCallGL("ja", "Japanese", context_translate, context_enable_translate, this));
416 translatemenu->append(new LLMenuItemCallGL("Dutch", context_translate, context_enable_translate, t)); 416 translatemenu->append(new LLMenuItemCallGL("ko", "Korean", context_translate, context_enable_translate, this));
417 t=new SpellMenuBind;t->origin=this;t->word="pl";
418 translatemenu->append(new LLMenuItemCallGL("Polish", context_translate, context_enable_translate, t));
419 t=new SpellMenuBind;t->origin=this;t->word="pt";
420 translatemenu->append(new LLMenuItemCallGL("Portugese", context_translate, context_enable_translate, t));
421 t=new SpellMenuBind;t->origin=this;t->word="ru";
422 translatemenu->append(new LLMenuItemCallGL("Russian", context_translate, context_enable_translate, t));
423 t=new SpellMenuBind;t->origin=this;t->word="tr";
424 translatemenu->append(new LLMenuItemCallGL("Turkish", context_translate, context_enable_translate, t));
425 t=new SpellMenuBind;t->origin=this;t->word="uk";
426 translatemenu->append(new LLMenuItemCallGL("Ukrainian", context_translate, context_enable_translate, t));
427 t=new SpellMenuBind;t->origin=this;t->word="zh";
428 translatemenu->append(new LLMenuItemCallGL("Chinese", context_translate, context_enable_translate, t));
429 t=new SpellMenuBind;t->origin=this;t->word="ja";
430 translatemenu->append(new LLMenuItemCallGL("Japanese", context_translate, context_enable_translate, t));
431 t=new SpellMenuBind;t->origin=this;t->word="ko";
432 translatemenu->append(new LLMenuItemCallGL("Korean", context_translate, context_enable_translate, t));
433 417
434 menu->appendMenu(translatemenu); 418 menu->appendMenu(translatemenu);
435 menu->appendSeparator("Spelsep"); 419 menu->appendSeparator("Spelsep");
@@ -483,15 +467,20 @@ void LLTextEditor::context_copy(void* data)
483 467
484BOOL LLTextEditor::context_enable_translate(void * data) 468BOOL LLTextEditor::context_enable_translate(void * data)
485{ 469{
486 SpellMenuBind* t = (SpellMenuBind*)data; 470 LLTextEditor* editor = (LLTextEditor*)data;
487 return (t && t->origin && t->origin->canTranslate()); 471 return editor && editor->canTranslate();
488} 472}
489 473
490void LLTextEditor::context_translate(void * data) 474void LLTextEditor::context_translate(void * data)
491{ 475{
492 SpellMenuBind* t = (SpellMenuBind*)data; 476 LLTextEditor* line = (LLTextEditor*)data;
493 LLTextEditor* line = t->origin; 477 LLMenuGL* menu = line ? (LLMenuGL*)(line->mPopupMenuHandle.get()) : NULL;
494 const std::string &toLang = t->word;//LLTranslate::getTranslateLanguage(); 478 LLMenuGL* translate_menu = menu ? menu->getChildMenuByName("Translate To", TRUE) : NULL;
479 if (!translate_menu)
480 {
481 return;
482 }
483 const std::string to_lang = translate_menu->getHighlightedItem()->getName();
495 484
496 bool has_text = false; 485 bool has_text = false;
497 S32 start, length; 486 S32 start, length;
@@ -512,8 +501,8 @@ void LLTextEditor::context_translate(void * data)
512 if (has_text) 501 if (has_text)
513 { 502 {
514 const std::string to_translate = wstring_to_utf8str(line->getWText().substr(start, length)); 503 const std::string to_translate = wstring_to_utf8str(line->getWText().substr(start, length));
515 LLHTTPClient::ResponderPtr result = TextChatTranslationReceiver::build(toLang, line, start, length); 504 LLHTTPClient::ResponderPtr result = TextChatTranslationReceiver::build(to_lang, line, start, length);
516 LLTranslate::translateMessage(result,"", toLang, to_translate); 505 LLTranslate::translateMessage(result,"", to_lang, to_translate);
517 } 506 }
518} 507}
519 508
@@ -1513,7 +1502,7 @@ BOOL LLTextEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
1513 1502
1514 //setCursorAtLocalPos( x, y, TRUE ); 1503 //setCursorAtLocalPos( x, y, TRUE );
1515 S32 wordStart = 0; 1504 S32 wordStart = 0;
1516 S32 wordEnd = 0; 1505 S32 wordLen = 0;
1517 S32 pos = getCursorPosFromLocalCoord(x,y,TRUE); 1506 S32 pos = getCursorPosFromLocalCoord(x,y,TRUE);
1518 1507
1519 LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get(); 1508 LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();
@@ -1537,11 +1526,11 @@ BOOL LLTextEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
1537 menu->setItemVisible("Spelsep", !mReadOnly && mSpellCheckable); 1526 menu->setItemVisible("Spelsep", !mReadOnly && mSpellCheckable);
1538 if (!mReadOnly && mSpellCheckable) 1527 if (!mReadOnly && mSpellCheckable)
1539 { 1528 {
1540 bool is_word_part = getWordBoundriesAt(pos, &wordStart, &wordEnd); 1529 bool is_word_part = getWordBoundriesAt(pos, &wordStart, &wordLen);
1541 if (is_word_part) 1530 if (is_word_part)
1542 { 1531 {
1543 const LLWString &text = mWText; 1532 const LLWString &text = mWText;
1544 std::string selectedWord(std::string(text.begin(), text.end()).substr(wordStart,wordEnd-wordStart)); 1533 std::string selectedWord(std::string(text.begin(), text.end()).substr(wordStart,wordLen));
1545 1534
1546 if (!glggHunSpell->isSpelledRight(selectedWord)) 1535 if (!glggHunSpell->isSpelledRight(selectedWord))
1547 { 1536 {
@@ -1553,7 +1542,7 @@ BOOL LLTextEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
1553 SpellMenuBind * tempStruct = new SpellMenuBind; 1542 SpellMenuBind * tempStruct = new SpellMenuBind;
1554 tempStruct->origin = this; 1543 tempStruct->origin = this;
1555 tempStruct->word = suggs[i]; 1544 tempStruct->word = suggs[i];
1556 tempStruct->wordPositionEnd = wordEnd; 1545 tempStruct->wordPositionEnd = wordStart + wordLen;
1557 tempStruct->wordPositionStart=wordStart; 1546 tempStruct->wordPositionStart=wordStart;
1558 tempStruct->wordY=y; 1547 tempStruct->wordY=y;
1559 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL( 1548 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL(
@@ -1565,7 +1554,7 @@ BOOL LLTextEditor::handleRightMouseDown( S32 x, S32 y, MASK mask )
1565 SpellMenuBind * tempStruct = new SpellMenuBind; 1554 SpellMenuBind * tempStruct = new SpellMenuBind;
1566 tempStruct->origin = this; 1555 tempStruct->origin = this;
1567 tempStruct->word = selectedWord; 1556 tempStruct->word = selectedWord;
1568 tempStruct->wordPositionEnd = wordEnd; 1557 tempStruct->wordPositionEnd = wordStart + wordLen;
1569 tempStruct->wordPositionStart=wordStart; 1558 tempStruct->wordPositionStart=wordStart;
1570 tempStruct->wordY=y; 1559 tempStruct->wordY=y;
1571 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL( 1560 LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL(
diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml
index e482bf7..555b244 100644
--- a/linden/indra/newview/app_settings/viewerversion.xml
+++ b/linden/indra/newview/app_settings/viewerversion.xml
@@ -20,6 +20,6 @@ need to be changed manually - MC
20 <viewer version_patch="0" /> 20 <viewer version_patch="0" />
21 21
22 <!--string--> 22 <!--string-->
23 <viewer version_test="Experimental 2010.10.02" /> 23 <viewer version_test="Experimental 2010.10.06-hotfix" />
24 24
25</viewer_version> 25</viewer_version>
diff --git a/linden/indra/newview/lgghunspell_wrapper.cpp b/linden/indra/newview/lgghunspell_wrapper.cpp
index aa4507c..9548c4f 100644
--- a/linden/indra/newview/lgghunspell_wrapper.cpp
+++ b/linden/indra/newview/lgghunspell_wrapper.cpp
@@ -472,7 +472,7 @@ static char * languageCodesraw[]={
472lggHunSpell_Wrapper::lggHunSpell_Wrapper() 472lggHunSpell_Wrapper::lggHunSpell_Wrapper()
473{ 473{
474 //languageCodes(begin(languageCodesraw), end(languageCodesraw)); 474 //languageCodes(begin(languageCodesraw), end(languageCodesraw));
475 mSpellCheckHighlight = rebind_llcontrol<BOOL>("EmeraldSpellDisplay", &gSavedSettings, false); 475 mSpellCheckHighlight = rebind_llcontrol<BOOL>("EmeraldSpellDisplay", &gSavedSettings, true);
476} 476}
477 477
478lggHunSpell_Wrapper::~lggHunSpell_Wrapper() 478lggHunSpell_Wrapper::~lggHunSpell_Wrapper()
@@ -963,8 +963,5 @@ void lggHunSpell_Wrapper::editCustomButton()
963 963
964void lggHunSpell_Wrapper::setSpellCheckHighlight(BOOL highlight) 964void lggHunSpell_Wrapper::setSpellCheckHighlight(BOOL highlight)
965{ 965{
966 if (mSpellCheckHighlight) 966 gSavedSettings.setBOOL("EmeraldSpellDisplay", highlight);
967 {
968 *mSpellCheckHighlight = highlight;
969 }
970} 967}
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp
index 46c125f..0c35b32 100644
--- a/linden/indra/newview/lltexturecache.cpp
+++ b/linden/indra/newview/lltexturecache.cpp
@@ -372,9 +372,10 @@ bool LLTextureCacheRemoteWorker::doRead()
372 if (!done && (mState == LOCAL)) 372 if (!done && (mState == LOCAL))
373 { 373 {
374 llassert(local_size != 0); // we're assuming there is a non empty local file here... 374 llassert(local_size != 0); // we're assuming there is a non empty local file here...
375 if (!mDataSize || mDataSize > local_size) 375 llassert(mReadData == NULL);
376 if (!mDataSize || mDataSize > (local_size - mOffset))
376 { 377 {
377 mDataSize = local_size; 378 mDataSize = local_size - mOffset;
378 } 379 }
379 // Allocate read buffer 380 // Allocate read buffer
380 mReadData = new U8[mDataSize]; 381 mReadData = new U8[mDataSize];
diff --git a/linden/indra/newview/primbackup.cpp b/linden/indra/newview/primbackup.cpp
index adbc4de..63043f0 100644
--- a/linden/indra/newview/primbackup.cpp
+++ b/linden/indra/newview/primbackup.cpp
@@ -350,34 +350,6 @@ void primbackup::pre_export_object()
350bool primbackup::check_perms( LLSelectNode* node ) 350bool primbackup::check_perms( LLSelectNode* node )
351{ 351{
352 LLPermissions *perms = node->mPermissions; 352 LLPermissions *perms = node->mPermissions;
353 // We check to see if there are megaprims in SL we can export.
354 // Cludgy, but the only option considering LL's TPV policy.
355 if (gHippoGridManager->getConnectedGrid()->isSecondLife())
356 {
357 bool is_sl_megaprim = false;
358 for (int i = 0; i < 3; ++i)
359 {
360 if (node->getObject()->getScale().mV[i] > 10)
361 {
362 is_sl_megaprim = true;
363 break;
364 }
365 }
366
367 if (is_sl_megaprim)
368 {
369 // The following avatars in Second Life have given Imprudence permission for their full-perm
370 // megaprims to be exported even if that means changing the creator from themselves:
371 // McCabe_Maxsted ("3fc0478f-1c40-48a1-b8a7-3b7062efeda1");
372 // Gene_Replacement ("adfacb56-390b-4fdc-9216-3494f1c59862");
373 return ((perms->getCreator() == LLUUID("3fc0478f-1c40-48a1-b8a7-3b7062efeda1") ||
374 perms->getCreator() == LLUUID("adfacb56-390b-4fdc-9216-3494f1c59862") ||
375 perms->getCreator() == gAgent.getID()) &&
376 perms->getOwner() == gAgent.getID() &&
377 (PERM_ITEM_UNRESTRICTED & perms->getMaskOwner()) == PERM_ITEM_UNRESTRICTED);
378 }
379 }
380
381 return (gAgent.getID() == perms->getOwner() && 353 return (gAgent.getID() == perms->getOwner() &&
382 gAgent.getID() == perms->getCreator() && 354 gAgent.getID() == perms->getCreator() &&
383 (PERM_ITEM_UNRESTRICTED & 355 (PERM_ITEM_UNRESTRICTED &
@@ -1139,4 +1111,7 @@ void primbackup::upload_next_asset()
1139 "Uploaded texture", 1111 "Uploaded texture",
1140 NULL, 1112 NULL,
1141 NULL); 1113 NULL);
1114
1115
1142} 1116}
1117
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 a0c9e28..c3ee726 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
@@ -139,7 +139,7 @@
139 name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page." 139 name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page."
140 right="490" width="18"/> 140 right="490" width="18"/>
141 <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" 141 <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16"
142 label="Show misspelled words in red (requires restart)" left="12" mouse_opaque="true" name="EmeraldSpellDisplay" 142 label="Show misspelled words in red" left="12" mouse_opaque="true" name="EmeraldSpellDisplay"
143 control_name="EmeraldSpellDisplay" width="126"/> 143 control_name="EmeraldSpellDisplay" width="126"/>
144 <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" 144 <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12"
145 name="EmSpell_txt1" width="512"> 145 name="EmSpell_txt1" width="512">