aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorelektrahesse2010-09-07 18:39:40 +0200
committerelektrahesse2010-09-07 18:39:40 +0200
commit22383f92482798cf5b5439396bdcdf1c8f9aa073 (patch)
tree538bc3c53d1d1f4245cf738d6ac045fa57dbe8d4
parentMerge branch 'weekly' of git://github.com/mccabe/imprudence into weekly (diff)
parentUse solid circles instead of asterisks for password fields. (diff)
downloadmeta-impy-22383f92482798cf5b5439396bdcdf1c8f9aa073.zip
meta-impy-22383f92482798cf5b5439396bdcdf1c8f9aa073.tar.gz
meta-impy-22383f92482798cf5b5439396bdcdf1c8f9aa073.tar.bz2
meta-impy-22383f92482798cf5b5439396bdcdf1c8f9aa073.tar.xz
Merge branch 'weekly' of git://github.com/mccabe/imprudence into weekly
Diffstat (limited to '')
-rw-r--r--linden/indra/llui/lllineeditor.cpp41
-rw-r--r--linden/indra/llui/lltexteditor.cpp14
-rw-r--r--linden/indra/newview/featuretable.txt4
-rw-r--r--linden/indra/newview/llinventorybridge.cpp61
-rw-r--r--linden/indra/newview/llinventoryview.cpp8
-rw-r--r--linden/indra/newview/llpaneldisplay.cpp29
-rw-r--r--linden/indra/newview/llpaneldisplay.h5
-rw-r--r--linden/indra/newview/llpreviewscript.cpp3
-rwxr-xr-xlinden/indra/newview/llviewermessage.cpp4
-rw-r--r--linden/indra/newview/llworldmapview.cpp22
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_about.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml23
13 files changed, 188 insertions, 40 deletions
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp
index 5441d0a..c1d8efa 100644
--- a/linden/indra/llui/lllineeditor.cpp
+++ b/linden/indra/llui/lllineeditor.cpp
@@ -439,7 +439,7 @@ S32 LLLineEditor::calculateCursorFromMouse( S32 local_mouse_x )
439 { 439 {
440 for (S32 i = 0; i < mText.length(); i++) 440 for (S32 i = 0; i < mText.length(); i++)
441 { 441 {
442 asterix_text += '*'; 442 asterix_text += (llwchar) 0x2022L;
443 } 443 }
444 wtext = asterix_text.c_str(); 444 wtext = asterix_text.c_str();
445 } 445 }
@@ -1938,7 +1938,7 @@ void LLLineEditor::draw()
1938 std::string text; 1938 std::string text;
1939 for (S32 i = 0; i < mText.length(); i++) 1939 for (S32 i = 0; i < mText.length(); i++)
1940 { 1940 {
1941 text += '*'; 1941 text += "\xe2\x80\xa2";
1942 } 1942 }
1943 mText = text; 1943 mText = text;
1944 } 1944 }
@@ -2621,28 +2621,37 @@ BOOL LLLineEditor::prevalidateASCII(const LLWString &str)
2621 2621
2622BOOL LLLineEditor::evaluateFloat() 2622BOOL LLLineEditor::evaluateFloat()
2623{ 2623{
2624 bool success; 2624 bool success = false;
2625 F32 result = 0.f;
2626 std::string expr = getText(); 2625 std::string expr = getText();
2627 LLStringUtil::toUpper(expr); 2626 LLStringUtil::toUpper(expr);
2628 2627
2629 success = LLCalc::getInstance()->evalString(expr, result); 2628 // user deleted the contents, nothing to evaluate -- MC
2630 2629 if (expr.empty())
2631 if (!success)
2632 { 2630 {
2633 // Move the cursor to near the error on failure 2631 return success;
2634 setCursor(LLCalc::getInstance()->getLastErrorPos());
2635 // *TODO: Translated error message indicating the type of error? Select error text?
2636 } 2632 }
2637 else 2633 else
2638 { 2634 {
2639 // Replace the expression with the result 2635 F32 result = 0.f;
2640 std::string result_str = llformat("%f",result); 2636 success = LLCalc::getInstance()->evalString(expr, result);
2641 setText(result_str);
2642 selectAll();
2643 }
2644 2637
2645 return success; 2638 if (!success)
2639 {
2640 // Move the cursor to near the error on failure
2641 setCursor(LLCalc::getInstance()->getLastErrorPos());
2642 // *TODO: Translated error message indicating the type of error? Select error text?
2643 }
2644 else
2645 {
2646 // Replace the expression with the result
2647 std::ostringstream result_str;
2648 result_str << result;
2649 setText(result_str.str());
2650 selectAll();
2651 }
2652
2653 return success;
2654 }
2646} 2655}
2647 2656
2648void LLLineEditor::onMouseCaptureLost() 2657void LLLineEditor::onMouseCaptureLost()
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index 51f7ad6..6e5cdc4 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -951,7 +951,14 @@ S32 LLTextEditor::getLineStart( S32 line ) const
951 S32 segoffset = mLineStartList[line].mOffset; 951 S32 segoffset = mLineStartList[line].mOffset;
952 LLTextSegment* seg = mSegments[segidx]; 952 LLTextSegment* seg = mSegments[segidx];
953 S32 res = seg->getStart() + segoffset; 953 S32 res = seg->getStart() + segoffset;
954 if (res > seg->getEnd()) llerrs << "wtf" << llendl; 954 if (res > seg->getEnd())
955 {
956 //llerrs << "wtf" << llendl;
957 // This happens when creating a new notecard using the AO on certain opensims.
958 // Play it safe instead of bringing down the viewer - MC
959 llwarns << "BAD JOOJOO! Text length (" << res << ") greater than text end (" << seg->getEnd() << "). Setting line start to " << seg->getEnd() << llendl;
960 res = seg->getEnd();
961 }
955 return res; 962 return res;
956} 963}
957 964
@@ -1079,6 +1086,11 @@ S32 LLTextEditor::getCursorPosFromLocalCoord( S32 local_x, S32 local_y, BOOL rou
1079 1086
1080void LLTextEditor::setCursor(S32 row, S32 column) 1087void LLTextEditor::setCursor(S32 row, S32 column)
1081{ 1088{
1089 // Make sure we're not trying to set the cursor anywhere
1090 // it can't go by always setting the min to 0 -- MC
1091 row = (row < 0) ? 0 : row;
1092 column = (column < 0) ? 0 : column;
1093
1082 const llwchar* doc = mWText.c_str(); 1094 const llwchar* doc = mWText.c_str();
1083 const char CR = 10; 1095 const char CR = 10;
1084 while(row--) 1096 while(row--)
diff --git a/linden/indra/newview/featuretable.txt b/linden/indra/newview/featuretable.txt
index d557df3..a31cd71 100644
--- a/linden/indra/newview/featuretable.txt
+++ b/linden/indra/newview/featuretable.txt
@@ -217,7 +217,7 @@ RenderLightingDetail 1 0
217RenderObjectBump 0 0 217RenderObjectBump 0 0
218RenderMaxPartCount 1 1024 218RenderMaxPartCount 1 1024
219RenderTerrainDetail 1 0 219RenderTerrainDetail 1 0
220RenderUseImpostors 0 0 220RenderUseImpostors 1 0
221RenderVBOEnable 1 0 221RenderVBOEnable 1 0
222RenderWaterReflections 0 0 222RenderWaterReflections 0 0
223WindLightUseAtmosShaders 0 0 223WindLightUseAtmosShaders 0 0
@@ -245,7 +245,7 @@ RenderVBOEnable 1 0
245list Intel 245list Intel
246RenderAnisotropic 1 0 246RenderAnisotropic 1 0
247RenderLightingDetail 1 0 247RenderLightingDetail 1 0
248RenderUseImpostors 0 0 248RenderUseImpostors 1 0
249 249
250list GeForce2 250list GeForce2
251RenderAnisotropic 1 0 251RenderAnisotropic 1 0
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index 4a5ad67..30b0a4a 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -53,6 +53,7 @@
53#include "llfloaterchat.h" 53#include "llfloaterchat.h"
54#include "llfloatercustomize.h" 54#include "llfloatercustomize.h"
55#include "llfloaterproperties.h" 55#include "llfloaterproperties.h"
56#include "llfloatertools.h"
56#include "llfloaterworldmap.h" 57#include "llfloaterworldmap.h"
57#include "llfocusmgr.h" 58#include "llfocusmgr.h"
58#include "llfolderview.h" 59#include "llfolderview.h"
@@ -72,10 +73,14 @@
72#include "llresmgr.h" 73#include "llresmgr.h"
73#include "llscrollcontainer.h" 74#include "llscrollcontainer.h"
74#include "llimview.h" 75#include "llimview.h"
76#include "lltoolcomp.h"
75#include "lltooldraganddrop.h" 77#include "lltooldraganddrop.h"
78#include "lltoolmgr.h"
76#include "llviewerimagelist.h" 79#include "llviewerimagelist.h"
77#include "llviewerinventory.h" 80#include "llviewerinventory.h"
81#include "llviewerjoystick.h"
78#include "llviewerobjectlist.h" 82#include "llviewerobjectlist.h"
83#include "llviewerparcelmgr.h"
79#include "llviewerwindow.h" 84#include "llviewerwindow.h"
80#include "llvoavatar.h" 85#include "llvoavatar.h"
81#include "llwaterparammanager.h" 86#include "llwaterparammanager.h"
@@ -3493,6 +3498,55 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model
3493 llwarns << "object not found - ignoring" << llendl; 3498 llwarns << "object not found - ignoring" << llendl;
3494 } 3499 }
3495 } 3500 }
3501 else if ("edit" == action)
3502 {
3503 if (gRlvHandler.hasBehaviour(RLV_BHVR_EDIT))
3504 return;
3505 LLVOAvatar* avatarp = gAgent.getAvatarObject();
3506 if (!avatarp)
3507 return;
3508 LLViewerObject* objectp = avatarp->getWornAttachment(mUUID);
3509 if (!objectp)
3510 return;
3511
3512 // [Selective copy/paste from LLObjectEdit::handleEvent()]
3513 LLViewerParcelMgr::getInstance()->deselectLand();
3514 LLSelectMgr::getInstance()->deselectAll();
3515
3516 if (gAgent.getFocusOnAvatar() && !LLToolMgr::getInstance()->inEdit())
3517 {
3518 if (objectp->isHUDAttachment() || !gSavedSettings.getBOOL("EditCameraMovement"))
3519 {
3520 // always freeze camera in space, even if camera doesn't move
3521 // so, for example, follow cam scripts can't affect you when in build mode
3522 gAgent.setFocusGlobal(gAgent.calcFocusPositionTargetGlobal(), LLUUID::null);
3523 gAgent.setFocusOnAvatar(FALSE, ANIMATE);
3524 }
3525 else
3526 {
3527 gAgent.setFocusOnAvatar(FALSE, ANIMATE);
3528
3529 // zoom in on object center instead of where we clicked, as we need to see the manipulator handles
3530 gAgent.setFocusGlobal(objectp->getPositionGlobal(), objectp->getID());
3531 gAgent.cameraZoomIn(0.666f);
3532 gAgent.cameraOrbitOver( 30.f * DEG_TO_RAD );
3533 gViewerWindow->moveCursorToCenter();
3534 }
3535 }
3536
3537 gFloaterTools->open();
3538
3539 LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
3540 gFloaterTools->setEditTool( LLToolCompTranslate::getInstance() );
3541
3542 LLViewerJoystick::getInstance()->moveObjects(true);
3543 LLViewerJoystick::getInstance()->setNeedsReset(true);
3544
3545 LLSelectMgr::getInstance()->selectObjectAndFamily(objectp);
3546
3547 // Could be first use
3548 LLFirstUse::useBuild();
3549 }
3496 else LLItemBridge::performAction(folder, model, action); 3550 else LLItemBridge::performAction(folder, model, action);
3497} 3551}
3498 3552
@@ -3654,9 +3708,15 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
3654 return; 3708 return;
3655 } 3709 }
3656 3710
3711 items.push_back(std::string("Attach Separator"));
3657 if( avatarp->isWearingAttachment( mUUID ) ) 3712 if( avatarp->isWearingAttachment( mUUID ) )
3658 { 3713 {
3659 items.push_back(std::string("Detach From Yourself")); 3714 items.push_back(std::string("Detach From Yourself"));
3715 items.push_back(std::string("Attachment Edit"));
3716 if ( ( (flags & FIRST_SELECTED_ITEM) == 0) || (gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) )
3717 {
3718 disabled_items.push_back(std::string("Attachment Edit"));
3719 }
3660 3720
3661// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a 3721// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
3662 if ( (rlv_handler_t::isEnabled()) && 3722 if ( (rlv_handler_t::isEnabled()) &&
@@ -3669,7 +3729,6 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
3669 else 3729 else
3670 if( !isInTrash() ) 3730 if( !isInTrash() )
3671 { 3731 {
3672 items.push_back(std::string("Attach Separator"));
3673 items.push_back(std::string("Object Wear")); 3732 items.push_back(std::string("Object Wear"));
3674 items.push_back(std::string("Attach To")); 3733 items.push_back(std::string("Attach To"));
3675 items.push_back(std::string("Attach To HUD")); 3734 items.push_back(std::string("Attach To HUD"));
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp
index 952121f..939d50b 100644
--- a/linden/indra/newview/llinventoryview.cpp
+++ b/linden/indra/newview/llinventoryview.cpp
@@ -578,11 +578,11 @@ void LLInventoryView::init(LLInventoryModel* inventory)
578 std::ostringstream filterSaveName; 578 std::ostringstream filterSaveName;
579 filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml"); 579 filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml");
580 llinfos << "LLInventoryView::init: reading from " << filterSaveName << llendl; 580 llinfos << "LLInventoryView::init: reading from " << filterSaveName << llendl;
581 llifstream file(filterSaveName.str()); 581 llifstream file(filterSaveName.str());
582 LLSD savedFilterState; 582 LLSD savedFilterState;
583 if (file.is_open()) 583 if (file.is_open())
584 { 584 {
585 LLSDSerialize::fromXML(savedFilterState, file); 585 LLSDSerialize::fromXML(savedFilterState, file);
586 file.close(); 586 file.close();
587 587
588 // Load the persistent "Recent Items" settings. 588 // Load the persistent "Recent Items" settings.
diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp
index cbf6052..b2313f6 100644
--- a/linden/indra/newview/llpaneldisplay.cpp
+++ b/linden/indra/newview/llpaneldisplay.cpp
@@ -242,6 +242,8 @@ BOOL LLPanelDisplay::postBuild()
242 // Avatar Render Mode 242 // Avatar Render Mode
243 mCtrlAvatarCloth = getChild<LLCheckBoxCtrl>("AvatarCloth"); 243 mCtrlAvatarCloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
244 mCtrlAvatarImpostors = getChild<LLCheckBoxCtrl>("AvatarImpostors"); 244 mCtrlAvatarImpostors = getChild<LLCheckBoxCtrl>("AvatarImpostors");
245 mCtrlAvatarImpostors->setCommitCallback(&LLPanelDisplay::onImpostorsEnable);
246 mCtrlAvatarImpostors->setCallbackUserData(this);
245 247
246 //---------------------------------------------------------------------------- 248 //----------------------------------------------------------------------------
247 // radio set for lighting detail 249 // radio set for lighting detail
@@ -311,6 +313,10 @@ BOOL LLPanelDisplay::postBuild()
311 mCtrlPostProcess->setCommitCallback(&LLPanelDisplay::updateSliderText); 313 mCtrlPostProcess->setCommitCallback(&LLPanelDisplay::updateSliderText);
312 mCtrlPostProcess->setCallbackUserData(mPostProcessText); 314 mCtrlPostProcess->setCallbackUserData(mPostProcessText);
313 315
316 // Avatar imposter count
317 mCtrlAvatarMaxVisible = getChild<LLSliderCtrl>("AvatarMaxVisible");
318 mAvatarCountText = getChild<LLTextBox>("AvatarCountText");
319
314 // Text boxes (for enabling/disabling) 320 // Text boxes (for enabling/disabling)
315 mShaderText = getChild<LLTextBox>("ShadersText"); 321 mShaderText = getChild<LLTextBox>("ShadersText");
316 mReflectionText = getChild<LLTextBox>("ReflectionDetailText"); 322 mReflectionText = getChild<LLTextBox>("ReflectionDetailText");
@@ -411,8 +417,12 @@ void LLPanelDisplay::refresh()
411 mLightingDetail = gSavedSettings.getS32("RenderLightingDetail"); 417 mLightingDetail = gSavedSettings.getS32("RenderLightingDetail");
412 mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail"); 418 mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail");
413 419
420 // windlight remote
414 mWLControl = gSavedSettings.getBOOL("EnableWindlightRemote"); 421 mWLControl = gSavedSettings.getBOOL("EnableWindlightRemote");
415 422
423 // max avatar count
424 mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible");
425
416 // slider text boxes 426 // slider text boxes
417 updateSliderText(mCtrlLODFactor, mLODFactorText); 427 updateSliderText(mCtrlLODFactor, mLODFactorText);
418 updateSliderText(mCtrlFlexFactor, mFlexFactorText); 428 updateSliderText(mCtrlFlexFactor, mFlexFactorText);
@@ -572,6 +582,9 @@ void LLPanelDisplay::disableUnavailableSettings()
572 mCtrlAvatarImpostors->setEnabled(FALSE); 582 mCtrlAvatarImpostors->setEnabled(FALSE);
573 mCtrlAvatarImpostors->setValue(FALSE); 583 mCtrlAvatarImpostors->setValue(FALSE);
574 } 584 }
585
586 mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean());
587 mAvatarCountText->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean());
575} 588}
576 589
577void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) 590void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
@@ -587,6 +600,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
587 llassert(mCtrlTerrainFactor != NULL); 600 llassert(mCtrlTerrainFactor != NULL);
588 llassert(mCtrlSkyFactor != NULL); 601 llassert(mCtrlSkyFactor != NULL);
589 llassert(mCtrlMaxParticle != NULL); 602 llassert(mCtrlMaxParticle != NULL);
603 llassert(mCtrlAvatarMaxVisible != NULL);
590 llassert(mCtrlPostProcess != NULL); 604 llassert(mCtrlPostProcess != NULL);
591 605
592 llassert(mLODFactorText != NULL); 606 llassert(mLODFactorText != NULL);
@@ -617,6 +631,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
617 llassert(mTerrainText != NULL); 631 llassert(mTerrainText != NULL);
618 llassert(mDrawDistanceMeterText1 != NULL); 632 llassert(mDrawDistanceMeterText1 != NULL);
619 llassert(mDrawDistanceMeterText2 != NULL); 633 llassert(mDrawDistanceMeterText2 != NULL);
634 llassert(mAvatarCountText != NULL);
620 635
621 // enable/disable the states 636 // enable/disable the states
622 mGraphicsBorder->setVisible(!isHidden); 637 mGraphicsBorder->setVisible(!isHidden);
@@ -664,6 +679,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
664 mTerrainText->setVisible(!isHidden); 679 mTerrainText->setVisible(!isHidden);
665 mDrawDistanceMeterText1->setVisible(!isHidden); 680 mDrawDistanceMeterText1->setVisible(!isHidden);
666 mDrawDistanceMeterText2->setVisible(!isHidden); 681 mDrawDistanceMeterText2->setVisible(!isHidden);
682 mAvatarCountText->setVisible(!isHidden);
667 683
668 // hide one meter text if we're making things visible 684 // hide one meter text if we're making things visible
669 if(!isHidden) 685 if(!isHidden)
@@ -672,6 +688,8 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
672 } 688 }
673 689
674 mMeshDetailText->setVisible(!isHidden); 690 mMeshDetailText->setVisible(!isHidden);
691
692 mCtrlAvatarMaxVisible->setVisible(!isHidden);
675} 693}
676 694
677void LLPanelDisplay::cancel() 695void LLPanelDisplay::cancel()
@@ -708,6 +726,8 @@ void LLPanelDisplay::cancel()
708 gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess); 726 gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess);
709 727
710 gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl); 728 gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl);
729
730 gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible);
711} 731}
712 732
713void LLPanelDisplay::apply() 733void LLPanelDisplay::apply()
@@ -987,5 +1007,12 @@ void LLPanelDisplay::updateMeterText(LLUICtrl* ctrl, void* user_data)
987 m2->setVisible(!two_digits); 1007 m2->setVisible(!two_digits);
988} 1008}
989 1009
1010// static
1011void LLPanelDisplay::onImpostorsEnable(LLUICtrl* ctrl, void* user_data)
1012{
1013 LLPanelDisplay* self = (LLPanelDisplay*)user_data;
1014 LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl;
990 1015
991 1016 self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean());
1017 self->mAvatarCountText->setEnabled(checkbox->getValue().asBoolean());
1018}
diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h
index 1cbdbba..e92cd2f 100644
--- a/linden/indra/newview/llpaneldisplay.h
+++ b/linden/indra/newview/llpaneldisplay.h
@@ -104,6 +104,7 @@ protected:
104 LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain 104 LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain
105 LLSliderCtrl *mCtrlMaxParticle; // Max Particle 105 LLSliderCtrl *mCtrlMaxParticle; // Max Particle
106 LLSliderCtrl *mCtrlPostProcess; // Max Particle 106 LLSliderCtrl *mCtrlPostProcess; // Max Particle
107 LLSliderCtrl *mCtrlAvatarMaxVisible; // Max avatars visible
107 108
108 LLCheckBoxCtrl *mCtrlBumpShiny; 109 LLCheckBoxCtrl *mCtrlBumpShiny;
109 LLCheckBoxCtrl *mCtrlReflections; 110 LLCheckBoxCtrl *mCtrlReflections;
@@ -138,6 +139,7 @@ protected:
138 LLTextBox *mTerrainFactorText; 139 LLTextBox *mTerrainFactorText;
139 LLTextBox *mSkyFactorText; 140 LLTextBox *mSkyFactorText;
140 LLTextBox *mPostProcessText; 141 LLTextBox *mPostProcessText;
142 LLTextBox *mAvatarCountText;
141 143
142 BOOL mFSAutoDetectAspect; 144 BOOL mFSAutoDetectAspect;
143 F32 mAspectRatio; 145 F32 mAspectRatio;
@@ -171,6 +173,8 @@ protected:
171 S32 mParticleCount; 173 S32 mParticleCount;
172 S32 mPostProcess; 174 S32 mPostProcess;
173 175
176 S32 mAvatarMaxVisible;
177
174 BOOL mWLControl; 178 BOOL mWLControl;
175 179
176 static void setGraphicsSettings(LLControlGroup& group); 180 static void setGraphicsSettings(LLControlGroup& group);
@@ -191,6 +195,7 @@ protected:
191 static void onApplyResolution(LLUICtrl* ctrl, void* data); 195 static void onApplyResolution(LLUICtrl* ctrl, void* data);
192 static void updateSliderText(LLUICtrl* ctrl, void* user_data); 196 static void updateSliderText(LLUICtrl* ctrl, void* user_data);
193 static void updateMeterText(LLUICtrl* ctrl, void* user_data); 197 static void updateMeterText(LLUICtrl* ctrl, void* user_data);
198 static void onImpostorsEnable(LLUICtrl* ctrl, void* user_data);
194 199
195 /// callback for defaults 200 /// callback for defaults
196 static void setHardwareDefaults(void *data); 201 static void setHardwareDefaults(void *data);
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp
index c77f7ff..d8c3aa9 100644
--- a/linden/indra/newview/llpreviewscript.cpp
+++ b/linden/indra/newview/llpreviewscript.cpp
@@ -1097,6 +1097,9 @@ void LLPreviewLSL::callbackLSLCompileFailed(const LLSD& compile_errors)
1097 line < compile_errors.endArray(); 1097 line < compile_errors.endArray();
1098 line++) 1098 line++)
1099 { 1099 {
1100 // Note: OpenSim screws up and sends the wrong values for (row, column).
1101 // (As of 2010-09-06: rows start at -1 instead of 0, and columns start at
1102 // 1 instead of 0) -- MC
1100 LLSD row; 1103 LLSD row;
1101 std::string error_message = line->asString(); 1104 std::string error_message = line->asString();
1102 LLStringUtil::stripNonprintable(error_message); 1105 LLStringUtil::stripNonprintable(error_message);
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 45fd772..4cf9c87 100755
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -4911,6 +4911,10 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
4911 args["MESSAGE"] = desc; 4911 args["MESSAGE"] = desc;
4912 LLNotifications::instance().add("SystemMessage", args); 4912 LLNotifications::instance().add("SystemMessage", args);
4913 4913
4914 // Also send notification to chat -- MC
4915 LLChat chat(desc);
4916 LLFloaterChat::addChat(desc);
4917
4914 // Once the 'recent' container gets large enough, chop some 4918 // Once the 'recent' container gets large enough, chop some
4915 // off the beginning. 4919 // off the beginning.
4916 const U32 MAX_LOOKBACK = 30; 4920 const U32 MAX_LOOKBACK = 30;
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index 2e28d18..d8e5b3d 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -719,6 +719,28 @@ void LLWorldMapView::draw()
719 LLFontGL::DROP_SHADOW); 719 LLFontGL::DROP_SHADOW);
720 } 720 }
721 mesg = info->mName; 721 mesg = info->mName;
722
723 // Add access level to region name
724 U8 access = info->mAccess;
725 switch(access)
726 {
727 case SIM_ACCESS_MIN:
728 // Don't show this due to different use based on different grids -- MC
729 //mesg += " (" + LLTrans::getString("SIM_ACCESS_MIN") +")";
730 break;
731 case SIM_ACCESS_PG:
732 mesg += " (" + LLTrans::getString("SIM_ACCESS_PG") +")";
733 break;
734 case SIM_ACCESS_MATURE:
735 mesg += " (" + LLTrans::getString("SIM_ACCESS_MATURE") +")";
736 break;
737 case SIM_ACCESS_ADULT:
738 mesg += " (" + LLTrans::getString("SIM_ACCESS_ADULT") +")";
739 break;
740 default:
741 mesg += llformat(" (Access: %d)", access);
742 break;
743 }
722 } 744 }
723 else 745 else
724 { 746 {
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
index 1ba9c40..ef02bfa 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
@@ -8,16 +8,16 @@
8 max_length="65536" mouse_opaque="true" name="credits_editor" width="458" 8 max_length="65536" mouse_opaque="true" name="credits_editor" width="458"
9 word_wrap="true"> 9 word_wrap="true">
10 The Imprudence Viewer was rocked hard by: 10 The Imprudence Viewer was rocked hard by:
11 Jacek Antonelli, McCabe Maxsted, and Armin Weatherwax. 11 Jacek Antonelli, McCabe Maxsted, Armin Weatherwax, Elektra Hesse, and CodeBastard Redgrave.
12 http://imprudenceviewer.org 12 http://imprudenceviewer.org
13 13
14 Imprudence is so awesome thanks to contributions from many generous people: 14 Imprudence is so awesome thanks to contributions from many generous people:
15 15
16 For their patches and code contributions, we thank Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Angus Boyd, Asuka Neely, Balp Allen, Carjay McGinnis, Dale Glass, Felix Duesenburg, Geneko Nemeth, Henri Beauchamp, Kitty Barnett, Latif Khalifa, Lilly Zenovka, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Nicholaz Beresford, Paul Churchill, Peter Lameth, Robin Cornelius, Stephen Zenith, Thomas Shikami, Vadim Bigbear, Zi Ree, and Zwagoth Klaar. 16 For their patches and code contributions, we thank Admiral Admiral, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Archimedies Plutonian, Angus Boyd, Ansariel Hiller, Ardy Lay, Asuka Neely, Balp Allen, Carjay McGinnis, Chalice Yao, Dale Glass, Damian Delacrois, Danny Nolan, Felix Duesenburg, Geneko Nemeth, Henri Beauchamp, Katharine Berry, KirstenLee Cinquetti, Kitty Barnett, Latif Khalifa, Lilly Zenovka, Makomk Makosen, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Mm Alder, Nemurimasu Neiro, Nicholaz Beresford, Patrick Sapinski, Paul Churchill, Peter Lameth, Robin Cornelius, Stephen Zenith, Thickbrick Sleaford, Thomas Shikami, Tom Meta, tx Oh, Vaalith Jinn, Vadim Bigbear, Vex Streeter, Zi Ree, and Zwagoth Klaar.
17 17
18 For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden. 18 For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden.
19 19
20 Thanks also to the developer(s) of the Emerald Viewer, Hippo Viewer, Cool VL Viewer, and Meerkat Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible. 20 Thanks also to the developer(s) of the Emerald Viewer, Hippo Viewer, Cool VL Viewer, Snowglobe Viewer, Meta7 Viewer, FrozenGlobe Viewer, and Meerkat Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible.
21 21
22 For a complete list of who did what, read the release notes! 22 For a complete list of who did what, read the release notes!
23 23
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
index 78fc75e..1ae7465 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
@@ -249,13 +249,9 @@
249 mouse_opaque="true" name="Detach From Yourself" width="128"> 249 mouse_opaque="true" name="Detach From Yourself" width="128">
250 <on_click filter="" function="Inventory.DoToSelected" userdata="detach" /> 250 <on_click filter="" function="Inventory.DoToSelected" userdata="detach" />
251 </menu_item_call> 251 </menu_item_call>
252 <!-- COMMENTED OUT for DEV-32347 --> 252 <menu_item_call bottom_delta="-18" height="18" label="Edit" left="0" mouse_opaque="true" name="Attachment Edit" width="128">
253 <!-- 253 <on_click filter="" function="Inventory.DoToSelected" userdata="edit" />
254 <menu_item_call bottom_delta="-18" height="18" label="Restore to Last Position" left="0" mouse_opaque="true"
255 name="Restore to Last Position" width="128">
256 <on_click filter="" function="Inventory.DoToSelected" userdata="restoreToWorld" />
257 </menu_item_call> 254 </menu_item_call>
258 -->
259 <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true" 255 <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true"
260 name="Object Wear" width="128"> 256 name="Object Wear" width="128">
261 <on_click filter="" function="Inventory.DoToSelected" userdata="attach" /> 257 <on_click filter="" function="Inventory.DoToSelected" userdata="attach" />
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 55af056..153a111 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
@@ -162,8 +162,8 @@
162 follows="left|top" font="SansSerifSmall" height="16" 162 follows="left|top" font="SansSerifSmall" height="16"
163 initial_value="true" label="Custom" left="385" mouse_opaque="true" 163 initial_value="true" label="Custom" left="385" mouse_opaque="true"
164 name="CustomSettings" radio_style="false" width="256" /> 164 name="CustomSettings" radio_style="false" width="256" />
165 <view_border bevel_style="none" border_thickness="1" bottom="-375" follows="top|left" 165 <view_border bevel_style="none" border_thickness="1" bottom="-415" follows="left|top"
166 height="260" left="5" name="GraphicsBorder" width="485" /> 166 height="300" left="5" name="GraphicsBorder" width="485" />
167 <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"
168 bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top" 168 bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top"
169 font="SansSerifSmall" h_pad="0" halign="left" height="12" 169 font="SansSerifSmall" h_pad="0" halign="left" height="12"
@@ -235,6 +235,17 @@
235 follows="left|top" font="SansSerifSmall" height="16" initial_value="true" 235 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
236 label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth" 236 label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth"
237 radio_style="false" width="256" /> 237 radio_style="false" width="256" />
238 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
239 bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
240 font="SansSerifSmall" h_pad="0" halign="left" height="12" left_delta="0"
241 mouse_opaque="true" name="AvatarCountText" v_pad="0" width="128">
242 Max. non-imposters:
243 </text>
244 <slider bottom_delta="-20" can_edit_text="false" control_name="RenderAvatarMaxVisible"
245 decimal_digits="0" enabled="true" follows="left|top" height="16"
246 increment="1" initial_val="35" label=""
247 label_width="0" left_delta="0" max_val="50" min_val="0" mouse_opaque="true"
248 name="AvatarMaxVisible" show_text="true" width="100" />
238 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 249 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
239 bottom="-131" drop_shadow_visible="true" enabled="true" follows="left|top" 250 bottom="-131" drop_shadow_visible="true" enabled="true" follows="left|top"
240 font="SansSerifSmall" h_pad="0" halign="left" height="12" 251 font="SansSerifSmall" h_pad="0" halign="left" height="12"
@@ -387,13 +398,13 @@
387 High 398 High
388 </radio_item> 399 </radio_item>
389 </radio_group> 400 </radio_group>
390 <button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20" 401 <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20"
391 label="Recommended Settings" left="130" mouse_opaque="true" 402 label="Recommended Settings" left="130" mouse_opaque="true"
392 name="Defaults" scale_image="true" width="170" /> 403 name="Defaults" scale_image="true" width="170" follows="left|bottom" />
393 <button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20" 404 <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20"
394 label="Hardware Options" label_selected="Hardware Options" 405 label="Hardware Options" label_selected="Hardware Options"
395 left="310" mouse_opaque="true" name="GraphicsHardwareButton" 406 left="310" mouse_opaque="true" name="GraphicsHardwareButton"
396 scale_image="true" width="170" /> 407 scale_image="true" width="170" follows="left|bottom" />
397 <string name="resolution_format"> 408 <string name="resolution_format">
398 [RES_X] x [RES_Y] 409 [RES_X] x [RES_Y]
399 </string> 410 </string>