summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llmath/llinterp.h3
-rw-r--r--indra/llprimitive/llprimitive.cpp1
-rw-r--r--indra/llui/llfloater.cpp5
-rw-r--r--indra/llui/llfloater.h3
-rw-r--r--indra/llui/llmenugl.cpp5
-rw-r--r--indra/llui/llmenugl.h2
-rw-r--r--indra/llui/llstyle.cpp5
-rw-r--r--indra/llui/lltooltip.cpp3
-rw-r--r--indra/llui/lluistring.h2
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llchathistory.cpp62
-rw-r--r--indra/newview/llchathistory.h7
-rw-r--r--indra/newview/llcompilequeue.cpp5
-rw-r--r--indra/newview/llcompilequeue.h4
-rw-r--r--indra/newview/lleventnotifier.cpp1
-rw-r--r--indra/newview/llfloateranimpreview.h1
-rw-r--r--indra/newview/llfloaterhardwaresettings.cpp12
-rw-r--r--indra/newview/llfloaterjoystick.cpp11
-rw-r--r--indra/newview/llfloaterjoystick.h2
-rw-r--r--indra/newview/llfloatersnapshot.cpp11
-rw-r--r--indra/newview/llimview.cpp8
-rw-r--r--indra/newview/llinspectremoteobject.cpp25
-rw-r--r--indra/newview/llinventorymodel.cpp2
-rw-r--r--indra/newview/lllocationhistory.cpp2
-rw-r--r--indra/newview/llmanipscale.cpp1
-rw-r--r--indra/newview/llmaniptranslate.cpp4
-rw-r--r--indra/newview/llnearbychat.cpp6
-rw-r--r--indra/newview/llnearbychat.h2
-rw-r--r--indra/newview/llnearbychathandler.cpp4
-rw-r--r--indra/newview/llnearbychathandler.h2
-rw-r--r--indra/newview/llnotificationhandler.h2
-rw-r--r--indra/newview/llnotificationmanager.cpp7
-rw-r--r--indra/newview/llnotificationmanager.h2
-rw-r--r--indra/newview/llselectmgr.cpp3
-rw-r--r--indra/newview/lltoastalertpanel.cpp1
-rw-r--r--indra/newview/lltoolgrab.cpp6
-rw-r--r--indra/newview/llviewerjoint.cpp21
-rw-r--r--indra/newview/llviewerjoint.h2
-rw-r--r--indra/newview/llviewermessage.cpp15
-rw-r--r--indra/newview/llviewermessage.h4
-rw-r--r--indra/newview/llviewerwindow.cpp17
-rw-r--r--indra/newview/llvoiceclient.cpp7
-rw-r--r--indra/newview/llvosky.cpp11
-rw-r--r--indra/newview/llvosky.h6
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml1
46 files changed, 236 insertions, 83 deletions
diff --git a/indra/llmath/llinterp.h b/indra/llmath/llinterp.h
index 36ca2e9865..88af004170 100644
--- a/indra/llmath/llinterp.h
+++ b/indra/llmath/llinterp.h
@@ -54,7 +54,7 @@ template <typename Type>
class LLInterp
{
public:
- LLInterp();
+ LLInterp();
virtual ~LLInterp() {}
virtual void start();
@@ -151,6 +151,7 @@ protected:
template <typename Type>
LLInterp<Type>::LLInterp()
+: mStartVal(Type()), mEndVal(Type()), mCurVal(Type())
{
mStartTime = 0.f;
mEndTime = 1.f;
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 5ad758072c..b75d1b0f67 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -154,6 +154,7 @@ bool LLPrimitive::cleanupVolumeManager()
//===============================================================
LLPrimitive::LLPrimitive()
: mTextureList(),
+ mNumTEs(0),
mMiscFlags(0)
{
mPrimitiveCode = 0;
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 79d8f90fec..de46d89d6f 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1916,9 +1916,10 @@ static LLDefaultChildRegistry::Register<LLFloaterView> r("floater_view");
LLFloaterView::LLFloaterView (const Params& p)
: LLUICtrl (p),
+
mFocusCycleMode(FALSE),
- mSnapOffsetBottom(0)
- ,mSnapOffsetRight(0)
+ mSnapOffsetBottom(0),
+ mSnapOffsetRight(0)
{
}
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index f70495c0f0..8c9dacbd20 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -468,9 +468,6 @@ public:
void setSnapOffsetRight(S32 offset) { mSnapOffsetRight = offset; }
private:
- S32 mColumn;
- S32 mNextLeft;
- S32 mNextTop;
BOOL mFocusCycleMode;
S32 mSnapOffsetBottom;
S32 mSnapOffsetRight;
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index ceb1e9820e..7fa9a88059 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -1651,6 +1651,7 @@ LLMenuGL::LLMenuGL(const LLMenuGL::Params& p)
mBackgroundColor( p.bg_color() ),
mBgVisible( p.bg_visible ),
mDropShadowed( p.drop_shadow ),
+ mHasSelection(false),
mHorizontalLayout( p.horizontal_layout ),
mScrollable(mHorizontalLayout ? FALSE : p.scrollable), // Scrolling is supported only for vertical layout
mMaxScrollableItems(p.max_scrollable_items),
@@ -2813,7 +2814,7 @@ BOOL LLMenuGL::handleHover( S32 x, S32 y, MASK mask )
((LLMenuItemGL*)viewp)->setHighlight(TRUE);
LLMenuGL::setKeyboardMode(FALSE);
}
- mHasSelection = TRUE;
+ mHasSelection = true;
}
}
}
@@ -2892,7 +2893,7 @@ void LLMenuGL::setVisible(BOOL visible)
}
else
{
- mHasSelection = FALSE;
+ mHasSelection = true;
mFadeTimer.stop();
}
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 61e06f9e5f..8441aaadd4 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -546,7 +546,7 @@ private:
LLHandle<LLView> mParentMenuItem;
LLUIString mLabel;
BOOL mDropShadowed; // Whether to drop shadow
- BOOL mHasSelection;
+ bool mHasSelection;
LLFrameTimer mFadeTimer;
LLTimer mScrollItemsTimer;
BOOL mTornOff;
diff --git a/indra/llui/llstyle.cpp b/indra/llui/llstyle.cpp
index 71511f69a4..b8f93b6a0e 100644
--- a/indra/llui/llstyle.cpp
+++ b/indra/llui/llstyle.cpp
@@ -49,7 +49,10 @@ LLStyle::Params::Params()
LLStyle::LLStyle(const LLStyle::Params& p)
-: mVisible(p.visible),
+: mItalic(FALSE),
+ mBold(FALSE),
+ mUnderline(FALSE),
+ mVisible(p.visible),
mColor(p.color()),
mReadOnlyColor(p.readonly_color()),
mFont(p.font()),
diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp
index 01c7a81309..173fde8e76 100644
--- a/indra/llui/lltooltip.cpp
+++ b/indra/llui/lltooltip.cpp
@@ -400,7 +400,8 @@ bool LLToolTip::hasClickCallback()
//
LLToolTipMgr::LLToolTipMgr()
-: mToolTip(NULL),
+: mToolTipsBlocked(false),
+ mToolTip(NULL),
mNeedsToolTip(false)
{}
diff --git a/indra/llui/lluistring.h b/indra/llui/lluistring.h
index 7ec0fd603a..32cfc0d9cd 100644
--- a/indra/llui/lluistring.h
+++ b/indra/llui/lluistring.h
@@ -64,7 +64,7 @@ class LLUIString
public:
// These methods all perform appropriate argument substitution
// and modify mOrig where appropriate
- LLUIString() {}
+ LLUIString() : mNeedsResult(false), mNeedsWResult(false) {}
LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args);
LLUIString(const std::string& instring) { assign(instring); }
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 1ef79aeec0..f3bda19ed1 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2377,6 +2377,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DisableMouseWarp</key>
+ <map>
+ <key>Comment</key>
+ <string>Disable warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DisableRendering</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 2cdbd18996..f1e7e622b3 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -36,6 +36,7 @@
#include "llimview.h"
#include "llchathistory.h"
+#include "llcommandhandler.h"
#include "llpanel.h"
#include "lluictrlfactory.h"
#include "llscrollcontainer.h"
@@ -47,8 +48,11 @@
#include "llfloaterreg.h"
#include "llmutelist.h"
#include "llstylemap.h"
+#include "llslurl.h"
#include "lllayoutstack.h"
#include "llagent.h"
+#include "llviewerregion.h"
+#include "llworld.h"
#include "llsidetray.h"//for blocked objects panel
@@ -56,6 +60,38 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history");
const static std::string NEW_LINE(rawstr_to_utf8("\n"));
+// support for secondlife:///app/objectim/{UUID}/ SLapps
+class LLObjectIMHandler : public LLCommandHandler
+{
+public:
+ // requests will be throttled from a non-trusted browser
+ LLObjectIMHandler() : LLCommandHandler("objectim", UNTRUSTED_THROTTLE) {}
+
+ bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+ {
+ if (params.size() < 1)
+ {
+ return false;
+ }
+
+ LLUUID object_id;
+ if (!object_id.set(params[0], FALSE))
+ {
+ return false;
+ }
+
+ LLSD payload;
+ payload["object_id"] = object_id;
+ payload["owner_id"] = query_map["owner"];
+ payload["name"] = query_map["name"];
+ payload["slurl"] = query_map["slurl"];
+ payload["group_owned"] = query_map["groupowned"];
+ LLFloaterReg::showInstance("inspect_remote_object", payload);
+ return true;
+ }
+};
+LLObjectIMHandler gObjectIMHandler;
+
class LLChatHistoryHeader: public LLPanel
{
public:
@@ -465,8 +501,9 @@ void LLChatHistory::clear()
mLastFromID = LLUUID::null;
}
-void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_chat_history, const LLStyle::Params& input_append_params)
+void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LLStyle::Params& input_append_params)
{
+ bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean();
if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty())
{
mUnreadChatSources.insert(chat.mFromName);
@@ -532,7 +569,28 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
if (utf8str_trim(chat.mFromName).size() != 0)
{
// Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text.
- if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() )
+ if ( chat.mSourceType == CHAT_SOURCE_OBJECT )
+ {
+ // for object IMs, create a secondlife:///app/objectim SLapp
+ std::string url = LLSLURL::buildCommand("objectim", chat.mFromID, "");
+ url += "?name=" + chat.mFromName;
+ url += "&owner=" + args["owner_id"].asString();
+
+ LLViewerRegion *region = LLWorld::getInstance()->getRegionFromPosAgent(chat.mPosAgent);
+ if (region)
+ {
+ S32 x, y, z;
+ LLSLURL::globalPosToXYZ(LLVector3d(chat.mPosAgent), x, y, z);
+ url += "&slurl=" + region->getName() + llformat("/%d/%d/%d", x, y, z);
+ }
+
+ // set the link for the object name to be the objectim SLapp
+ LLStyle::Params link_params(style_params);
+ link_params.color.control = "HTMLLinkColor";
+ link_params.link_href = url;
+ mEditor->appendText(chat.mFromName + delimiter, false, link_params);
+ }
+ else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() )
{
LLStyle::Params link_params(style_params);
link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID));
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index c2c60e60cf..32600bb71d 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -113,11 +113,14 @@ class LLChatHistory : public LLUICtrl
* Appends a widget message.
* If last user appended message, concurs with current user,
* separator is added before the message, otherwise header is added.
+ * The args LLSD contains:
+ * - use_plain_text_chat_history (bool) - whether to add message as plain text.
+ * - owner_id (LLUUID) - the owner ID for object chat
* @param chat - base chat message.
- * @param use_plain_text_chat_history - whether to add message as plain text.
+ * @param args - additional arguments
* @param input_append_params - font style.
*/
- void appendMessage(const LLChat& chat, const bool use_plain_text_chat_history = false, const LLStyle::Params& input_append_params = LLStyle::Params());
+ void appendMessage(const LLChat& chat, const LLSD &args = LLSD(), const LLStyle::Params& input_append_params = LLStyle::Params());
/*virtual*/ void clear();
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 5c05a54120..a96981a108 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -92,7 +92,8 @@ struct LLScriptQueueData
// Default constructor
LLFloaterScriptQueue::LLFloaterScriptQueue(const LLSD& key) :
LLFloater(key),
- mDone(FALSE)
+ mDone(false),
+ mMono(false)
{
//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml", FALSE);
}
@@ -216,7 +217,7 @@ BOOL LLFloaterScriptQueue::nextObject()
} while((mObjectIDs.count() > 0) && !successful_start);
if(isDone() && !mDone)
{
- mDone = TRUE;
+ mDone = true;
getChild<LLScrollListCtrl>("queue output")->setCommentText(getString("Done"));
childSetEnabled("close",TRUE);
}
diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h
index 063d573239..2d061f5d8a 100644
--- a/indra/newview/llcompilequeue.h
+++ b/indra/newview/llcompilequeue.h
@@ -104,10 +104,10 @@ protected:
// Object Queue
LLDynamicArray<LLUUID> mObjectIDs;
LLUUID mCurrentObjectID;
- BOOL mDone;
+ bool mDone;
std::string mStartString;
- BOOL mMono;
+ bool mMono;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index edfb9dc864..f096ba604f 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -174,6 +174,7 @@ void LLEventNotifier::remove(const U32 event_id)
LLEventNotification::LLEventNotification() :
mEventID(0),
+ mEventDate(0),
mEventName("")
{
}
diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h
index dd2c0b809a..3ee1f419ab 100644
--- a/indra/newview/llfloateranimpreview.h
+++ b/indra/newview/llfloateranimpreview.h
@@ -127,7 +127,6 @@ protected:
LLRectf mPreviewImageRect;
LLAssetID mMotionID;
LLTransactionID mTransactionID;
- BOOL mEnabled;
LLAnimPauseRequest mPauseRequest;
std::map<std::string, LLUUID> mIDList;
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 31b494b590..b2564eb2b6 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -50,7 +50,17 @@
#include "llsliderctrl.h"
LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key)
- : LLFloater(key)
+ : LLFloater(key),
+
+ // these should be set on imminent refresh() call,
+ // but init them anyway
+ mUseVBO(0),
+ mUseAniso(0),
+ mFSAASamples(0),
+ mGamma(0.0),
+ mVideoCardMem(0),
+ mFogRatio(0.0),
+ mProbeHardwareOnStartup(FALSE)
{
//LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml");
}
diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp
index 06fe2a84c8..78bc63ac8c 100644
--- a/indra/newview/llfloaterjoystick.cpp
+++ b/indra/newview/llfloaterjoystick.cpp
@@ -52,6 +52,7 @@ LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
{
//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml");
+ initFromSettings();
}
void LLFloaterJoystick::draw()
@@ -123,10 +124,8 @@ void LLFloaterJoystick::apply()
{
}
-void LLFloaterJoystick::refresh()
+void LLFloaterJoystick::initFromSettings()
{
- LLFloater::refresh();
-
mJoystickEnabled = gSavedSettings.getBOOL("JoystickEnabled");
mJoystickAxis[0] = gSavedSettings.getS32("JoystickAxis0");
@@ -194,6 +193,12 @@ void LLFloaterJoystick::refresh()
mFlycamFeathering = gSavedSettings.getF32("FlycamFeathering");
}
+void LLFloaterJoystick::refresh()
+{
+ LLFloater::refresh();
+ initFromSettings();
+}
+
void LLFloaterJoystick::cancel()
{
gSavedSettings.setBOOL("JoystickEnabled", mJoystickEnabled);
diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h
index f3559c28e9..7a2f497c69 100644
--- a/indra/newview/llfloaterjoystick.h
+++ b/indra/newview/llfloaterjoystick.h
@@ -55,6 +55,8 @@ private:
LLFloaterJoystick(const LLSD& data);
virtual ~LLFloaterJoystick();
+
+ void initFromSettings();
static void onCommitJoystickEnabled(LLUICtrl*, void*);
static void onClickRestoreSNDefaults(void*);
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index afb58c9407..94c7ff6f94 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -1028,7 +1028,8 @@ class LLFloaterSnapshot::Impl
public:
Impl()
: mAvatarPauseHandles(),
- mLastToolset(NULL)
+ mLastToolset(NULL),
+ mAspectRatioCheckOff(false)
{
}
~Impl()
@@ -1079,7 +1080,7 @@ public:
LLToolset* mLastToolset;
LLHandle<LLView> mPreviewHandle;
- BOOL mAspectRatioCheckOff ;
+ bool mAspectRatioCheckOff ;
};
// static
@@ -1606,7 +1607,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
if(0 == index) //current window size
{
- view->impl.mAspectRatioCheckOff = TRUE ;
+ view->impl.mAspectRatioCheckOff = true ;
view->childSetEnabled("keep_aspect_check", FALSE) ;
if(previewp)
@@ -1616,7 +1617,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
}
else if(-1 == index) //custom
{
- view->impl.mAspectRatioCheckOff = FALSE ;
+ view->impl.mAspectRatioCheckOff = false ;
//if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType"))
{
view->childSetEnabled("keep_aspect_check", TRUE) ;
@@ -1629,7 +1630,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
}
else
{
- view->impl.mAspectRatioCheckOff = TRUE ;
+ view->impl.mAspectRatioCheckOff = true ;
view->childSetEnabled("keep_aspect_check", FALSE) ;
if(previewp)
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 675f73d43e..80d2778934 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1461,9 +1461,11 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLCallDialog
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LLCallDialog::LLCallDialog(const LLSD& payload) :
-LLDockableFloater(NULL, false, payload),
-mPayload(payload)
+LLCallDialog::LLCallDialog(const LLSD& payload)
+ : LLDockableFloater(NULL, false, payload),
+
+ mPayload(payload),
+ mLifetime(DEFAULT_LIFETIME)
{
}
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index e4d2eec242..898f1cd9ac 100644
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
@@ -31,17 +31,16 @@
#include "llviewerprecompiledheaders.h"
+#include "llfloaterreg.h"
#include "llinspectremoteobject.h"
#include "llinspect.h"
-#include "llslurl.h"
#include "llmutelist.h"
-#include "llurlaction.h"
#include "llpanelblockedlist.h"
-#include "llfloaterreg.h"
+#include "llslurl.h"
+#include "lltrans.h"
#include "llui.h"
#include "lluictrl.h"
-
-class LLViewerObject;
+#include "llurlaction.h"
//////////////////////////////////////////////////////////////////////////////
// LLInspectRemoteObject
@@ -183,11 +182,25 @@ void LLInspectRemoteObject::update()
owner = LLSLURL::buildCommand("agent", mOwnerID, "about");
}
}
+ else
+ {
+ owner = LLTrans::getString("Unknown");
+ }
getChild<LLUICtrl>("object_owner")->setValue(owner);
// display the object's SLurl - click it to teleport
- std::string url = "secondlife:///app/teleport/" + mSLurl;
+ std::string url;
+ if (! mSLurl.empty())
+ {
+ std::string url = "secondlife:///app/teleport/" + mSLurl;
+ }
getChild<LLUICtrl>("object_slurl")->setValue(url);
+
+ // disable the Map button if we don't have a SLurl
+ getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty());
+
+ // disable the Block button if we don't have the owner ID
+ getChild<LLUICtrl>("block_btn")->setEnabled(! mOwnerID.isNull());
}
//////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 9e96bbc55f..bdf1ebddac 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -225,7 +225,7 @@ namespace LMSortPrefix
// mark item completed to avoid error while copying and updating server
inv_item->setComplete(TRUE);
- LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item);
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item.get());
new_item->rename(display_name);
gInventory.updateItem(new_item);
new_item->updateServer(FALSE);
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index 47139758e5..df93930d33 100644
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
@@ -62,7 +62,7 @@ void LLLocationHistory::addItem(const LLLocationHistoryItem& item) {
{
mItems.erase(mItems.begin(), mItems.end()-max_items);
}
- llassert((S32) mItems.size() <= max_items);
+ llassert((S32)mItems.size() <= max_items);
}
/*
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 84a5eb7352..ee3ffa2450 100644
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -180,6 +180,7 @@ LLManipScale::LLManipScale( LLToolComposite* composite )
mScaleSnapUnit2(1.f),
mSnapRegimeOffset(0.f),
mSnapGuideLength(0.f),
+ mInSnapRegime(FALSE),
mScaleSnapValue(0.f)
{
mManipulatorScales = new F32[NUM_MANIPULATORS];
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 5f30ab4e01..52fe31fbba 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -123,9 +123,13 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
mAxisArrowLength(50),
mConeSize(0),
mArrowLengthMeters(0.f),
+ mGridSizeMeters(1.f),
mPlaneManipOffsetMeters(0.f),
mUpdateTimer(),
mSnapOffsetMeters(0.f),
+ mSubdivisions(10.f),
+ mInSnapRegime(FALSE),
+ mSnapped(FALSE),
mArrowScales(1.f, 1.f, 1.f),
mPlaneScales(1.f, 1.f, 1.f),
mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 0a8d020b4f..90482eb74d 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -153,7 +153,7 @@ std::string appendTime()
}
-void LLNearbyChat::addMessage(const LLChat& chat,bool archive)
+void LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
{
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
{
@@ -184,7 +184,9 @@ void LLNearbyChat::addMessage(const LLChat& chat,bool archive)
if (!chat.mMuted)
{
tmp_chat.mFromName = chat.mFromName;
- mChatHistory->appendMessage(chat, use_plain_text_chat_history);
+ LLSD chat_args = args;
+ chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history;
+ mChatHistory->appendMessage(chat, chat_args);
}
if(archive)
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 938b77df7a..5fb8ade19e 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -47,7 +47,7 @@ public:
~LLNearbyChat();
BOOL postBuild ();
- void addMessage (const LLChat& message,bool archive = true);
+ void addMessage (const LLChat& message,bool archive = true, const LLSD &args = LLSD());
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index a1a9d84c14..c08ca30bab 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -319,7 +319,7 @@ void LLNearbyChatHandler::initChannel()
-void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
+void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
{
if(chat_msg.mMuted == TRUE)
return;
@@ -337,7 +337,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
//if(tmp_chat.mFromName.empty() && tmp_chat.mFromID!= LLUUID::null)
// tmp_chat.mFromName = tmp_chat.mFromID.asString();
}
- nearby_chat->addMessage(chat_msg);
+ nearby_chat->addMessage(chat_msg, true, args);
if(nearby_chat->getVisible())
return;//no need in toast if chat is visible
diff --git a/indra/newview/llnearbychathandler.h b/indra/newview/llnearbychathandler.h
index fb2abac6a4..01a6de5610 100644
--- a/indra/newview/llnearbychathandler.h
+++ b/indra/newview/llnearbychathandler.h
@@ -45,7 +45,7 @@ public:
virtual ~LLNearbyChatHandler();
- virtual void processChat(const LLChat& chat_msg);
+ virtual void processChat(const LLChat& chat_msg, const LLSD &args);
protected:
virtual void onDeleteToast(LLToast* toast);
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index 0fb438bfe9..e57674d31c 100644
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
@@ -135,7 +135,7 @@ class LLChatHandler : public LLEventHandler
public:
virtual ~LLChatHandler() {};
- virtual void processChat(const LLChat& chat_msg)=0;
+ virtual void processChat(const LLChat& chat_msg, const LLSD &args)=0;
};
/**
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp
index 66bc217d15..4401bb953f 100644
--- a/indra/newview/llnotificationmanager.cpp
+++ b/indra/newview/llnotificationmanager.cpp
@@ -107,16 +107,17 @@ bool LLNotificationManager::onNotification(const LLSD& notify)
}
//--------------------------------------------------------------------------
-void LLNotificationManager::onChat(const LLChat& msg,ENotificationType type)
+void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args)
{
- switch(type)
+ // check ENotificationType argument
+ switch(args["type"].asInteger())
{
case NT_NEARBYCHAT:
{
LLNearbyChatHandler* handle = dynamic_cast<LLNearbyChatHandler*>(mNotifyHandlers["nearbychat"].get());
if(handle)
- handle->processChat(msg);
+ handle->processChat(msg, args);
}
break;
default: //no need to handle all enum types
diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h
index 072fc6f24c..575aa69c4d 100644
--- a/indra/newview/llnotificationmanager.h
+++ b/indra/newview/llnotificationmanager.h
@@ -66,7 +66,7 @@ public:
bool onNotification(const LLSD& notification);
// this method reacts on chat notifications and calls an appropriate handler
- void onChat(const LLChat& msg,ENotificationType type);
+ void onChat(const LLChat& msg, const LLSD &args);
// get a handler for a certain type of notification
LLEventHandler* getHandlerForNotification(std::string notification_type);
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 6f76715e73..bf08756051 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -218,7 +218,8 @@ LLSelectMgr::LLSelectMgr()
mHoverObjects = new LLObjectSelection();
mHighlightedObjects = new LLObjectSelection();
-
+ mForceSelection = FALSE;
+ mShowSelection = FALSE;
}
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index c3ccb9380b..da31bb3e73 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -170,6 +170,7 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal
params.tab_stop(false);
params.wrap(true);
params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP);
+ params.allow_html(false);
LLTextBox * msg_box = LLUICtrlFactory::create<LLTextBox> (params);
// Compute max allowable height for the dialog text, so we can allocate
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index 26dbe6a489..d837a334f1 100644
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
@@ -78,9 +78,15 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite )
: LLTool( std::string("Grab"), composite ),
mMode( GRAB_INACTIVE ),
mVerticalDragging( FALSE ),
+ mHitLand(FALSE),
+ mLastMouseX(0),
+ mLastMouseY(0),
+ mAccumDeltaX(0),
+ mAccumDeltaY(0),
mHasMoved( FALSE ),
mOutsideSlop(FALSE),
mDeselectedThisClick(FALSE),
+ mLastFace(0),
mSpinGrabbing( FALSE ),
mSpinRotation(),
mHideBuildHighlight(FALSE)
diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp
index c425d95ff8..95f05b5f5f 100644
--- a/indra/newview/llviewerjoint.cpp
+++ b/indra/newview/llviewerjoint.cpp
@@ -59,14 +59,9 @@ BOOL LLViewerJoint::sDisableLOD = FALSE;
// Class Constructor
//-----------------------------------------------------------------------------
LLViewerJoint::LLViewerJoint()
+ : LLJoint()
{
- mUpdateXform = TRUE;
- mValid = FALSE;
- mComponents = SC_JOINT | SC_BONE | SC_AXES;
- mMinPixelArea = DEFAULT_LOD;
- mPickName = PN_DEFAULT;
- mVisible = TRUE;
- mMeshID = 0;
+ init();
}
@@ -74,13 +69,21 @@ LLViewerJoint::LLViewerJoint()
// LLViewerJoint()
// Class Constructor
//-----------------------------------------------------------------------------
-LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) :
- LLJoint(name, parent)
+LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent)
+ : LLJoint(name, parent)
+{
+ init();
+}
+
+
+void LLViewerJoint::init()
{
mValid = FALSE;
mComponents = SC_JOINT | SC_BONE | SC_AXES;
mMinPixelArea = DEFAULT_LOD;
mPickName = PN_DEFAULT;
+ mVisible = TRUE;
+ mMeshID = 0;
}
diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h
index 08c4ec36fd..0d3092a044 100644
--- a/indra/newview/llviewerjoint.h
+++ b/indra/newview/llviewerjoint.h
@@ -142,6 +142,8 @@ public:
void setMeshID( S32 id ) {mMeshID = id;}
protected:
+ void init();
+
BOOL mValid;
U32 mComponents;
F32 mMinPixelArea;
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 25206a5f52..55b0d6fa8b 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -2213,7 +2213,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
payload["SESSION_NAME"] = session_name;
if (from_group)
{
- payload["groupowned"] = "true";
+ payload["group_owned"] = "true";
}
LLNotificationsUtil::add("ServerObjectMessage", substitutions, payload);
}
@@ -2515,7 +2515,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// Object owner for objects
msg->getUUID("ChatData", "OwnerID", owner_id);
-
+
msg->getU8Fast(_PREHASH_ChatData, _PREHASH_SourceType, source_temp);
chat.mSourceType = (EChatSourceType)source_temp;
@@ -2544,7 +2544,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
if (chatter)
{
chat.mPosAgent = chatter->getPositionAgent();
-
+
// Make swirly things only for talking objects. (not script debug messages, though)
if (chat.mSourceType == CHAT_SOURCE_OBJECT
&& chat.mChatType != CHAT_TYPE_DEBUG_MSG)
@@ -2689,8 +2689,13 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
chat.mMuted = is_muted && !is_linden;
- LLNotificationsUI::LLNotificationManager::instance().onChat(
- chat, LLNotificationsUI::NT_NEARBYCHAT);
+ // pass owner_id to chat so that we can display the remote
+ // object inspect for an object that is chatting with you
+ LLSD args;
+ args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
+ args["owner_id"] = owner_id;
+
+ LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
}
}
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index 8404d6fde0..1415c16090 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -205,7 +205,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
struct LLOfferInfo
{
- LLOfferInfo() {};
+ LLOfferInfo()
+ : mFromGroup(FALSE), mFromObject(FALSE),
+ mIM(IM_NOTHING_SPECIAL), mType(LLAssetType::AT_NONE) {};
LLOfferInfo(const LLSD& sd);
void forceResponse(InventoryOfferResponse response);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index c70b830782..cd6b9e2c50 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2262,15 +2262,18 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)
void LLViewerWindow::moveCursorToCenter()
{
- S32 x = getWorldViewWidthScaled() / 2;
- S32 y = getWorldViewHeightScaled() / 2;
+ if (! gSavedSettings.getBOOL("DisableMouseWarp"))
+ {
+ S32 x = getWorldViewWidthScaled() / 2;
+ S32 y = getWorldViewHeightScaled() / 2;
- //on a forced move, all deltas get zeroed out to prevent jumping
- mCurrentMousePoint.set(x,y);
- mLastMousePoint.set(x,y);
- mCurrentMouseDelta.set(0,0);
+ //on a forced move, all deltas get zeroed out to prevent jumping
+ mCurrentMousePoint.set(x,y);
+ mLastMousePoint.set(x,y);
+ mCurrentMouseDelta.set(0,0);
- LLUI::setMousePositionScreen(x, y);
+ LLUI::setMousePositionScreen(x, y);
+ }
}
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 02a2d8c8cf..560c2ab469 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -294,8 +294,14 @@ void LLVivoxProtocolParser::reset()
ignoringTags = false;
accumulateText = false;
energy = 0.f;
+ hasText = false;
+ hasAudio = false;
+ hasVideo = false;
+ terminated = false;
ignoreDepth = 0;
isChannel = false;
+ incoming = false;
+ enabled = false;
isEvent = false;
isLocallyMuted = false;
isModeratorMuted = false;
@@ -6406,6 +6412,7 @@ void LLVoiceClient::filePlaybackSetMode(bool vox, float speed)
}
LLVoiceClient::sessionState::sessionState() :
+ mErrorStatusCode(0),
mMediaStreamState(streamStateUnknown),
mTextStreamState(streamStateUnknown),
mCreateInProgress(false),
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index 5ff8f0d267..0550ed770b 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -343,7 +343,6 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
cloud_pos_density1 = LLColor3();
cloud_pos_density2 = LLColor3();
-
mInitialized = FALSE;
mbCanSelect = FALSE;
mUpdateTimer.reset();
@@ -385,6 +384,10 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
mBloomTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
mHeavenlyBodyUpdated = FALSE ;
+
+ mDrawRefl = 0;
+ mHazeConcentration = 0.f;
+ mInterpVal = 0.f;
}
@@ -1072,10 +1075,10 @@ BOOL LLVOSky::updateSky()
++next_frame;
next_frame = next_frame % cycle_frame_no;
- sInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;
+ mInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;
// sInterpVal = (F32)next_frame / cycle_frame_no;
- LLSkyTex::setInterpVal( sInterpVal );
- LLHeavenBody::setInterpVal( sInterpVal );
+ LLSkyTex::setInterpVal( mInterpVal );
+ LLHeavenBody::setInterpVal( mInterpVal );
calcAtmospherics();
if (mForceUpdate || total_no_tiles == frame)
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index ef74324e58..8366909755 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -613,7 +613,7 @@ protected:
LLColor3 mLastTotalAmbient;
F32 mAmbientScale;
LLColor3 mNightColorShift;
- F32 sInterpVal;
+ F32 mInterpVal;
LLColor4 mFogColor;
LLColor4 mGLFogCol;
@@ -636,8 +636,8 @@ protected:
public:
//by bao
//fake vertex buffer updating
- //to guaranttee at least updating one VBO buffer every frame
- //to walk around the bug caused by ATI card --> DEV-3855
+ //to guarantee at least updating one VBO buffer every frame
+ //to work around the bug caused by ATI card --> DEV-3855
//
void createDummyVertexBuffer() ;
void updateDummyVertexBuffer() ;
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 41f4621d66..fc535205f1 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -3851,7 +3851,7 @@ Are you sure you want to quit?
type="alertmodal">
Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards].
-All reported abuses are investigated and resolved. You can view the resolution by reading the [http://secondlife.com/support/incidentreport.php Incident Report].
+All reported abuses are investigated and resolved.
<unique/>
</notification>
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 65ccd10cf0..7489988722 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -88,6 +88,7 @@
follows="all"
height="100"
width="280"
+ allow_html="true"
hide_scrollbar="false"
layout="topleft"
left="10"