From 96a3a589489ff61bf9e6e71fda3ab923b6c2869b Mon Sep 17 00:00:00 2001
From: Elektra Hesse
Date: Sat, 4 Sep 2010 21:00:09 +0200
Subject: Fixed Boost.cmake to correctly find the boost_system lib on mac
---
linden/indra/cmake/Boost.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'linden/indra')
diff --git a/linden/indra/cmake/Boost.cmake b/linden/indra/cmake/Boost.cmake
index 90f39d2..692902a 100644
--- a/linden/indra/cmake/Boost.cmake
+++ b/linden/indra/cmake/Boost.cmake
@@ -10,7 +10,7 @@ if (STANDALONE)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
- set(BOOST_SYSTEM_LIBRARY boost_filesystem-mt)
+ set(BOOST_SYSTEM_LIBRARY boost_system-mt)
else (STANDALONE)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
@@ -43,7 +43,7 @@ else (STANDALONE)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
- set(BOOST_SYSTEM_LIBRARY boost_filesystem-mt)
+ set(BOOST_SYSTEM_LIBRARY boost_system-mt)
elseif (LINUX)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
--
cgit v1.1
From d4655d5a6bd6d309dabbc19a7404c94c6edffb42 Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Sun, 5 Sep 2010 00:32:09 -0700
Subject: Updated list of viewers and contributors in Help > About Imprudence
from the 1.3 release notes and commits in the first Experimental release.
Please add any other names we're missing
---
linden/indra/newview/skins/default/xui/en-us/floater_about.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'linden/indra')
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 @@
max_length="65536" mouse_opaque="true" name="credits_editor" width="458"
word_wrap="true">
The Imprudence Viewer was rocked hard by:
- Jacek Antonelli, McCabe Maxsted, and Armin Weatherwax.
+ Jacek Antonelli, McCabe Maxsted, Armin Weatherwax, Elektra Hesse, and CodeBastard Redgrave.
http://imprudenceviewer.org
Imprudence is so awesome thanks to contributions from many generous people:
- 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.
+ 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.
For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden.
- 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.
+ 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.
For a complete list of who did what, read the release notes!
--
cgit v1.1
From 27964ba7c04fac792ba2159d72f94ef247f3099b Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Sun, 5 Sep 2010 21:11:28 -0700
Subject: Applied patch from Emerald, ported by Ansariel Hiller: #490: show
access level next to region name
---
linden/indra/newview/llworldmapview.cpp | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
(limited to 'linden/indra')
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index 2e28d18..2632ae4 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -719,6 +719,27 @@ void LLWorldMapView::draw()
LLFontGL::DROP_SHADOW);
}
mesg = info->mName;
+
+ // Add access level to region name
+ U8 access = info->mAccess;
+ switch(access)
+ {
+ case SIM_ACCESS_MIN:
+ mesg += " (" + LLTrans::getString("SIM_ACCESS_MIN") +")";
+ break;
+ case SIM_ACCESS_PG:
+ mesg += " (" + LLTrans::getString("SIM_ACCESS_PG") +")";
+ break;
+ case SIM_ACCESS_MATURE:
+ mesg += " (" + LLTrans::getString("SIM_ACCESS_MATURE") +")";
+ break;
+ case SIM_ACCESS_ADULT:
+ mesg += " (" + LLTrans::getString("SIM_ACCESS_ADULT") +")";
+ break;
+ default:
+ mesg += llformat(" (Access: %d)", access);
+ break;
+ }
}
else
{
--
cgit v1.1
From fd8c70565a596286f95db90afb60185a68d879e4 Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Sun, 5 Sep 2010 23:07:07 -0700
Subject: Don't show region name min maturity due to different use based on
different grids
---
linden/indra/newview/llworldmapview.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'linden/indra')
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index 2632ae4..d8e5b3d 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -725,7 +725,8 @@ void LLWorldMapView::draw()
switch(access)
{
case SIM_ACCESS_MIN:
- mesg += " (" + LLTrans::getString("SIM_ACCESS_MIN") +")";
+ // Don't show this due to different use based on different grids -- MC
+ //mesg += " (" + LLTrans::getString("SIM_ACCESS_MIN") +")";
break;
case SIM_ACCESS_PG:
mesg += " (" + LLTrans::getString("SIM_ACCESS_PG") +")";
--
cgit v1.1
From 553ab738b4e2d867e6c833596f5cbd35f48caf6c Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Mon, 6 Sep 2010 00:51:26 -0700
Subject: Ported patch by Kitty Barnett for right clicking an inventory item
and editing it
---
linden/indra/newview/llinventorybridge.cpp | 61 +++++++++++++++++++++-
linden/indra/newview/llinventoryview.cpp | 8 +--
.../skins/default/xui/en-us/menu_inventory.xml | 3 ++
3 files changed, 67 insertions(+), 5 deletions(-)
(limited to 'linden/indra')
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 @@
#include "llfloaterchat.h"
#include "llfloatercustomize.h"
#include "llfloaterproperties.h"
+#include "llfloatertools.h"
#include "llfloaterworldmap.h"
#include "llfocusmgr.h"
#include "llfolderview.h"
@@ -72,10 +73,14 @@
#include "llresmgr.h"
#include "llscrollcontainer.h"
#include "llimview.h"
+#include "lltoolcomp.h"
#include "lltooldraganddrop.h"
+#include "lltoolmgr.h"
#include "llviewerimagelist.h"
#include "llviewerinventory.h"
+#include "llviewerjoystick.h"
#include "llviewerobjectlist.h"
+#include "llviewerparcelmgr.h"
#include "llviewerwindow.h"
#include "llvoavatar.h"
#include "llwaterparammanager.h"
@@ -3493,6 +3498,55 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model
llwarns << "object not found - ignoring" << llendl;
}
}
+ else if ("edit" == action)
+ {
+ if (gRlvHandler.hasBehaviour(RLV_BHVR_EDIT))
+ return;
+ LLVOAvatar* avatarp = gAgent.getAvatarObject();
+ if (!avatarp)
+ return;
+ LLViewerObject* objectp = avatarp->getWornAttachment(mUUID);
+ if (!objectp)
+ return;
+
+ // [Selective copy/paste from LLObjectEdit::handleEvent()]
+ LLViewerParcelMgr::getInstance()->deselectLand();
+ LLSelectMgr::getInstance()->deselectAll();
+
+ if (gAgent.getFocusOnAvatar() && !LLToolMgr::getInstance()->inEdit())
+ {
+ if (objectp->isHUDAttachment() || !gSavedSettings.getBOOL("EditCameraMovement"))
+ {
+ // always freeze camera in space, even if camera doesn't move
+ // so, for example, follow cam scripts can't affect you when in build mode
+ gAgent.setFocusGlobal(gAgent.calcFocusPositionTargetGlobal(), LLUUID::null);
+ gAgent.setFocusOnAvatar(FALSE, ANIMATE);
+ }
+ else
+ {
+ gAgent.setFocusOnAvatar(FALSE, ANIMATE);
+
+ // zoom in on object center instead of where we clicked, as we need to see the manipulator handles
+ gAgent.setFocusGlobal(objectp->getPositionGlobal(), objectp->getID());
+ gAgent.cameraZoomIn(0.666f);
+ gAgent.cameraOrbitOver( 30.f * DEG_TO_RAD );
+ gViewerWindow->moveCursorToCenter();
+ }
+ }
+
+ gFloaterTools->open();
+
+ LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
+ gFloaterTools->setEditTool( LLToolCompTranslate::getInstance() );
+
+ LLViewerJoystick::getInstance()->moveObjects(true);
+ LLViewerJoystick::getInstance()->setNeedsReset(true);
+
+ LLSelectMgr::getInstance()->selectObjectAndFamily(objectp);
+
+ // Could be first use
+ LLFirstUse::useBuild();
+ }
else LLItemBridge::performAction(folder, model, action);
}
@@ -3654,9 +3708,15 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
return;
}
+ items.push_back(std::string("Attach Separator"));
if( avatarp->isWearingAttachment( mUUID ) )
{
items.push_back(std::string("Detach From Yourself"));
+ items.push_back(std::string("Attachment Edit"));
+ if ( ( (flags & FIRST_SELECTED_ITEM) == 0) || (gRlvHandler.hasBehaviour(RLV_BHVR_EDIT)) )
+ {
+ disabled_items.push_back(std::string("Attachment Edit"));
+ }
// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a
if ( (rlv_handler_t::isEnabled()) &&
@@ -3669,7 +3729,6 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
else
if( !isInTrash() )
{
- items.push_back(std::string("Attach Separator"));
items.push_back(std::string("Object Wear"));
items.push_back(std::string("Attach To"));
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)
std::ostringstream filterSaveName;
filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml");
llinfos << "LLInventoryView::init: reading from " << filterSaveName << llendl;
- llifstream file(filterSaveName.str());
+ llifstream file(filterSaveName.str());
LLSD savedFilterState;
- if (file.is_open())
- {
- LLSDSerialize::fromXML(savedFilterState, file);
+ if (file.is_open())
+ {
+ LLSDSerialize::fromXML(savedFilterState, file);
file.close();
// Load the persistent "Recent Items" settings.
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..81b4ce2 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,6 +249,9 @@
mouse_opaque="true" name="Detach From Yourself" width="128">
+
+
+
-
--
cgit v1.1
From faa545fefcc25791537c5de38a22db85aea3499e Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Mon, 6 Sep 2010 16:11:24 -0700
Subject: Made 'notify when currency spent or received' also chat the message
---
linden/indra/newview/llviewermessage.cpp | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'linden/indra')
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** )
args["MESSAGE"] = desc;
LLNotifications::instance().add("SystemMessage", args);
+ // Also send notification to chat -- MC
+ LLChat chat(desc);
+ LLFloaterChat::addChat(desc);
+
// Once the 'recent' container gets large enough, chop some
// off the beginning.
const U32 MAX_LOOKBACK = 30;
--
cgit v1.1
From 931ac307f4bab7958817557e8ce951dfa3daa380 Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Mon, 6 Sep 2010 17:34:47 -0700
Subject: Added slider to control the number of avatar imposters (can't think
of a better label)
---
linden/indra/newview/llpaneldisplay.cpp | 29 +++++++++++++++++++++-
linden/indra/newview/llpaneldisplay.h | 5 ++++
.../xui/en-us/panel_preferences_graphics1.xml | 23 ++++++++++++-----
3 files changed, 50 insertions(+), 7 deletions(-)
(limited to 'linden/indra')
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()
// Avatar Render Mode
mCtrlAvatarCloth = getChild("AvatarCloth");
mCtrlAvatarImpostors = getChild("AvatarImpostors");
+ mCtrlAvatarImpostors->setCommitCallback(&LLPanelDisplay::onImpostorsEnable);
+ mCtrlAvatarImpostors->setCallbackUserData(this);
//----------------------------------------------------------------------------
// radio set for lighting detail
@@ -311,6 +313,10 @@ BOOL LLPanelDisplay::postBuild()
mCtrlPostProcess->setCommitCallback(&LLPanelDisplay::updateSliderText);
mCtrlPostProcess->setCallbackUserData(mPostProcessText);
+ // Avatar imposter count
+ mCtrlAvatarMaxVisible = getChild("AvatarMaxVisible");
+ mAvatarCountText = getChild("AvatarCountText");
+
// Text boxes (for enabling/disabling)
mShaderText = getChild("ShadersText");
mReflectionText = getChild("ReflectionDetailText");
@@ -411,8 +417,12 @@ void LLPanelDisplay::refresh()
mLightingDetail = gSavedSettings.getS32("RenderLightingDetail");
mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail");
+ // windlight remote
mWLControl = gSavedSettings.getBOOL("EnableWindlightRemote");
+ // max avatar count
+ mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible");
+
// slider text boxes
updateSliderText(mCtrlLODFactor, mLODFactorText);
updateSliderText(mCtrlFlexFactor, mFlexFactorText);
@@ -572,6 +582,9 @@ void LLPanelDisplay::disableUnavailableSettings()
mCtrlAvatarImpostors->setEnabled(FALSE);
mCtrlAvatarImpostors->setValue(FALSE);
}
+
+ mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean());
+ mAvatarCountText->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean());
}
void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
@@ -587,6 +600,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
llassert(mCtrlTerrainFactor != NULL);
llassert(mCtrlSkyFactor != NULL);
llassert(mCtrlMaxParticle != NULL);
+ llassert(mCtrlAvatarMaxVisible != NULL);
llassert(mCtrlPostProcess != NULL);
llassert(mLODFactorText != NULL);
@@ -617,6 +631,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
llassert(mTerrainText != NULL);
llassert(mDrawDistanceMeterText1 != NULL);
llassert(mDrawDistanceMeterText2 != NULL);
+ llassert(mAvatarCountText != NULL);
// enable/disable the states
mGraphicsBorder->setVisible(!isHidden);
@@ -664,6 +679,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
mTerrainText->setVisible(!isHidden);
mDrawDistanceMeterText1->setVisible(!isHidden);
mDrawDistanceMeterText2->setVisible(!isHidden);
+ mAvatarCountText->setVisible(!isHidden);
// hide one meter text if we're making things visible
if(!isHidden)
@@ -672,6 +688,8 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
}
mMeshDetailText->setVisible(!isHidden);
+
+ mCtrlAvatarMaxVisible->setVisible(!isHidden);
}
void LLPanelDisplay::cancel()
@@ -708,6 +726,8 @@ void LLPanelDisplay::cancel()
gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess);
gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl);
+
+ gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible);
}
void LLPanelDisplay::apply()
@@ -987,5 +1007,12 @@ void LLPanelDisplay::updateMeterText(LLUICtrl* ctrl, void* user_data)
m2->setVisible(!two_digits);
}
+// static
+void LLPanelDisplay::onImpostorsEnable(LLUICtrl* ctrl, void* user_data)
+{
+ LLPanelDisplay* self = (LLPanelDisplay*)user_data;
+ LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl;
-
+ self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean());
+ self->mAvatarCountText->setEnabled(checkbox->getValue().asBoolean());
+}
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:
LLSliderCtrl *mCtrlSkyFactor; // LOD for terrain
LLSliderCtrl *mCtrlMaxParticle; // Max Particle
LLSliderCtrl *mCtrlPostProcess; // Max Particle
+ LLSliderCtrl *mCtrlAvatarMaxVisible; // Max avatars visible
LLCheckBoxCtrl *mCtrlBumpShiny;
LLCheckBoxCtrl *mCtrlReflections;
@@ -138,6 +139,7 @@ protected:
LLTextBox *mTerrainFactorText;
LLTextBox *mSkyFactorText;
LLTextBox *mPostProcessText;
+ LLTextBox *mAvatarCountText;
BOOL mFSAutoDetectAspect;
F32 mAspectRatio;
@@ -171,6 +173,8 @@ protected:
S32 mParticleCount;
S32 mPostProcess;
+ S32 mAvatarMaxVisible;
+
BOOL mWLControl;
static void setGraphicsSettings(LLControlGroup& group);
@@ -191,6 +195,7 @@ protected:
static void onApplyResolution(LLUICtrl* ctrl, void* data);
static void updateSliderText(LLUICtrl* ctrl, void* user_data);
static void updateMeterText(LLUICtrl* ctrl, void* user_data);
+ static void onImpostorsEnable(LLUICtrl* ctrl, void* user_data);
/// callback for defaults
static void setHardwareDefaults(void *data);
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 @@
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Custom" left="385" mouse_opaque="true"
name="CustomSettings" radio_style="false" width="256" />
-
+
+
+ Max. non-imposters:
+
+
-
-
+
+ scale_image="true" width="170" follows="left|bottom" />
[RES_X] x [RES_Y]
--
cgit v1.1
From 856b7ad6a941099939039e06180c392301596897 Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Mon, 6 Sep 2010 19:49:48 -0700
Subject: Fixed regression of #295 in the 09.04 experimental
---
linden/indra/llui/lllineeditor.cpp | 37 +++++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 14 deletions(-)
(limited to 'linden/indra')
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp
index 5441d0a..7d91ece 100644
--- a/linden/indra/llui/lllineeditor.cpp
+++ b/linden/indra/llui/lllineeditor.cpp
@@ -2621,28 +2621,37 @@ BOOL LLLineEditor::prevalidateASCII(const LLWString &str)
BOOL LLLineEditor::evaluateFloat()
{
- bool success;
- F32 result = 0.f;
+ bool success = false;
std::string expr = getText();
LLStringUtil::toUpper(expr);
- success = LLCalc::getInstance()->evalString(expr, result);
-
- if (!success)
+ // user deleted the contents, nothing to evaluate -- MC
+ if (expr.empty())
{
- // Move the cursor to near the error on failure
- setCursor(LLCalc::getInstance()->getLastErrorPos());
- // *TODO: Translated error message indicating the type of error? Select error text?
+ return success;
}
else
{
- // Replace the expression with the result
- std::string result_str = llformat("%f",result);
- setText(result_str);
- selectAll();
- }
+ F32 result = 0.f;
+ success = LLCalc::getInstance()->evalString(expr, result);
- return success;
+ if (!success)
+ {
+ // Move the cursor to near the error on failure
+ setCursor(LLCalc::getInstance()->getLastErrorPos());
+ // *TODO: Translated error message indicating the type of error? Select error text?
+ }
+ else
+ {
+ // Replace the expression with the result
+ std::ostringstream result_str;
+ result_str << result;
+ setText(result_str.str());
+ selectAll();
+ }
+
+ return success;
+ }
}
void LLLineEditor::onMouseCaptureLost()
--
cgit v1.1
From 7106e399b3343702b053547651264ff70ad3fa8f Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Mon, 6 Sep 2010 20:09:32 -0700
Subject: Fixed regression of #245
---
linden/indra/llui/lltexteditor.cpp | 5 +++++
linden/indra/newview/llpreviewscript.cpp | 3 +++
2 files changed, 8 insertions(+)
(limited to 'linden/indra')
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index 51f7ad6..8123af2 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -1079,6 +1079,11 @@ S32 LLTextEditor::getCursorPosFromLocalCoord( S32 local_x, S32 local_y, BOOL rou
void LLTextEditor::setCursor(S32 row, S32 column)
{
+ // Make sure we're not trying to set the cursor anywhere
+ // it can't go by always setting the min to 0 -- MC
+ row = (row < 0) ? 0 : row;
+ column = (column < 0) ? 0 : column;
+
const llwchar* doc = mWText.c_str();
const char CR = 10;
while(row--)
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)
line < compile_errors.endArray();
line++)
{
+ // Note: OpenSim screws up and sends the wrong values for (row, column).
+ // (As of 2010-09-06: rows start at -1 instead of 0, and columns start at
+ // 1 instead of 0) -- MC
LLSD row;
std::string error_message = line->asString();
LLStringUtil::stripNonprintable(error_message);
--
cgit v1.1
From 1ec02bdd6a6c0f81bdd9bf11dce50baea6a2233f Mon Sep 17 00:00:00 2001
From: McCabe Maxsted
Date: Sat, 3 Apr 2010 13:49:04 -0700
Subject: Potential fix for a rare crash when creating notecards in the AO
---
linden/indra/llui/lltexteditor.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
(limited to 'linden/indra')
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index 8123af2..6e5cdc4 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -951,7 +951,14 @@ S32 LLTextEditor::getLineStart( S32 line ) const
S32 segoffset = mLineStartList[line].mOffset;
LLTextSegment* seg = mSegments[segidx];
S32 res = seg->getStart() + segoffset;
- if (res > seg->getEnd()) llerrs << "wtf" << llendl;
+ if (res > seg->getEnd())
+ {
+ //llerrs << "wtf" << llendl;
+ // This happens when creating a new notecard using the AO on certain opensims.
+ // Play it safe instead of bringing down the viewer - MC
+ llwarns << "BAD JOOJOO! Text length (" << res << ") greater than text end (" << seg->getEnd() << "). Setting line start to " << seg->getEnd() << llendl;
+ res = seg->getEnd();
+ }
return res;
}
--
cgit v1.1
From c9ba7baf0230dacbf33601ace7f616c10b5d5967 Mon Sep 17 00:00:00 2001
From: Kakurady (Geneko Nemeth)
Date: Mon, 16 Nov 2009 14:25:07 -0500
Subject: Use solid circles instead of asterisks for password fields.
Regression fix for the 09.04 Experimental
---
linden/indra/llui/lllineeditor.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'linden/indra')
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp
index 7d91ece..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 )
{
for (S32 i = 0; i < mText.length(); i++)
{
- asterix_text += '*';
+ asterix_text += (llwchar) 0x2022L;
}
wtext = asterix_text.c_str();
}
@@ -1938,7 +1938,7 @@ void LLLineEditor::draw()
std::string text;
for (S32 i = 0; i < mText.length(); i++)
{
- text += '*';
+ text += "\xe2\x80\xa2";
}
mText = text;
}
--
cgit v1.1