Merge branch 'main' into marchcat/x-merge
commit
428f21cf79
|
|
@ -384,11 +384,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>f6835c4d7745cd1cadfbce47b40331d08affb532</string>
|
||||
<string>e03eb77224290c875ff84f75b7fe3d0e7c162c94</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-dictionaries/releases/download/v1.0.1-dev2.gf887629-f887629/dictionaries-common-None.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-dictionaries/releases/download/v1-a01bb6c/dictionaries-1.a01bb6c-common-a01bb6c.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>common</string>
|
||||
|
|
@ -401,7 +401,7 @@
|
|||
<key>copyright</key>
|
||||
<string>Copyright 2014 Apache OpenOffice software</string>
|
||||
<key>version</key>
|
||||
<string>None</string>
|
||||
<string>1.a01bb6c</string>
|
||||
<key>name</key>
|
||||
<string>dictionaries</string>
|
||||
<key>description</key>
|
||||
|
|
@ -572,11 +572,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>fb6797ff93b6e881b060d2a8b396d8d7477834ee</string>
|
||||
<string>a2074b67de7ad4c04b5ca8f8f161506add9697b2</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/108908444</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/149207589</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -588,11 +588,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>a378bd1604aa97ca763140911f9f4e463ced85c0</string>
|
||||
<string>8c1b701648c077220dbc576c3d9aefbef47f8324</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/108908446</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/149207592</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -604,11 +604,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>72304491d86bd797b840999b255358f195b06609</string>
|
||||
<string>7e0c3d50e8b99d8735c6c9596a72ded9ee2bc1c8</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/108908456</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-fmodstudio/releases/assets/149207594</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -621,7 +621,7 @@
|
|||
<key>copyright</key>
|
||||
<string>FMOD Studio by Firelight Technologies Pty Ltd.</string>
|
||||
<key>version</key>
|
||||
<string>2.02.13.578928</string>
|
||||
<string>2.02.20.c78ef55</string>
|
||||
<key>name</key>
|
||||
<string>fmodstudio</string>
|
||||
<key>description</key>
|
||||
|
|
@ -772,11 +772,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>6604c1cca515d287e697997a8d5593d1cae172a9</string>
|
||||
<string>066625e7aa7f697a4b6cd461aad960c57181011f</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/3p-glh_linear/releases/download/v1.0.1-dev2.g3253ed7-3253ed7/glh_linear-common-None.tar.zst</string>
|
||||
<string>https://github.com/secondlife/3p-glh_linear/releases/download/v1.0.1-dev4-984c397/glh_linear-1.0.1-dev4-common-984c397.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>common</string>
|
||||
|
|
@ -789,7 +789,7 @@
|
|||
<key>copyright</key>
|
||||
<string>Copyright (c) 2000 Cass Everitt</string>
|
||||
<key>version</key>
|
||||
<string>None</string>
|
||||
<string>1.0.1-dev4</string>
|
||||
<key>name</key>
|
||||
<string>glh_linear</string>
|
||||
<key>description</key>
|
||||
|
|
@ -908,11 +908,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>a193ff65d6db48626d65d96c6124c6efca85e8ec</string>
|
||||
<string>ae2c2a215b1bc2e3f37a67e301926dc405902d1a</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-havok-source/releases/assets/108912596</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-havok-source/releases/assets/136778143</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -936,11 +936,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>ebfb82b6143874e7938b9d1e8a70d0a2e28aa818</string>
|
||||
<string>0393dd75c58f7046bed47e62a8884a78cb02a5c3</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-havok-source/releases/assets/108912599</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-havok-source/releases/assets/136778145</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -1146,11 +1146,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>bcc7e2c34896fc9cbc41828dee8a4ddf54f10453</string>
|
||||
<string>ad72fa1d103df777906f0d98f3e882b9916aeada</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/108298968</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/136774118</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -1162,11 +1162,11 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>9de772df2ed12e9c742df6c90670c7cbbb9c93a6</string>
|
||||
<string>e46e4ac93a237b5c4a14183766f76ba5d58935a2</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/108298969</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/136774125</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1178,15 +1178,31 @@
|
|||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>92533ff0f8c1881ad85e75800f9072c413ccf7b7</string>
|
||||
<string>bb37557f78c72b26580a521f8b8dabfa1b34e6e6</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/108298970</string>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/136774126</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
<key>linux</key>
|
||||
<map>
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>creds</key>
|
||||
<string>github</string>
|
||||
<key>hash</key>
|
||||
<string>711b82f9f588d3a125af7dcd8c81f93d9c343a7d</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://api.github.com/repos/secondlife/3p-kdu/releases/assets/136774121</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>Kakadu</string>
|
||||
|
|
@ -1195,7 +1211,7 @@
|
|||
<key>copyright</key>
|
||||
<string>Kakadu software</string>
|
||||
<key>version</key>
|
||||
<string>7.10.4.539108</string>
|
||||
<string>7.10.4.4b9ec5f</string>
|
||||
<key>name</key>
|
||||
<string>kdu</string>
|
||||
<key>description</key>
|
||||
|
|
@ -1487,6 +1503,15 @@
|
|||
</map>
|
||||
<key>llca</key>
|
||||
<map>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2016, Linden Research, Inc.; data provided by the Mozilla NSS Project.
|
||||
</string>
|
||||
<key>license</key>
|
||||
<string>mit</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/ca-license.txt</string>
|
||||
<key>name</key>
|
||||
<string>llca</string>
|
||||
<key>platforms</key>
|
||||
<map>
|
||||
<key>common</key>
|
||||
|
|
@ -1494,27 +1519,18 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>3a3e14563cd5fc019c3f139b82aa46ec79847709</string>
|
||||
<string>a9503e1b4e1d9790cf29d18a3d9ab39e6a515679</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>sha1</string>
|
||||
<key>url</key>
|
||||
<string>https://github.com/secondlife/llca/releases/download/v202312051403.17-0f5d9c3/llca-202312051404.0-common-0f5d9c3.tar.zst</string>
|
||||
<string>https://github.com/secondlife/llca/releases/download/v202402012004.0-0f5d9c3/llca-202402012004.0-common-0f5d9c3.tar.zst</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>common</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>license</key>
|
||||
<string>mit</string>
|
||||
<key>license_file</key>
|
||||
<string>LICENSES/ca-license.txt</string>
|
||||
<key>copyright</key>
|
||||
<string>Copyright (c) 2016, Linden Research, Inc.; data provided by the Mozilla NSS Project.
|
||||
</string>
|
||||
<key>version</key>
|
||||
<string>202312051404.0</string>
|
||||
<key>name</key>
|
||||
<string>llca</string>
|
||||
<string>202402012004.0</string>
|
||||
</map>
|
||||
<key>llphysicsextensions_source</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ Aimee Trescothick
|
|||
VWR-14711
|
||||
VWR-14712
|
||||
VWR-15454
|
||||
AiraYumi
|
||||
SL-20781 (github PR #613)
|
||||
Alejandro Rosenthal
|
||||
VWR-1184
|
||||
Aleric Inglewood
|
||||
|
|
@ -849,6 +851,7 @@ Kadah Coba
|
|||
Jondan Lundquist
|
||||
Joosten Briebers
|
||||
MAINT-7074
|
||||
BUG-225288
|
||||
Josef Munster
|
||||
Josette Windlow
|
||||
Juilan Tripsa
|
||||
|
|
|
|||
|
|
@ -24,12 +24,6 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if LL_MSVC
|
||||
// disable warning about boost::lexical_cast returning uninitialized data
|
||||
// when it fails to parse the string
|
||||
#pragma warning (disable:4701)
|
||||
#endif
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "llavatarappearance.h"
|
||||
|
|
@ -46,14 +40,6 @@
|
|||
#include "boost/bind.hpp"
|
||||
#include "boost/tokenizer.hpp"
|
||||
|
||||
|
||||
#if LL_MSVC
|
||||
// disable boost::lexical_cast warning
|
||||
#pragma warning (disable:4702)
|
||||
#endif
|
||||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
using namespace LLAvatarAppearanceDefines;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -230,7 +216,7 @@ void LLAvatarAppearance::initInstance()
|
|||
for (U32 lod = 0; lod < mesh_dict->mLOD; lod++)
|
||||
{
|
||||
LLAvatarJointMesh* mesh = createAvatarJointMesh();
|
||||
std::string mesh_name = "m" + mesh_dict->mName + boost::lexical_cast<std::string>(lod);
|
||||
std::string mesh_name = "m" + mesh_dict->mName + std::to_string(lod);
|
||||
// We pre-pended an m - need to capitalize first character for camelCase
|
||||
mesh_name[1] = toupper(mesh_name[1]);
|
||||
mesh->setName(mesh_name);
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@ void LLAudioEngine::idle()
|
|||
for (source_map::value_type& src_pair : mAllSources)
|
||||
{
|
||||
LLAudioSource *sourcep = src_pair.second;
|
||||
if (sourcep->isMuted() && sourcep->isSyncMaster() && sourcep->getPriority() > max_sm_priority)
|
||||
if (!sourcep->isMuted() && sourcep->isSyncMaster() && sourcep->getPriority() > max_sm_priority)
|
||||
{
|
||||
sync_masterp = sourcep;
|
||||
master_channelp = sync_masterp->getChannel();
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ private:
|
|||
};
|
||||
|
||||
/// shared_ptr manages Entry lifespan for us
|
||||
typedef boost::shared_ptr<EntryBase> EntryPtr;
|
||||
typedef std::shared_ptr<EntryBase> EntryPtr;
|
||||
/// use a @c list to make it easy to insert
|
||||
typedef std::list<EntryPtr> DispatchTable;
|
||||
DispatchTable mDispatch;
|
||||
|
|
|
|||
|
|
@ -1070,7 +1070,7 @@ namespace LLError
|
|||
//
|
||||
// NOTE!!! Requires external mutex lock!!!
|
||||
template <typename RECORDER>
|
||||
std::pair<boost::shared_ptr<RECORDER>, Recorders::iterator>
|
||||
std::pair<std::shared_ptr<RECORDER>, Recorders::iterator>
|
||||
findRecorderPos(SettingsConfigPtr &s)
|
||||
{
|
||||
// Since we promise to return an iterator, use a classic iterator
|
||||
|
|
@ -1081,7 +1081,7 @@ namespace LLError
|
|||
// *it is a RecorderPtr, a shared_ptr<Recorder>. Use a
|
||||
// dynamic_pointer_cast to try to downcast to test if it's also a
|
||||
// shared_ptr<RECORDER>.
|
||||
auto ptr = boost::dynamic_pointer_cast<RECORDER>(*it);
|
||||
auto ptr = std::dynamic_pointer_cast<RECORDER>(*it);
|
||||
if (ptr)
|
||||
{
|
||||
// found the entry we want
|
||||
|
|
@ -1101,7 +1101,7 @@ namespace LLError
|
|||
// shared_ptr might be empty (operator!() returns true) if there was no
|
||||
// such RECORDER subclass instance in mRecorders.
|
||||
template <typename RECORDER>
|
||||
boost::shared_ptr<RECORDER> findRecorder()
|
||||
std::shared_ptr<RECORDER> findRecorder()
|
||||
{
|
||||
SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig();
|
||||
LLMutexLock lock(&s->mRecorderMutex);
|
||||
|
|
@ -1134,7 +1134,7 @@ namespace LLError
|
|||
|
||||
if (!file_name.empty())
|
||||
{
|
||||
boost::shared_ptr<RecordToFile> recordToFile(new RecordToFile(file_name));
|
||||
std::shared_ptr<RecordToFile> recordToFile(new RecordToFile(file_name));
|
||||
if (recordToFile->okay())
|
||||
{
|
||||
addRecorder(recordToFile);
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ namespace LLError
|
|||
bool mWantsMultiline;
|
||||
};
|
||||
|
||||
typedef boost::shared_ptr<Recorder> RecorderPtr;
|
||||
typedef std::shared_ptr<Recorder> RecorderPtr;
|
||||
|
||||
/**
|
||||
* Instantiate GenericRecorder with a callable(level, message) to get
|
||||
|
|
|
|||
|
|
@ -211,12 +211,21 @@ void LLEventPumps::clear()
|
|||
}
|
||||
}
|
||||
|
||||
void LLEventPumps::reset()
|
||||
void LLEventPumps::reset(bool log_pumps)
|
||||
{
|
||||
// Reset every known LLEventPump instance. Leave it up to each instance to
|
||||
// decide what to do with the reset() call.
|
||||
if (log_pumps)
|
||||
{
|
||||
LL_INFOS() << "Resetting " << (S32)mPumpMap.size() << " pumps" << LL_ENDL;
|
||||
}
|
||||
|
||||
for (PumpMap::value_type& pair : mPumpMap)
|
||||
{
|
||||
if (log_pumps)
|
||||
{
|
||||
LL_INFOS() << "Resetting pump " << pair.first << LL_ENDL;
|
||||
}
|
||||
pair.second->reset();
|
||||
}
|
||||
}
|
||||
|
|
@ -373,9 +382,11 @@ std::string LLEventPump::inventName(const std::string& pfx)
|
|||
|
||||
void LLEventPump::clear()
|
||||
{
|
||||
LLMutexLock lock(&mConnectionListMutex);
|
||||
// Destroy the original LLStandardSignal instance, replacing it with a
|
||||
// whole new one.
|
||||
mSignal = std::make_shared<LLStandardSignal>();
|
||||
|
||||
mConnections.clear();
|
||||
}
|
||||
|
||||
|
|
@ -383,6 +394,7 @@ void LLEventPump::reset()
|
|||
{
|
||||
// Resetting mSignal is supposed to disconnect everything on its own
|
||||
// But due to crash on 'reset' added explicit cleanup to get more data
|
||||
LLMutexLock lock(&mConnectionListMutex);
|
||||
ConnectionMap::const_iterator iter = mConnections.begin();
|
||||
ConnectionMap::const_iterator end = mConnections.end();
|
||||
while (iter!=end)
|
||||
|
|
@ -407,6 +419,8 @@ LLBoundListener LLEventPump::listen_impl(const std::string& name, const LLEventL
|
|||
return LLBoundListener();
|
||||
}
|
||||
|
||||
LLMutexLock lock(&mConnectionListMutex);
|
||||
|
||||
float nodePosition = 1.0;
|
||||
|
||||
// if the supplied name is empty we are not interested in the ordering mechanism
|
||||
|
|
@ -566,8 +580,9 @@ LLBoundListener LLEventPump::listen_impl(const std::string& name, const LLEventL
|
|||
return bound;
|
||||
}
|
||||
|
||||
LLBoundListener LLEventPump::getListener(const std::string& name) const
|
||||
LLBoundListener LLEventPump::getListener(const std::string& name)
|
||||
{
|
||||
LLMutexLock lock(&mConnectionListMutex);
|
||||
ConnectionMap::const_iterator found = mConnections.find(name);
|
||||
if (found != mConnections.end())
|
||||
{
|
||||
|
|
@ -579,6 +594,7 @@ LLBoundListener LLEventPump::getListener(const std::string& name) const
|
|||
|
||||
void LLEventPump::stopListening(const std::string& name)
|
||||
{
|
||||
LLMutexLock lock(&mConnectionListMutex);
|
||||
ConnectionMap::iterator found = mConnections.find(name);
|
||||
if (found != mConnections.end())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ public:
|
|||
* Reset all known LLEventPump instances
|
||||
* workaround for DEV-35406 crash on shutdown
|
||||
*/
|
||||
void reset();
|
||||
void reset(bool log_pumps = false);
|
||||
|
||||
private:
|
||||
friend class LLEventPump;
|
||||
|
|
@ -558,7 +558,7 @@ public:
|
|||
|
||||
/// Get the LLBoundListener associated with the passed name (dummy
|
||||
/// LLBoundListener if not found)
|
||||
virtual LLBoundListener getListener(const std::string& name) const;
|
||||
virtual LLBoundListener getListener(const std::string& name);
|
||||
/**
|
||||
* Instantiate one of these to block an existing connection:
|
||||
* @code
|
||||
|
|
@ -601,6 +601,7 @@ private:
|
|||
LLHandle<LLEventPumps> mRegistry;
|
||||
|
||||
std::string mName;
|
||||
LLMutex mConnectionListMutex;
|
||||
|
||||
protected:
|
||||
virtual LLBoundListener listen_impl(const std::string& name, const LLEventListener&,
|
||||
|
|
|
|||
|
|
@ -627,7 +627,7 @@ namespace LLInitParam
|
|||
UserData* mUserData;
|
||||
};
|
||||
|
||||
typedef boost::shared_ptr<ParamDescriptor> ParamDescriptorPtr;
|
||||
typedef std::shared_ptr<ParamDescriptor> ParamDescriptorPtr;
|
||||
|
||||
// each derived Block class keeps a static data structure maintaining offsets to various params
|
||||
class LL_COMMON_API BlockDescriptor
|
||||
|
|
|
|||
|
|
@ -462,10 +462,10 @@ private:
|
|||
LLProcessPtr mChild;
|
||||
LLTempBoundListener
|
||||
mStdinConnection, mStdoutConnection, mStdoutDataConnection, mStderrConnection;
|
||||
boost::scoped_ptr<LLEventPump::Blocker> mBlocker;
|
||||
std::unique_ptr<LLEventPump::Blocker> mBlocker;
|
||||
LLProcess::ReadPipe::size_type mExpect;
|
||||
LLError::RecorderPtr mRecorder;
|
||||
boost::scoped_ptr<LLLeapListener> mListener;
|
||||
std::unique_ptr<LLLeapListener> mListener;
|
||||
};
|
||||
|
||||
// These must follow the declaration of LLLeapImpl, so they may as well be last.
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include <mach/mach_host.h>
|
||||
#elif LL_LINUX
|
||||
# include <unistd.h>
|
||||
# include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
#include "llmemory.h"
|
||||
|
|
@ -273,33 +274,16 @@ U64 LLMemory::getCurrentRSS()
|
|||
|
||||
U64 LLMemory::getCurrentRSS()
|
||||
{
|
||||
static const char statPath[] = "/proc/self/stat";
|
||||
LLFILE *fp = LLFile::fopen(statPath, "r");
|
||||
U64 rss = 0;
|
||||
struct rusage usage;
|
||||
|
||||
if (fp == NULL)
|
||||
{
|
||||
LL_WARNS() << "couldn't open " << statPath << LL_ENDL;
|
||||
if (getrusage(RUSAGE_SELF, &usage) != 0) {
|
||||
// Error handling code could be here
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Eee-yew! See Documentation/filesystems/proc.txt in your
|
||||
// nearest friendly kernel tree for details.
|
||||
|
||||
{
|
||||
int ret = fscanf(fp, "%*d (%*[^)]) %*c %*d %*d %*d %*d %*d %*d %*d "
|
||||
"%*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %Lu",
|
||||
&rss);
|
||||
if (ret != 1)
|
||||
{
|
||||
LL_WARNS() << "couldn't parse contents of " << statPath << LL_ENDL;
|
||||
rss = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
return rss;
|
||||
// ru_maxrss (since Linux 2.6.32)
|
||||
// This is the maximum resident set size used (in kilobytes).
|
||||
return usage.ru_maxrss * 1024;
|
||||
}
|
||||
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
#include "llevents.h"
|
||||
#include "llexception.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/asio/streambuf.hpp>
|
||||
#include <boost/asio/buffers_iterator.hpp>
|
||||
|
|
@ -587,7 +586,7 @@ LLProcess::LLProcess(const LLSDOrParams& params):
|
|||
// apr_procattr_child_err_set()), or accepting a filename, opening it and
|
||||
// passing that apr_file_t (simple <, >, 2> redirect emulation).
|
||||
std::vector<apr_int32_t> select;
|
||||
BOOST_FOREACH(const FileParam& fparam, params.files)
|
||||
for (const FileParam& fparam : params.files)
|
||||
{
|
||||
// Every iteration, we're going to append an item to 'select'. At the
|
||||
// top of the loop, its size() is, in effect, an index. Use that to
|
||||
|
|
@ -684,7 +683,7 @@ LLProcess::LLProcess(const LLSDOrParams& params):
|
|||
argv.push_back(params.executable().c_str());
|
||||
|
||||
// Add arguments. See above remarks about c_str().
|
||||
BOOST_FOREACH(const std::string& arg, params.args)
|
||||
for (const std::string& arg : params.args)
|
||||
{
|
||||
argv.push_back(arg.c_str());
|
||||
}
|
||||
|
|
@ -961,7 +960,7 @@ void LLProcess::handle_status(int reason, int status)
|
|||
// only be performed if in fact we're going to produce the log message.
|
||||
LL_DEBUGS("LLProcess") << empty;
|
||||
std::string reason_str;
|
||||
BOOST_FOREACH(const ReasonCode& rcp, reasons)
|
||||
for (const ReasonCode& rcp : reasons)
|
||||
{
|
||||
if (reason == rcp.code)
|
||||
{
|
||||
|
|
@ -1151,7 +1150,7 @@ std::ostream& operator<<(std::ostream& out, const LLProcess::Params& params)
|
|||
out << "cd " << LLStringUtil::quote(params.cwd) << ": ";
|
||||
}
|
||||
out << LLStringUtil::quote(params.executable);
|
||||
BOOST_FOREACH(const std::string& arg, params.args)
|
||||
for (const std::string& arg : params.args)
|
||||
{
|
||||
out << ' ' << LLStringUtil::quote(arg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class LLEventPump;
|
|||
class LLProcess;
|
||||
/// LLProcess instances are created on the heap by static factory methods and
|
||||
/// managed by ref-counted pointers.
|
||||
typedef boost::shared_ptr<LLProcess> LLProcessPtr;
|
||||
typedef std::shared_ptr<LLProcess> LLProcessPtr;
|
||||
|
||||
/**
|
||||
* LLProcess handles launching an external process with specified command line
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public:
|
|||
/**
|
||||
* @brief The pointer to a runnable.
|
||||
*/
|
||||
typedef boost::shared_ptr<LLRunnable> run_ptr_t;
|
||||
typedef std::shared_ptr<LLRunnable> run_ptr_t;
|
||||
|
||||
/**
|
||||
* @brief The handle for use in the API.
|
||||
|
|
|
|||
|
|
@ -478,9 +478,9 @@ namespace llsd
|
|||
{
|
||||
|
||||
/*****************************************************************************
|
||||
* BOOST_FOREACH() helpers for LLSD
|
||||
* range-based for-loop helpers for LLSD
|
||||
*****************************************************************************/
|
||||
/// Usage: BOOST_FOREACH(LLSD item, inArray(someLLSDarray)) { ... }
|
||||
/// Usage: for (LLSD item : inArray(someLLSDarray)) { ... }
|
||||
class inArray
|
||||
{
|
||||
public:
|
||||
|
|
@ -503,7 +503,7 @@ private:
|
|||
/// MapEntry is what you get from dereferencing an LLSD::map_[const_]iterator.
|
||||
typedef std::map<LLSD::String, LLSD>::value_type MapEntry;
|
||||
|
||||
/// Usage: BOOST_FOREACH([const] MapEntry& e, inMap(someLLSDmap)) { ... }
|
||||
/// Usage: for([const] MapEntry& e : inMap(someLLSDmap)) { ... }
|
||||
class inMap
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "lldependencies.h"
|
||||
#include "llexception.h"
|
||||
#include "llcoros.h"
|
||||
#include <boost/foreach.hpp>
|
||||
#include <algorithm>
|
||||
#include <iostream> // std::cerr in dire emergency
|
||||
#include <sstream>
|
||||
|
|
@ -411,7 +410,7 @@ void LLSingletonBase::cleanup_()
|
|||
void LLSingletonBase::deleteAll()
|
||||
{
|
||||
// It's essential to traverse these in dependency order.
|
||||
BOOST_FOREACH(LLSingletonBase* sp, dep_sort())
|
||||
for (LLSingletonBase* sp : dep_sort())
|
||||
{
|
||||
// Capture the class name first: in case of exception, don't count on
|
||||
// being able to extract it later.
|
||||
|
|
|
|||
|
|
@ -1215,7 +1215,7 @@ void LLStringUtilBase<T>::getTokens(const string_type& string, std::vector<strin
|
|||
{
|
||||
// This overload must deal with escapes. Delegate that to InEscString
|
||||
// (unless there ARE no escapes).
|
||||
boost::scoped_ptr< LLStringUtilBaseImpl::InString<T> > instrp;
|
||||
std::unique_ptr< LLStringUtilBaseImpl::InString<T> > instrp;
|
||||
if (escapes.empty())
|
||||
instrp.reset(new LLStringUtilBaseImpl::InString<T>(string.begin(), string.end()));
|
||||
else
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
#include "llsdutil.h"
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/circular_buffer.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/range.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
|
|
@ -905,9 +904,9 @@ void LLMemoryInfo::stream(std::ostream& s) const
|
|||
|
||||
// Max key length
|
||||
size_t key_width(0);
|
||||
BOOST_FOREACH(const MapEntry& pair, inMap(mStatsMap))
|
||||
for (const auto& [key, value] : inMap(mStatsMap))
|
||||
{
|
||||
size_t len(pair.first.length());
|
||||
size_t len(key.length());
|
||||
if (len > key_width)
|
||||
{
|
||||
key_width = len;
|
||||
|
|
@ -915,10 +914,9 @@ void LLMemoryInfo::stream(std::ostream& s) const
|
|||
}
|
||||
|
||||
// Now stream stats
|
||||
BOOST_FOREACH(const MapEntry& pair, inMap(mStatsMap))
|
||||
for (const auto& [key, value] : inMap(mStatsMap))
|
||||
{
|
||||
s << pfx << std::setw(narrow<size_t>(key_width+1)) << (pair.first + ':') << ' ';
|
||||
LLSD value(pair.second);
|
||||
s << pfx << std::setw(narrow<size_t>(key_width+1)) << (key + ':') << ' ';
|
||||
if (value.isInteger())
|
||||
s << std::setw(12) << value.asInteger();
|
||||
else if (value.isReal())
|
||||
|
|
|
|||
|
|
@ -153,27 +153,27 @@ namespace tut
|
|||
|
||||
int countMessages()
|
||||
{
|
||||
return boost::dynamic_pointer_cast<TestRecorder>(mRecorder)->countMessages();
|
||||
return std::dynamic_pointer_cast<TestRecorder>(mRecorder)->countMessages();
|
||||
}
|
||||
|
||||
void clearMessages()
|
||||
{
|
||||
boost::dynamic_pointer_cast<TestRecorder>(mRecorder)->clearMessages();
|
||||
std::dynamic_pointer_cast<TestRecorder>(mRecorder)->clearMessages();
|
||||
}
|
||||
|
||||
void setWantsTime(bool t)
|
||||
{
|
||||
boost::dynamic_pointer_cast<TestRecorder>(mRecorder)->showTime(t);
|
||||
std::dynamic_pointer_cast<TestRecorder>(mRecorder)->showTime(t);
|
||||
}
|
||||
|
||||
void setWantsMultiline(bool t)
|
||||
{
|
||||
boost::dynamic_pointer_cast<TestRecorder>(mRecorder)->showMultiline(t);
|
||||
std::dynamic_pointer_cast<TestRecorder>(mRecorder)->showMultiline(t);
|
||||
}
|
||||
|
||||
std::string message(int n)
|
||||
{
|
||||
return boost::dynamic_pointer_cast<TestRecorder>(mRecorder)->message(n);
|
||||
return std::dynamic_pointer_cast<TestRecorder>(mRecorder)->message(n);
|
||||
}
|
||||
|
||||
void ensure_message_count(int expectedCount)
|
||||
|
|
@ -497,12 +497,12 @@ namespace
|
|||
void testLogName(LLError::RecorderPtr recorder, LogFromFunction f,
|
||||
const std::string& class_name = "")
|
||||
{
|
||||
boost::dynamic_pointer_cast<tut::TestRecorder>(recorder)->clearMessages();
|
||||
std::dynamic_pointer_cast<tut::TestRecorder>(recorder)->clearMessages();
|
||||
std::string name = f(false);
|
||||
f(true);
|
||||
|
||||
std::string messageWithoutName = boost::dynamic_pointer_cast<tut::TestRecorder>(recorder)->message(0);
|
||||
std::string messageWithName = boost::dynamic_pointer_cast<tut::TestRecorder>(recorder)->message(1);
|
||||
std::string messageWithoutName = std::dynamic_pointer_cast<tut::TestRecorder>(recorder)->message(0);
|
||||
std::string messageWithName = std::dynamic_pointer_cast<tut::TestRecorder>(recorder)->message(1);
|
||||
|
||||
ensure_has(name + " logged without name",
|
||||
messageWithoutName, name);
|
||||
|
|
@ -691,13 +691,13 @@ namespace tut
|
|||
LL_INFOS() << "boo" << LL_ENDL;
|
||||
|
||||
ensure_message_field_equals(0, MSG_FIELD, "boo");
|
||||
ensure_equals("alt recorder count", boost::dynamic_pointer_cast<TestRecorder>(altRecorder)->countMessages(), 1);
|
||||
ensure_contains("alt recorder message 0", boost::dynamic_pointer_cast<TestRecorder>(altRecorder)->message(0), "boo");
|
||||
ensure_equals("alt recorder count", std::dynamic_pointer_cast<TestRecorder>(altRecorder)->countMessages(), 1);
|
||||
ensure_contains("alt recorder message 0", std::dynamic_pointer_cast<TestRecorder>(altRecorder)->message(0), "boo");
|
||||
|
||||
LLError::setTimeFunction(roswell);
|
||||
|
||||
LLError::RecorderPtr anotherRecorder(new TestRecorder());
|
||||
boost::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->showTime(true);
|
||||
std::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->showTime(true);
|
||||
LLError::addRecorder(anotherRecorder);
|
||||
|
||||
LL_INFOS() << "baz" << LL_ENDL;
|
||||
|
|
@ -705,10 +705,10 @@ namespace tut
|
|||
std::string when = roswell();
|
||||
|
||||
ensure_message_does_not_contain(1, when);
|
||||
ensure_equals("alt recorder count", boost::dynamic_pointer_cast<TestRecorder>(altRecorder)->countMessages(), 2);
|
||||
ensure_does_not_contain("alt recorder message 1", boost::dynamic_pointer_cast<TestRecorder>(altRecorder)->message(1), when);
|
||||
ensure_equals("another recorder count", boost::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->countMessages(), 1);
|
||||
ensure_contains("another recorder message 0", boost::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->message(0), when);
|
||||
ensure_equals("alt recorder count", std::dynamic_pointer_cast<TestRecorder>(altRecorder)->countMessages(), 2);
|
||||
ensure_does_not_contain("alt recorder message 1", std::dynamic_pointer_cast<TestRecorder>(altRecorder)->message(1), when);
|
||||
ensure_equals("another recorder count", std::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->countMessages(), 1);
|
||||
ensure_contains("another recorder message 0", std::dynamic_pointer_cast<TestRecorder>(anotherRecorder)->message(0), when);
|
||||
|
||||
LLError::removeRecorder(altRecorder);
|
||||
LLError::removeRecorder(anotherRecorder);
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ namespace tut
|
|||
int which;
|
||||
LLTestApp testApp;
|
||||
|
||||
void explicit_wait(boost::shared_ptr<LLCoros::Promise<std::string>>& cbp);
|
||||
void explicit_wait(std::shared_ptr<LLCoros::Promise<std::string>>& cbp);
|
||||
void waitForEventOn1();
|
||||
void coroPump();
|
||||
void postAndWait1();
|
||||
|
|
@ -111,7 +111,7 @@ namespace tut
|
|||
typedef coroutine_group::object object;
|
||||
coroutine_group coroutinegrp("coroutine");
|
||||
|
||||
void test_data::explicit_wait(boost::shared_ptr<LLCoros::Promise<std::string>>& cbp)
|
||||
void test_data::explicit_wait(std::shared_ptr<LLCoros::Promise<std::string>>& cbp)
|
||||
{
|
||||
BEGIN
|
||||
{
|
||||
|
|
@ -127,7 +127,7 @@ namespace tut
|
|||
// For test purposes, instead of handing 'callback' (or an
|
||||
// adapter) off to some I/O subsystem, we'll just pass it back to
|
||||
// our caller.
|
||||
cbp = boost::make_shared<LLCoros::Promise<std::string>>();
|
||||
cbp = std::make_shared<LLCoros::Promise<std::string>>();
|
||||
LLCoros::Future<std::string> future = LLCoros::getFuture(*cbp);
|
||||
|
||||
// calling get() on the future causes us to suspend
|
||||
|
|
@ -146,7 +146,7 @@ namespace tut
|
|||
DEBUG;
|
||||
|
||||
// Construct the coroutine instance that will run explicit_wait.
|
||||
boost::shared_ptr<LLCoros::Promise<std::string>> respond;
|
||||
std::shared_ptr<LLCoros::Promise<std::string>> respond;
|
||||
LLCoros::instance().launch("test<1>",
|
||||
[this, &respond](){ explicit_wait(respond); });
|
||||
mSync.bump();
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace tut
|
|||
ensure("couldn't find stack Keyed", bool(found));
|
||||
ensure_equals("found wrong Keyed instance", found.get(), &one);
|
||||
{
|
||||
boost::scoped_ptr<Keyed> two(new Keyed("two"));
|
||||
std::unique_ptr<Keyed> two(new Keyed("two"));
|
||||
ensure_equals(Keyed::instanceCount(), 2);
|
||||
auto found = Keyed::getInstance("two");
|
||||
ensure("couldn't find heap Keyed", bool(found));
|
||||
|
|
@ -118,7 +118,7 @@ namespace tut
|
|||
std::weak_ptr<Unkeyed> found = one.getWeak();
|
||||
ensure(! found.expired());
|
||||
{
|
||||
boost::scoped_ptr<Unkeyed> two(new Unkeyed);
|
||||
std::unique_ptr<Unkeyed> two(new Unkeyed);
|
||||
ensure_equals(Unkeyed::instanceCount(), 2);
|
||||
}
|
||||
ensure_equals(Unkeyed::instanceCount(), 1);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@
|
|||
// external library headers
|
||||
#include "llapr.h"
|
||||
#include "apr_thread_proc.h"
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/function.hpp>
|
||||
#include <boost/algorithm/string/find_iterator.hpp>
|
||||
#include <boost/algorithm/string/finder.hpp>
|
||||
|
|
@ -323,7 +322,7 @@ namespace tut
|
|||
{
|
||||
/*==========================================================================*|
|
||||
std::string reason_str;
|
||||
BOOST_FOREACH(const ReasonCode& rcp, reasons)
|
||||
for (const ReasonCode& rcp : reasons)
|
||||
{
|
||||
if (reason == rcp.code)
|
||||
{
|
||||
|
|
@ -554,7 +553,7 @@ namespace tut
|
|||
catch (const failure&)
|
||||
{
|
||||
std::cout << "History:\n";
|
||||
BOOST_FOREACH(const Item& item, history)
|
||||
for (const Item& item : history)
|
||||
{
|
||||
std::string what(item.what);
|
||||
if ((! what.empty()) && what[what.length() - 1] == '\n')
|
||||
|
|
|
|||
|
|
@ -15,9 +15,6 @@
|
|||
#include "llstreamqueue.h"
|
||||
// STL headers
|
||||
#include <vector>
|
||||
// std headers
|
||||
// external library headers
|
||||
#include <boost/foreach.hpp>
|
||||
// other Linden headers
|
||||
#include "../test/lltut.h"
|
||||
#include "stringize.h"
|
||||
|
|
@ -133,7 +130,7 @@ namespace tut
|
|||
std::streamsize leave(5); // len("craft") above
|
||||
std::streamsize skip(total - leave);
|
||||
std::streamsize written(0);
|
||||
BOOST_FOREACH(const std::string& block, blocks)
|
||||
for (const std::string& block : blocks)
|
||||
{
|
||||
written += strq.write(&block[0], block.length());
|
||||
ensure_equals("size() after write()", strq.size(), written);
|
||||
|
|
@ -152,7 +149,7 @@ namespace tut
|
|||
{
|
||||
set_test_name("concatenate blocks");
|
||||
std::string blocks[] = { "abcd", "efghij", "klmnopqrs" };
|
||||
BOOST_FOREACH(const std::string& block, blocks)
|
||||
for (const std::string& block : blocks)
|
||||
{
|
||||
strq.write(&block[0], block.length());
|
||||
}
|
||||
|
|
@ -170,7 +167,7 @@ namespace tut
|
|||
{
|
||||
set_test_name("split blocks");
|
||||
std::string blocks[] = { "abcdefghijklm", "nopqrstuvwxyz" };
|
||||
BOOST_FOREACH(const std::string& block, blocks)
|
||||
for (const std::string& block : blocks)
|
||||
{
|
||||
strq.write(&block[0], block.length());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
// external library headers
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/range/iterator_range.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
// associated header
|
||||
#include "../lltreeiterators.h"
|
||||
|
|
@ -402,7 +401,7 @@ private:
|
|||
*
|
||||
* Example:
|
||||
* @code
|
||||
* BOOST_FOREACH(TreeNodePtr node, getRootRange<LLTreeIter::UP>(somenode))
|
||||
* for (TreeNodePtr node : getRootRange<LLTreeIter::UP>(somenode))
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -424,7 +423,7 @@ getRootRange(const TreeNodePtr& node)
|
|||
*
|
||||
* Example:
|
||||
* @code
|
||||
* BOOST_FOREACH(TreeNodePtr node, getWalkRange<LLTreeIter::DFS_PRE>(root))
|
||||
* for (TreeNodePtr node : getWalkRange<LLTreeIter::DFS_PRE>(root))
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -520,7 +519,7 @@ public:
|
|||
*
|
||||
* Example usage:
|
||||
* @code
|
||||
* BOOST_FOREACH(EnhancedTreeNodePtr node, somenode->getRootRange<LLTreeIter::UP>())
|
||||
* for (EnhancedTreeNodePtr node : somenode->getRootRange<LLTreeIter::UP>())
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -564,7 +563,7 @@ public:
|
|||
*
|
||||
* Example usage:
|
||||
* @code
|
||||
* BOOST_FOREACH(EnhancedTreeNodePtr node, somenode->getWalkRange<LLTreeIter::DFS_PRE>())
|
||||
* for (EnhancedTreeNodePtr node : somenode->getWalkRange<LLTreeIter::DFS_PRE>())
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -644,7 +643,7 @@ LLLinkedIter<PlainTree> PlainTree_child_end(PlainTree* node)
|
|||
*
|
||||
* Example:
|
||||
* @code
|
||||
* BOOST_FOREACH(PlainTree* node, getRootRange<LLTreeIter::UP>(somenode))
|
||||
* for (PlainTree* node : getRootRange<LLTreeIter::UP>(somenode))
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -668,7 +667,7 @@ getRootRange(PlainTree* node)
|
|||
*
|
||||
* Example:
|
||||
* @code
|
||||
* BOOST_FOREACH(PlainTree* node, getWalkRange<LLTreeIter::DFS_PRE>(root))
|
||||
* for (PlainTree* node : getWalkRange<LLTreeIter::DFS_PRE>(root))
|
||||
* {
|
||||
* std::cout << node->name() << '\n';
|
||||
* }
|
||||
|
|
@ -1103,18 +1102,18 @@ namespace tut
|
|||
// This test function illustrates the looping techniques described in the
|
||||
// comments for the getRootRange() free function, the
|
||||
// EnhancedTreeNode::root_range template and the
|
||||
// EnhancedTreeNode::getRootRange() method. Obviously the BOOST_FOREACH()
|
||||
// EnhancedTreeNode::getRootRange() method. Obviously the for()
|
||||
// forms are more succinct.
|
||||
TreeNodePtr tnroot(example_tree<TreeNode>());
|
||||
TreeNodePtr tnB2b(get_B2b<TreeNode, TreeNode::child_iterator>
|
||||
(tnroot, boost::bind(&TreeNode::child_begin, _1)));
|
||||
|
||||
std::string desc1("BOOST_FOREACH(TreeNodePr, getRootRange<LLTreeIter::UP>(tnB2b))");
|
||||
std::string desc1("for (TreeNodePr : getRootRange<LLTreeIter::UP>(tnB2b))");
|
||||
// std::cout << desc1 << "\n";
|
||||
// Although we've commented out the output statement, ensure that the
|
||||
// loop construct is still valid, as promised by the getRootRange()
|
||||
// documentation.
|
||||
BOOST_FOREACH(TreeNodePtr node, getRootRange<LLTreeIter::UP>(tnB2b))
|
||||
for (TreeNodePtr node : getRootRange<LLTreeIter::UP>(tnB2b))
|
||||
{
|
||||
// std::cout << node->name() << '\n';
|
||||
}
|
||||
|
|
@ -1137,9 +1136,9 @@ namespace tut
|
|||
// std::cout << (*ri)->name() << '\n';
|
||||
}
|
||||
|
||||
std::string desc2("BOOST_FOREACH(EnhancedTreeNodePtr node, etnB2b->getRootRange<LLTreeIter::UP>())");
|
||||
std::string desc2("for (EnhancedTreeNodePtr node : etnB2b->getRootRange<LLTreeIter::UP>())");
|
||||
// std::cout << desc2 << '\n';
|
||||
BOOST_FOREACH(EnhancedTreeNodePtr node, etnB2b->getRootRange<LLTreeIter::UP>())
|
||||
for (EnhancedTreeNodePtr node : etnB2b->getRootRange<LLTreeIter::UP>())
|
||||
{
|
||||
// std::cout << node->name() << '\n';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -218,12 +218,12 @@ public:
|
|||
/// for the sought string.
|
||||
std::string messageWith(const std::string& search, bool required=true)
|
||||
{
|
||||
return boost::dynamic_pointer_cast<CaptureLogRecorder>(mRecorder)->messageWith(search, required);
|
||||
return std::dynamic_pointer_cast<CaptureLogRecorder>(mRecorder)->messageWith(search, required);
|
||||
}
|
||||
|
||||
std::ostream& streamto(std::ostream& out) const
|
||||
{
|
||||
return boost::dynamic_pointer_cast<CaptureLogRecorder>(mRecorder)->streamto(out);
|
||||
return std::dynamic_pointer_cast<CaptureLogRecorder>(mRecorder)->streamto(out);
|
||||
}
|
||||
|
||||
friend inline std::ostream& operator<<(std::ostream& out, const CaptureLog& self)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ private:
|
|||
void operator=(const HttpLibcurl &); // Not defined
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOpRequest> opReqPtr_t;
|
||||
typedef std::shared_ptr<HttpOpRequest> opReqPtr_t;
|
||||
|
||||
/// Give cycles to libcurl to run active requests. Completed
|
||||
/// operations (successful or failed) will be retried or handed
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ HttpOperation::handleMap_t HttpOperation::mHandleMap;
|
|||
LLCoreInt::HttpMutex HttpOperation::mOpMutex;
|
||||
|
||||
HttpOperation::HttpOperation():
|
||||
boost::enable_shared_from_this<HttpOperation>(),
|
||||
std::enable_shared_from_this<HttpOperation>(),
|
||||
mReplyQueue(),
|
||||
mUserHandler(),
|
||||
mReqPolicy(HttpRequest::DEFAULT_POLICY_ID),
|
||||
|
|
|
|||
|
|
@ -69,12 +69,12 @@ class HttpService;
|
|||
/// and those interfaces establish the access rules.
|
||||
|
||||
class HttpOperation : private boost::noncopyable,
|
||||
public boost::enable_shared_from_this<HttpOperation>
|
||||
public std::enable_shared_from_this<HttpOperation>
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOperation> ptr_t;
|
||||
typedef boost::weak_ptr<HttpOperation> wptr_t;
|
||||
typedef boost::shared_ptr<HttpReplyQueue> HttpReplyQueuePtr_t;
|
||||
typedef std::shared_ptr<HttpOperation> ptr_t;
|
||||
typedef std::weak_ptr<HttpOperation> wptr_t;
|
||||
typedef std::shared_ptr<HttpReplyQueue> HttpReplyQueuePtr_t;
|
||||
|
||||
/// Threading: called by consumer thread.
|
||||
HttpOperation();
|
||||
|
|
@ -157,12 +157,12 @@ public:
|
|||
HttpHandle getHandle();
|
||||
|
||||
template< class OPT >
|
||||
static boost::shared_ptr< OPT > fromHandle(HttpHandle handle)
|
||||
static std::shared_ptr< OPT > fromHandle(HttpHandle handle)
|
||||
{
|
||||
ptr_t ptr = findByHandle(handle);
|
||||
if (!ptr)
|
||||
return boost::shared_ptr< OPT >();
|
||||
return boost::dynamic_pointer_cast< OPT >(ptr);
|
||||
return std::shared_ptr< OPT >();
|
||||
return std::dynamic_pointer_cast< OPT >(ptr);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ HttpOpRequest::~HttpOpRequest()
|
|||
void HttpOpRequest::stageFromRequest(HttpService * service)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
|
||||
HttpOpRequest::ptr_t self(boost::dynamic_pointer_cast<HttpOpRequest>(shared_from_this()));
|
||||
HttpOpRequest::ptr_t self(std::dynamic_pointer_cast<HttpOpRequest>(shared_from_this()));
|
||||
service->getPolicy().addOp(self); // transfers refcount
|
||||
}
|
||||
|
||||
|
|
@ -209,7 +209,7 @@ void HttpOpRequest::stageFromRequest(HttpService * service)
|
|||
void HttpOpRequest::stageFromReady(HttpService * service)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
|
||||
HttpOpRequest::ptr_t self(boost::dynamic_pointer_cast<HttpOpRequest>(shared_from_this()));
|
||||
HttpOpRequest::ptr_t self(std::dynamic_pointer_cast<HttpOpRequest>(shared_from_this()));
|
||||
service->getTransport().addOp(self); // transfers refcount
|
||||
}
|
||||
|
||||
|
|
@ -290,7 +290,7 @@ void HttpOpRequest::visitNotifier(HttpRequest * request)
|
|||
// HttpOpRequest::ptr_t HttpOpRequest::fromHandle(HttpHandle handle)
|
||||
// {
|
||||
//
|
||||
// return boost::dynamic_pointer_cast<HttpOpRequest>((static_cast<HttpOpRequest *>(handle))->shared_from_this());
|
||||
// return std::dynamic_pointer_cast<HttpOpRequest>((static_cast<HttpOpRequest *>(handle))->shared_from_this());
|
||||
// }
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ class BufferArray;
|
|||
class HttpOpRequest : public HttpOperation
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOpRequest> ptr_t;
|
||||
typedef std::shared_ptr<HttpOpRequest> ptr_t;
|
||||
|
||||
HttpOpRequest();
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace LLCore
|
|||
class HttpOpSetGet : public HttpOperation
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOpSetGet> ptr_t;
|
||||
typedef std::shared_ptr<HttpOpSetGet> ptr_t;
|
||||
|
||||
HttpOpSetGet();
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ private:
|
|||
void operator=(const HttpPolicy &); // Not defined
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOpRequest> opReqPtr_t;
|
||||
typedef std::shared_ptr<HttpOpRequest> opReqPtr_t;
|
||||
|
||||
/// Threading: called by init thread.
|
||||
HttpRequest::policy_t createPolicyClass();
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ class HttpReplyQueue : private boost::noncopyable
|
|||
{
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOperation> opPtr_t;
|
||||
typedef boost::shared_ptr<HttpReplyQueue> ptr_t;
|
||||
typedef std::shared_ptr<HttpOperation> opPtr_t;
|
||||
typedef std::shared_ptr<HttpReplyQueue> ptr_t;
|
||||
|
||||
HttpReplyQueue();
|
||||
virtual ~HttpReplyQueue();
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ private:
|
|||
void operator=(const HttpRequestQueue &); // Not defined
|
||||
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpOperation> opPtr_t;
|
||||
typedef std::shared_ptr<HttpOperation> opPtr_t;
|
||||
|
||||
static void init();
|
||||
static void term();
|
||||
|
|
|
|||
|
|
@ -301,24 +301,24 @@ struct HttpStatus
|
|||
|
||||
HttpStatus()
|
||||
{
|
||||
mDetails = boost::shared_ptr<Details>(new Details(LLCORE, HE_SUCCESS));
|
||||
mDetails = std::shared_ptr<Details>(new Details(LLCORE, HE_SUCCESS));
|
||||
}
|
||||
|
||||
HttpStatus(type_enum_t type, short status)
|
||||
{
|
||||
mDetails = boost::shared_ptr<Details>(new Details(type, status));
|
||||
mDetails = std::shared_ptr<Details>(new Details(type, status));
|
||||
}
|
||||
|
||||
HttpStatus(int http_status)
|
||||
{
|
||||
mDetails = boost::shared_ptr<Details>(new Details(http_status,
|
||||
mDetails = std::shared_ptr<Details>(new Details(http_status,
|
||||
(http_status >= 200 && http_status <= 299) ? HE_SUCCESS : HE_REPLY_ERROR));
|
||||
llassert(http_status >= 100 && http_status <= 999);
|
||||
}
|
||||
|
||||
HttpStatus(int http_status, const std::string &message)
|
||||
{
|
||||
mDetails = boost::shared_ptr<Details>(new Details(http_status,
|
||||
mDetails = std::shared_ptr<Details>(new Details(http_status,
|
||||
(http_status >= 200 && http_status <= 299) ? HE_SUCCESS : HE_REPLY_ERROR));
|
||||
llassert(http_status >= 100 && http_status <= 999);
|
||||
mDetails->mMessage = message;
|
||||
|
|
@ -341,7 +341,7 @@ struct HttpStatus
|
|||
|
||||
HttpStatus & clone(const HttpStatus &rhs)
|
||||
{
|
||||
mDetails = boost::shared_ptr<Details>(new Details(*rhs.mDetails));
|
||||
mDetails = std::shared_ptr<Details>(new Details(*rhs.mDetails));
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -490,14 +490,14 @@ private:
|
|||
LLSD mErrorData;
|
||||
};
|
||||
|
||||
boost::shared_ptr<Details> mDetails;
|
||||
std::shared_ptr<Details> mDetails;
|
||||
|
||||
}; // end struct HttpStatus
|
||||
|
||||
/// A namespace for several free methods and low level utilities.
|
||||
namespace LLHttp
|
||||
{
|
||||
typedef boost::shared_ptr<CURL> CURL_ptr;
|
||||
typedef std::shared_ptr<CURL> CURL_ptr;
|
||||
|
||||
void initialize();
|
||||
void cleanup();
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ class HttpResponse;
|
|||
class HttpHandler
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<HttpHandler> ptr_t;
|
||||
typedef boost::weak_ptr<HttpHandler> wptr_t;
|
||||
typedef std::shared_ptr<HttpHandler> ptr_t;
|
||||
typedef std::weak_ptr<HttpHandler> wptr_t;
|
||||
|
||||
virtual ~HttpHandler()
|
||||
{ }
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ public:
|
|||
typedef container_t::const_reverse_iterator const_reverse_iterator;
|
||||
typedef container_t::value_type value_type;
|
||||
typedef container_t::size_type size_type;
|
||||
typedef boost::shared_ptr<HttpHeaders> ptr_t;
|
||||
typedef std::shared_ptr<HttpHeaders> ptr_t;
|
||||
|
||||
public:
|
||||
/// @post In addition to the instance, caller has a refcount
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class HttpOptions : private boost::noncopyable
|
|||
public:
|
||||
HttpOptions();
|
||||
|
||||
typedef boost::shared_ptr<HttpOptions> ptr_t;
|
||||
typedef std::shared_ptr<HttpOptions> ptr_t;
|
||||
|
||||
virtual ~HttpOptions(); // Use release()
|
||||
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@ private:
|
|||
public:
|
||||
typedef unsigned int policy_t;
|
||||
|
||||
typedef boost::shared_ptr<HttpRequest> ptr_t;
|
||||
typedef boost::weak_ptr<HttpRequest> wptr_t;
|
||||
typedef std::shared_ptr<HttpRequest> ptr_t;
|
||||
typedef std::weak_ptr<HttpRequest> wptr_t;
|
||||
public:
|
||||
/// @name PolicyMethods
|
||||
/// @{
|
||||
|
|
@ -627,7 +627,7 @@ public:
|
|||
protected:
|
||||
|
||||
private:
|
||||
typedef boost::shared_ptr<HttpReplyQueue> HttpReplyQueuePtr_t;
|
||||
typedef std::shared_ptr<HttpReplyQueue> HttpReplyQueuePtr_t;
|
||||
|
||||
/// @name InstanceData
|
||||
///
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public:
|
|||
/// Statistics for the HTTP
|
||||
struct TransferStats
|
||||
{
|
||||
typedef boost::shared_ptr<TransferStats> ptr_t;
|
||||
typedef std::shared_ptr<TransferStats> ptr_t;
|
||||
|
||||
TransferStats() : mSizeDownload(0.0), mTotalTime(0.0), mSpeedDownload(0.0) {}
|
||||
F64 mSizeDownload;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "stringize.h"
|
||||
#include "llstring.h"
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/range/begin.hpp>
|
||||
#include <boost/range/end.hpp>
|
||||
#include <boost/assign/list_of.hpp>
|
||||
|
|
@ -691,10 +690,10 @@ void LLDir::walkSearchSkinDirs(const std::string& subdir,
|
|||
const std::string& filename,
|
||||
const FUNCTION& function) const
|
||||
{
|
||||
BOOST_FOREACH(std::string skindir, mSearchSkinDirs)
|
||||
for (const std::string& skindir : mSearchSkinDirs)
|
||||
{
|
||||
std::string subdir_path(add(skindir, subdir));
|
||||
BOOST_FOREACH(std::string subsubdir, subsubdirs)
|
||||
for (const std::string& subsubdir : subsubdirs)
|
||||
{
|
||||
std::string full_path(add(subdir_path, subsubdir, filename));
|
||||
if (fileExists(full_path))
|
||||
|
|
@ -843,7 +842,7 @@ std::vector<std::string> LLDir::findSkinnedFilenames(const std::string& subdir,
|
|||
// current language, copy them -- in proper order -- into results.
|
||||
// Don't drive this by walking the map itself: it matters that we
|
||||
// generate results in the same order as subsubdirs.
|
||||
BOOST_FOREACH(std::string subsubdir, subsubdirs)
|
||||
for (const std::string& subsubdir : subsubdirs)
|
||||
{
|
||||
StringMap::const_iterator found(path_for.find(subsubdir));
|
||||
if (found != path_for.end())
|
||||
|
|
@ -855,7 +854,7 @@ std::vector<std::string> LLDir::findSkinnedFilenames(const std::string& subdir,
|
|||
|
||||
LL_DEBUGS("LLDir") << empty;
|
||||
const char* comma = "";
|
||||
BOOST_FOREACH(std::string path, results)
|
||||
for (const std::string& path : results)
|
||||
{
|
||||
LL_CONT << comma << "'" << path << "'";
|
||||
comma = ", ";
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
|
||||
#include "../test/lltut.h"
|
||||
#include "stringize.h"
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/assign/list_of.hpp>
|
||||
|
||||
using boost::assign::list_of;
|
||||
|
|
@ -109,7 +108,7 @@ struct LLDir_Dummy: public LLDir
|
|||
|
||||
"install/skins/default/future/somefile.txt"
|
||||
};
|
||||
BOOST_FOREACH(const char* path, preload)
|
||||
for (const char* path : preload)
|
||||
{
|
||||
buildFilesystem(path);
|
||||
}
|
||||
|
|
@ -166,7 +165,7 @@ struct LLDir_Dummy: public LLDir
|
|||
LLStringUtil::getTokens(path, components, "/");
|
||||
// Ensure we have an entry representing every level of this path
|
||||
std::string partial;
|
||||
BOOST_FOREACH(std::string component, components)
|
||||
for (std::string component : components)
|
||||
{
|
||||
append(partial, component);
|
||||
mFilesystem.insert(partial);
|
||||
|
|
|
|||
|
|
@ -2254,9 +2254,9 @@ bool LLImageFormatted::save(const std::string &filename)
|
|||
return false;
|
||||
}
|
||||
|
||||
outfile.write(getData(), getDataSize());
|
||||
S32 result = outfile.write(getData(), getDataSize());
|
||||
outfile.close() ;
|
||||
return true;
|
||||
return (result != 0);
|
||||
}
|
||||
|
||||
S8 LLImageFormatted::getCodec() const
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ std::string LLImageJ2C::getEngineInfo()
|
|||
{
|
||||
// All known LLImageJ2CImpl implementation subclasses are cheap to
|
||||
// construct.
|
||||
boost::scoped_ptr<LLImageJ2CImpl> impl(fallbackCreateLLImageJ2CImpl());
|
||||
std::unique_ptr<LLImageJ2CImpl> impl(fallbackCreateLLImageJ2CImpl());
|
||||
return impl->getEngineInfo();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ protected:
|
|||
S8 mRawDiscardLevel;
|
||||
F32 mRate;
|
||||
bool mReversible;
|
||||
boost::scoped_ptr<LLImageJ2CImpl> mImpl;
|
||||
std::unique_ptr<LLImageJ2CImpl> mImpl;
|
||||
std::string mLastError;
|
||||
|
||||
// Image compression/decompression tester
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "llinventorydefines.h"
|
||||
#include "llxorcipher.h"
|
||||
#include "llsd.h"
|
||||
#include "llsdserialize.h"
|
||||
#include "message.h"
|
||||
#include <boost/tokenizer.hpp>
|
||||
|
||||
|
|
@ -217,7 +218,19 @@ BOOL LLInventoryObject::importLegacyStream(std::istream& input_stream)
|
|||
}
|
||||
else if (0 == strcmp("metadata", keyword))
|
||||
{
|
||||
LLSD metadata(valuestr);
|
||||
LLSD metadata;
|
||||
if (strncmp("<llsd>", valuestr, 6) == 0)
|
||||
{
|
||||
std::istringstream stream(valuestr);
|
||||
LLSDSerialize::fromXML(metadata, stream);
|
||||
}
|
||||
else
|
||||
{
|
||||
// next line likely contains metadata, but at the moment is not supported
|
||||
// can do something like:
|
||||
// LLSDSerialize::fromNotation(metadata, input_stream, -1);
|
||||
}
|
||||
|
||||
if (metadata.has("thumbnail"))
|
||||
{
|
||||
const LLSD& thumbnail = metadata["thumbnail"];
|
||||
|
|
@ -693,7 +706,19 @@ BOOL LLInventoryItem::importLegacyStream(std::istream& input_stream)
|
|||
}
|
||||
else if (0 == strcmp("metadata", keyword))
|
||||
{
|
||||
LLSD metadata(valuestr);
|
||||
LLSD metadata;
|
||||
if (strncmp("<llsd>", valuestr, 6) == 0)
|
||||
{
|
||||
std::istringstream stream(valuestr);
|
||||
LLSDSerialize::fromXML(metadata, stream);
|
||||
}
|
||||
else
|
||||
{
|
||||
// next line likely contains metadata, but at the moment is not supported
|
||||
// can do something like:
|
||||
// LLSDSerialize::fromNotation(metadata, input_stream, -1);
|
||||
}
|
||||
|
||||
if (metadata.has("thumbnail"))
|
||||
{
|
||||
const LLSD& thumbnail = metadata["thumbnail"];
|
||||
|
|
@ -802,9 +827,14 @@ BOOL LLInventoryItem::exportLegacyStream(std::ostream& output_stream, BOOL inclu
|
|||
|
||||
if (mThumbnailUUID.notNull())
|
||||
{
|
||||
// Max length is 255 chars, will have to export differently if it gets more data
|
||||
// Ex: use newline and toNotation (uses {}) for unlimited size
|
||||
LLSD metadata;
|
||||
metadata["thumbnail"] = LLSD().with("asset_id", mThumbnailUUID);
|
||||
output_stream << "\t\tmetadata\t" << metadata << "|\n";
|
||||
|
||||
output_stream << "\t\tmetadata\t";
|
||||
LLSDSerialize::toXML(metadata, output_stream);
|
||||
output_stream << "|\n";
|
||||
}
|
||||
|
||||
// Check for permissions to see the asset id, and if so write it
|
||||
|
|
@ -1303,7 +1333,19 @@ BOOL LLInventoryCategory::importLegacyStream(std::istream& input_stream)
|
|||
}
|
||||
else if (0 == strcmp("metadata", keyword))
|
||||
{
|
||||
LLSD metadata(valuestr);
|
||||
LLSD metadata;
|
||||
if (strncmp("<llsd>", valuestr, 6) == 0)
|
||||
{
|
||||
std::istringstream stream(valuestr);
|
||||
LLSDSerialize::fromXML(metadata, stream);
|
||||
}
|
||||
else
|
||||
{
|
||||
// next line likely contains metadata, but at the moment is not supported
|
||||
// can do something like:
|
||||
// LLSDSerialize::fromNotation(metadata, input_stream, -1);
|
||||
}
|
||||
|
||||
if (metadata.has("thumbnail"))
|
||||
{
|
||||
const LLSD& thumbnail = metadata["thumbnail"];
|
||||
|
|
@ -1343,9 +1385,12 @@ BOOL LLInventoryCategory::exportLegacyStream(std::ostream& output_stream, BOOL)
|
|||
output_stream << "\t\tname\t" << mName.c_str() << "|\n";
|
||||
if (mThumbnailUUID.notNull())
|
||||
{
|
||||
// Only up to 255 chars
|
||||
LLSD metadata;
|
||||
metadata["thumbnail"] = LLSD().with("asset_id", mThumbnailUUID);
|
||||
output_stream << "\t\tmetadata\t" << metadata << "|\n";
|
||||
output_stream << "\t\tmetadata\t";
|
||||
LLSDSerialize::toXML(metadata, output_stream);
|
||||
output_stream << "|\n";
|
||||
}
|
||||
output_stream << "\t}\n";
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -113,10 +113,10 @@ private:
|
|||
};
|
||||
|
||||
// Encode variable
|
||||
boost::scoped_ptr<LLKDUMemSource> mInputp;
|
||||
std::unique_ptr<LLKDUMemSource> mInputp;
|
||||
CodeStreamHolder mCodeStreamp;
|
||||
boost::scoped_ptr<kdu_core::kdu_coords> mTPosp; // tile position
|
||||
boost::scoped_ptr<kdu_core::kdu_dims> mTileIndicesp;
|
||||
std::unique_ptr<kdu_core::kdu_coords> mTPosp; // tile position
|
||||
std::unique_ptr<kdu_core::kdu_dims> mTileIndicesp;
|
||||
int mBlocksSize;
|
||||
int mPrecinctsSize;
|
||||
int mLevels;
|
||||
|
|
@ -125,7 +125,7 @@ private:
|
|||
// We don't own this LLImageRaw. We're simply pointing to an instance
|
||||
// passed into initDecode().
|
||||
LLImageRaw *mRawImagep;
|
||||
boost::scoped_ptr<LLKDUDecodeState> mDecodeState;
|
||||
std::unique_ptr<LLKDUDecodeState> mDecodeState;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1000,7 +1000,7 @@ class LLVolume : public LLRefCount
|
|||
friend class LLVolumeLODGroup;
|
||||
|
||||
protected:
|
||||
~LLVolume(); // use unref
|
||||
virtual ~LLVolume(); // use unref
|
||||
|
||||
public:
|
||||
typedef std::vector<LLVolumeFace> face_list_t;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public:
|
|||
private:
|
||||
struct QueuedCoproc
|
||||
{
|
||||
typedef boost::shared_ptr<QueuedCoproc> ptr_t;
|
||||
typedef std::shared_ptr<QueuedCoproc> ptr_t;
|
||||
|
||||
QueuedCoproc(const std::string &name, const LLUUID &id, CoProcedure_t proc) :
|
||||
mName(name),
|
||||
|
|
@ -115,7 +115,7 @@ private:
|
|||
// Use shared_ptr to control the lifespan of our CoprocQueue_t instance
|
||||
// because the consuming coroutine might outlive this LLCoprocedurePool
|
||||
// instance.
|
||||
typedef boost::shared_ptr<CoprocQueue_t> CoprocQueuePtr;
|
||||
typedef std::shared_ptr<CoprocQueue_t> CoprocQueuePtr;
|
||||
|
||||
std::string mPoolName;
|
||||
size_t mPoolSize, mActiveCoprocsCount, mPending;
|
||||
|
|
@ -301,7 +301,7 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):
|
|||
mPoolSize(size),
|
||||
mActiveCoprocsCount(0),
|
||||
mPending(0),
|
||||
mPendingCoprocs(boost::make_shared<CoprocQueue_t>(LLCoprocedureManager::DEFAULT_QUEUE_SIZE)),
|
||||
mPendingCoprocs(std::make_shared<CoprocQueue_t>(LLCoprocedureManager::DEFAULT_QUEUE_SIZE)),
|
||||
mHTTPPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID),
|
||||
mCoroMapping()
|
||||
{
|
||||
|
|
@ -384,7 +384,7 @@ LLUUID LLCoprocedurePool::enqueueCoprocedure(const std::string &name, LLCoproced
|
|||
LL_INFOS("CoProcMgr") << "Coprocedure(" << name << ") enqueuing with id=" << id.asString() << " in pool \"" << mPoolName << "\" at "
|
||||
<< mPending << LL_ENDL;
|
||||
}
|
||||
auto pushed = mPendingCoprocs->try_push(boost::make_shared<QueuedCoproc>(name, id, proc));
|
||||
auto pushed = mPendingCoprocs->try_push(std::make_shared<QueuedCoproc>(name, id, proc));
|
||||
if (pushed == boost::fibers::channel_op_status::success)
|
||||
{
|
||||
++mPending;
|
||||
|
|
|
|||
|
|
@ -263,8 +263,8 @@ class HttpCoroHandler : public LLCore::HttpHandler
|
|||
{
|
||||
public:
|
||||
|
||||
typedef boost::shared_ptr<HttpCoroHandler> ptr_t;
|
||||
typedef boost::weak_ptr<HttpCoroHandler> wptr_t;
|
||||
typedef std::shared_ptr<HttpCoroHandler> ptr_t;
|
||||
typedef std::weak_ptr<HttpCoroHandler> wptr_t;
|
||||
|
||||
HttpCoroHandler(LLEventStream &reply);
|
||||
|
||||
|
|
@ -317,8 +317,8 @@ public:
|
|||
static const std::string HTTP_RESULTS_CONTENT;
|
||||
static const std::string HTTP_RESULTS_RAW;
|
||||
|
||||
typedef boost::shared_ptr<HttpCoroutineAdapter> ptr_t;
|
||||
typedef boost::weak_ptr<HttpCoroutineAdapter> wptr_t;
|
||||
typedef std::shared_ptr<HttpCoroutineAdapter> ptr_t;
|
||||
typedef std::weak_ptr<HttpCoroutineAdapter> wptr_t;
|
||||
|
||||
HttpCoroutineAdapter(const std::string &name, LLCore::HttpRequest::policy_t policyId);
|
||||
~HttpCoroutineAdapter();
|
||||
|
|
|
|||
|
|
@ -298,6 +298,13 @@ BOOL LLDataPackerBinaryBuffer::unpackBinaryData(U8 *value, S32 &size, const char
|
|||
}
|
||||
|
||||
htolememcpy(&size, mCurBufferp, MVT_S32, 4);
|
||||
|
||||
if (size < 0)
|
||||
{
|
||||
LL_WARNS() << "LLDataPackerBinaryBuffer::unpackBinaryData unpacked invalid size, aborting!" << LL_ENDL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
mCurBufferp += 4;
|
||||
|
||||
if (!verifyLength(size, name))
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ private:
|
|||
|
||||
// Callback types for get()
|
||||
typedef boost::signals2::signal < void(const LLSD &) > callback_signal_t;
|
||||
typedef boost::shared_ptr<callback_signal_t> signal_ptr;
|
||||
typedef std::shared_ptr<callback_signal_t> signal_ptr;
|
||||
// May have multiple callbacks for a single ID, which are
|
||||
// represented as multiple slots bound to the signal.
|
||||
// Avoid copying signals via pointers.
|
||||
|
|
|
|||
|
|
@ -982,7 +982,7 @@ LLHTTPNode& LLIOHTTPServer::create(
|
|||
}
|
||||
|
||||
LLHTTPResponseFactory* factory = new LLHTTPResponseFactory;
|
||||
boost::shared_ptr<LLChainIOFactory> factory_ptr(factory);
|
||||
std::shared_ptr<LLChainIOFactory> factory_ptr(factory);
|
||||
|
||||
LLIOServerSocket* server = new LLIOServerSocket(pool, socket, factory_ptr);
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public:
|
|||
/**
|
||||
* @brief Scattered memory container.
|
||||
*/
|
||||
typedef boost::shared_ptr<LLBufferArray> buffer_ptr_t;
|
||||
typedef std::shared_ptr<LLBufferArray> buffer_ptr_t;
|
||||
|
||||
/**
|
||||
* @brief Enumeration for IO return codes
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public:
|
|||
/**
|
||||
* @brief Reference counted shared pointers to sockets.
|
||||
*/
|
||||
typedef boost::shared_ptr<LLSocket> ptr_t;
|
||||
typedef std::shared_ptr<LLSocket> ptr_t;
|
||||
|
||||
/**
|
||||
* @brief Type of socket to create.
|
||||
|
|
@ -305,7 +305,7 @@ class LLIOServerSocket : public LLIOPipe
|
|||
{
|
||||
public:
|
||||
typedef LLSocket::ptr_t socket_t;
|
||||
typedef boost::shared_ptr<LLChainIOFactory> factory_t;
|
||||
typedef std::shared_ptr<LLChainIOFactory> factory_t;
|
||||
LLIOServerSocket(apr_pool_t* pool, socket_t listener, factory_t reactor);
|
||||
virtual ~LLIOServerSocket();
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ class LLService : public LLIOPipe
|
|||
public:
|
||||
//typedef boost::intrusive_ptr<LLServiceCreator> creator_t;
|
||||
//typedef boost::intrusive_ptr<LLService> service_t;
|
||||
typedef boost::shared_ptr<LLChainIOFactory> creator_t;
|
||||
typedef std::shared_ptr<LLChainIOFactory> creator_t;
|
||||
|
||||
/**
|
||||
* @brief This method is used to register a protocol name with a
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ private:
|
|||
std::string mName;
|
||||
};
|
||||
|
||||
typedef boost::shared_ptr<LLStoredMessage> LLStoredMessagePtr;
|
||||
typedef std::shared_ptr<LLStoredMessage> LLStoredMessagePtr;
|
||||
|
||||
|
||||
#endif // LL_STOREDMESSAGE_H
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ void LLCurl::Responder::httpCompleted()
|
|||
}
|
||||
|
||||
void LLCurl::Responder::completedRaw(LLChannelDescriptors const&,
|
||||
boost::shared_ptr<LLBufferArray> const&)
|
||||
std::shared_ptr<LLBufferArray> const&)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ public:
|
|||
// "init_history" message
|
||||
void initializeUrlHistory(const LLSD& url_history);
|
||||
|
||||
boost::shared_ptr<LLPluginClassMedia> getSharedPtr() { return boost::dynamic_pointer_cast<LLPluginClassMedia>(shared_from_this()); } // due to enable_shared_from_this
|
||||
std::shared_ptr<LLPluginClassMedia> getSharedPtr() { return std::dynamic_pointer_cast<LLPluginClassMedia>(shared_from_this()); } // due to enable_shared_from_this
|
||||
|
||||
protected:
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
#include "llsd.h"
|
||||
#include "llevents.h"
|
||||
|
||||
class LLPluginProcessParentOwner : public boost::enable_shared_from_this < LLPluginProcessParentOwner >
|
||||
class LLPluginProcessParentOwner : public std::enable_shared_from_this < LLPluginProcessParentOwner >
|
||||
{
|
||||
public:
|
||||
virtual ~LLPluginProcessParentOwner();
|
||||
|
|
@ -60,7 +60,7 @@ class LLPluginProcessParent : public LLPluginMessagePipeOwner
|
|||
|
||||
LLPluginProcessParent(LLPluginProcessParentOwner *owner);
|
||||
public:
|
||||
typedef boost::shared_ptr<LLPluginProcessParent> ptr_t;
|
||||
typedef std::shared_ptr<LLPluginProcessParent> ptr_t;
|
||||
|
||||
~LLPluginProcessParent();
|
||||
|
||||
|
|
|
|||
|
|
@ -53,8 +53,6 @@
|
|||
#pragma warning (default : 4264)
|
||||
#endif
|
||||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include "lldaeloader.h"
|
||||
#include "llsdserialize.h"
|
||||
#include "lljoint.h"
|
||||
|
|
@ -2385,7 +2383,7 @@ std::string LLDAELoader::getElementLabel(daeElement *element)
|
|||
|
||||
if (ind > 0)
|
||||
{
|
||||
index_string = "_" + boost::lexical_cast<std::string>(ind);
|
||||
index_string = "_" + std::to_string(ind);
|
||||
}
|
||||
|
||||
// if parent has a name or ID, use it
|
||||
|
|
|
|||
|
|
@ -48,8 +48,6 @@
|
|||
|
||||
// TODO: includes inherited from dae loader. Validate / prune
|
||||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
#include "llsdserialize.h"
|
||||
#include "lljoint.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ LLModel::~LLModel()
|
|||
{
|
||||
LLConvexDecomposition::getInstance()->deleteDecomposition(mDecompID);
|
||||
}
|
||||
mPhysics.mMesh.clear();
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@ public:
|
|||
std::vector<LLVector3> mPositions;
|
||||
std::vector<LLVector3> mNormals;
|
||||
|
||||
~PhysicsMesh() {}
|
||||
|
||||
void clear()
|
||||
{
|
||||
mPositions.clear();
|
||||
|
|
@ -131,6 +133,7 @@ public:
|
|||
public:
|
||||
Decomposition() { }
|
||||
Decomposition(LLSD& data);
|
||||
~Decomposition() { }
|
||||
void fromLLSD(LLSD& data);
|
||||
LLSD asLLSD() const;
|
||||
bool hasHullList() const;
|
||||
|
|
@ -365,7 +368,7 @@ class LLModelInstanceBase
|
|||
{
|
||||
public:
|
||||
LLPointer<LLModel> mModel;
|
||||
LLPointer<LLModel> mLOD[5];
|
||||
LLPointer<LLModel> mLOD[LLModel::NUM_LODS];
|
||||
LLUUID mMeshID;
|
||||
|
||||
LLMatrix4 mTransform;
|
||||
|
|
@ -380,6 +383,15 @@ public:
|
|||
: mModel(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~LLModelInstanceBase()
|
||||
{
|
||||
mModel = NULL;
|
||||
for (int j = 0; j < LLModel::NUM_LODS; ++j)
|
||||
{
|
||||
mLOD[j] = NULL;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
typedef std::vector<LLModelInstanceBase> model_instance_list;
|
||||
|
|
@ -399,6 +411,8 @@ public:
|
|||
|
||||
LLModelInstance(LLSD& data);
|
||||
|
||||
~LLModelInstance() {}
|
||||
|
||||
LLSD asLLSD();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ namespace tut
|
|||
|
||||
void whitelist_test(int num, bool enable, const char *whitelist, const char *candidate_url, bool expected_pass)
|
||||
{
|
||||
std::string message = "Whitelist test " + boost::lexical_cast<std::string>(num);
|
||||
std::string message = "Whitelist test " + std::to_string(num);
|
||||
LLMediaEntry entry;
|
||||
entry.setWhiteListEnable(enable);
|
||||
set_whitelist(entry, whitelist);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
#include "llerror.h"
|
||||
#include "llxuiparser.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
|
||||
//
|
||||
// LLCommandId class
|
||||
|
|
@ -182,7 +180,7 @@ bool LLCommandManager::load()
|
|||
return false;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(LLCommand::Params& commandParams, commandsParams.commands)
|
||||
for (const LLCommand::Params& commandParams : commandsParams.commands)
|
||||
{
|
||||
LLCommand * command = new LLCommand(commandParams);
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ class LLFilterEditor : public LLSearchEditor
|
|||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLSearchEditor::Params>
|
||||
{};
|
||||
virtual ~LLFilterEditor() {}
|
||||
|
||||
protected:
|
||||
LLFilterEditor(const Params&);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@
|
|||
#include "llmultifloater.h"
|
||||
#include "llsdutil.h"
|
||||
#include "lluiusage.h"
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
|
||||
// use this to control "jumping" behavior when Ctrl-Tabbing
|
||||
|
|
@ -1849,6 +1848,8 @@ void LLFloater::onClickTearOff(LLFloater* self)
|
|||
{
|
||||
if (self->mSaveRect)
|
||||
{
|
||||
LLRect screen_rect = self->calcScreenRect();
|
||||
self->mPosition = LLCoordGL(screen_rect.getCenterX(), screen_rect.getCenterY()).convert();
|
||||
self->storeRectControl();
|
||||
}
|
||||
self->setMinimized(FALSE); // to reenable minimize button if it was minimized
|
||||
|
|
@ -2460,7 +2461,7 @@ void LLFloaterView::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
//{
|
||||
// floaterp->translate(translate_x, translate_y);
|
||||
//}
|
||||
BOOST_FOREACH(LLHandle<LLFloater> dependent_floater, floaterp->mDependents)
|
||||
for (LLHandle<LLFloater> dependent_floater : floaterp->mDependents)
|
||||
{
|
||||
if (dependent_floater.get())
|
||||
{
|
||||
|
|
@ -2475,10 +2476,9 @@ void LLFloaterView::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
void LLFloaterView::restoreAll()
|
||||
{
|
||||
// make sure all subwindows aren't minimized
|
||||
child_list_t child_list = *(getChildList());
|
||||
for (child_list_const_iter_t child_it = child_list.begin(); child_it != child_list.end(); ++child_it)
|
||||
for (auto child : *getChildList())
|
||||
{
|
||||
LLFloater* floaterp = dynamic_cast<LLFloater*>(*child_it);
|
||||
LLFloater* floaterp = dynamic_cast<LLFloater*>(child);
|
||||
if (floaterp)
|
||||
{
|
||||
floaterp->setMinimized(FALSE);
|
||||
|
|
|
|||
|
|
@ -395,8 +395,7 @@ void LLLayoutStack::updateLayout()
|
|||
: getRect().getHeight();
|
||||
|
||||
// first, assign minimum dimensions
|
||||
LLLayoutPanel* panelp = NULL;
|
||||
BOOST_FOREACH(panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -409,12 +408,15 @@ void LLLayoutStack::updateLayout()
|
|||
llassert(total_visible_fraction < 1.05f);
|
||||
|
||||
// don't need spacing after last panel
|
||||
space_to_distribute += panelp ? ll_round((F32)mPanelSpacing * panelp->getVisibleAmount()) : 0;
|
||||
if (!mPanels.empty())
|
||||
{
|
||||
space_to_distribute += ll_round(F32(mPanelSpacing) * mPanels.back()->getVisibleAmount());
|
||||
}
|
||||
|
||||
S32 remaining_space = space_to_distribute;
|
||||
if (space_to_distribute > 0 && total_visible_fraction > 0.f)
|
||||
{ // give space proportionally to visible auto resize panels
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -427,7 +429,7 @@ void LLLayoutStack::updateLayout()
|
|||
}
|
||||
|
||||
// distribute any left over pixels to non-collapsed, visible panels
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (remaining_space == 0) break;
|
||||
|
||||
|
|
@ -443,7 +445,7 @@ void LLLayoutStack::updateLayout()
|
|||
|
||||
F32 cur_pos = (mOrientation == HORIZONTAL) ? 0.f : (F32)getRect().getHeight();
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
F32 panel_dim = llmax(panelp->getExpandedMinDim(), panelp->mTargetDim);
|
||||
|
||||
|
|
@ -538,7 +540,7 @@ LLLayoutPanel* LLLayoutStack::findEmbeddedPanel(LLPanel* panelp) const
|
|||
{
|
||||
if (!panelp) return NULL;
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* p, mPanels)
|
||||
for (LLLayoutPanel* p : mPanels)
|
||||
{
|
||||
if (p == panelp)
|
||||
{
|
||||
|
|
@ -552,7 +554,7 @@ LLLayoutPanel* LLLayoutStack::findEmbeddedPanelByName(const std::string& name) c
|
|||
{
|
||||
LLLayoutPanel* result = NULL;
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* p, mPanels)
|
||||
for (LLLayoutPanel* p : mPanels)
|
||||
{
|
||||
if (p->getName() == name)
|
||||
{
|
||||
|
|
@ -566,7 +568,7 @@ LLLayoutPanel* LLLayoutStack::findEmbeddedPanelByName(const std::string& name) c
|
|||
|
||||
void LLLayoutStack::createResizeBar(LLLayoutPanel* panelp)
|
||||
{
|
||||
BOOST_FOREACH(LLLayoutPanel* lp, mPanels)
|
||||
for (LLLayoutPanel* lp : mPanels)
|
||||
{
|
||||
if (lp->mResizeBar == NULL)
|
||||
{
|
||||
|
|
@ -669,7 +671,7 @@ void LLLayoutStack::updateFractionalSizes()
|
|||
{
|
||||
F32 total_resizable_dim = 0.f;
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -677,7 +679,7 @@ void LLLayoutStack::updateFractionalSizes()
|
|||
}
|
||||
}
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -698,7 +700,7 @@ void LLLayoutStack::normalizeFractionalSizes()
|
|||
S32 num_auto_resize_panels = 0;
|
||||
F32 total_fractional_size = 0.f;
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -709,7 +711,7 @@ void LLLayoutStack::normalizeFractionalSizes()
|
|||
|
||||
if (total_fractional_size == 0.f)
|
||||
{ // equal distribution
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -719,7 +721,7 @@ void LLLayoutStack::normalizeFractionalSizes()
|
|||
}
|
||||
else
|
||||
{ // renormalize
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -736,7 +738,7 @@ bool LLLayoutStack::animatePanels()
|
|||
//
|
||||
// animate visibility
|
||||
//
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (panelp->getVisible())
|
||||
{
|
||||
|
|
@ -834,7 +836,7 @@ void LLLayoutStack::updatePanelRect( LLLayoutPanel* resized_panel, const LLRect&
|
|||
LLLayoutPanel* other_resize_panel = NULL;
|
||||
LLLayoutPanel* following_panel = NULL;
|
||||
|
||||
BOOST_REVERSE_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
BOOST_REVERSE_FOREACH(LLLayoutPanel* panelp, mPanels) // Should replace this when C++20 reverse view adaptor becomes available...
|
||||
{
|
||||
if (panelp->mAutoResize)
|
||||
{
|
||||
|
|
@ -883,7 +885,7 @@ void LLLayoutStack::updatePanelRect( LLLayoutPanel* resized_panel, const LLRect&
|
|||
AFTER_RESIZED_PANEL
|
||||
} which_panel = BEFORE_RESIZED_PANEL;
|
||||
|
||||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
for (LLLayoutPanel* panelp : mPanels)
|
||||
{
|
||||
if (!panelp->getVisible() || panelp->mCollapsed)
|
||||
{
|
||||
|
|
@ -974,6 +976,7 @@ void LLLayoutStack::updatePanelRect( LLLayoutPanel* resized_panel, const LLRect&
|
|||
MIN_FRACTIONAL_SIZE,
|
||||
MAX_FRACTIONAL_SIZE);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -990,8 +993,8 @@ void LLLayoutStack::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
|
||||
void LLLayoutStack::updateResizeBarLimits()
|
||||
{
|
||||
LLLayoutPanel* previous_visible_panelp = NULL;
|
||||
BOOST_REVERSE_FOREACH(LLLayoutPanel* visible_panelp, mPanels)
|
||||
LLLayoutPanel* previous_visible_panelp{ nullptr };
|
||||
BOOST_REVERSE_FOREACH(LLLayoutPanel* visible_panelp, mPanels) // Should replace this when C++20 reverse view adaptor becomes available...
|
||||
{
|
||||
if (!visible_panelp->getVisible() || visible_panelp->mCollapsed)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
// Project includes
|
||||
#include "lluictrlfactory.h"
|
||||
#include "lluiimage.h"
|
||||
#include "boost/foreach.hpp"
|
||||
|
||||
// registered in llui.cpp to avoid being left out by MS linker
|
||||
//static LLDefaultChildRegistry::Register<LLLoadingIndicator> r("loading_indicator");
|
||||
|
|
@ -52,7 +51,7 @@ LLLoadingIndicator::LLLoadingIndicator(const Params& p)
|
|||
|
||||
void LLLoadingIndicator::initFromParams(const Params& p)
|
||||
{
|
||||
BOOST_FOREACH(LLUIImage* image, p.images().image)
|
||||
for (LLUIImage* image : p.images().image)
|
||||
{
|
||||
mImages.push_back(image);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@
|
|||
#include "v2math.h"
|
||||
#include <set>
|
||||
#include <boost/tokenizer.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
// static
|
||||
LLMenuHolderGL *LLMenuGL::sMenuContainer = NULL;
|
||||
|
|
@ -2162,7 +2161,7 @@ void LLMenuGL::arrange( void )
|
|||
}
|
||||
else
|
||||
{
|
||||
BOOST_FOREACH(LLMenuItemGL* itemp, mItems)
|
||||
for (LLMenuItemGL* itemp : mItems)
|
||||
{
|
||||
// do first so LLMenuGLItemCall can call on_visible to determine if visible
|
||||
itemp->buildDrawLabel();
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
|
||||
#include <algorithm>
|
||||
#include <boost/regex.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
|
||||
const std::string NOTIFICATION_PERSIST_VERSION = "0.93";
|
||||
|
|
@ -445,14 +444,14 @@ LLNotificationTemplate::LLNotificationTemplate(const LLNotificationTemplate::Par
|
|||
mSoundName = p.sound;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const LLNotificationTemplate::UniquenessContext& context, p.unique.contexts)
|
||||
for (const LLNotificationTemplate::UniquenessContext& context : p.unique.contexts)
|
||||
{
|
||||
mUniqueContext.push_back(context.value);
|
||||
}
|
||||
|
||||
LL_DEBUGS("Notifications") << "notification \"" << mName << "\": tag count is " << p.tags.size() << LL_ENDL;
|
||||
|
||||
BOOST_FOREACH(const LLNotificationTemplate::Tag& tag, p.tags)
|
||||
for (const LLNotificationTemplate::Tag& tag : p.tags)
|
||||
{
|
||||
LL_DEBUGS("Notifications") << " tag \"" << std::string(tag.value) << "\"" << LL_ENDL;
|
||||
mTags.push_back(tag.value);
|
||||
|
|
@ -995,6 +994,7 @@ LLBoundListener LLNotificationChannelBase::connectChangedImpl(const LLEventListe
|
|||
// all of the notifications that are already in the channel
|
||||
// we use a special signal called "load" in case the channel wants to care
|
||||
// only about new notifications
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
for (LLNotificationSet::iterator it = mItems.begin(); it != mItems.end(); ++it)
|
||||
{
|
||||
slot(LLSD().with("sigtype", "load").with("id", (*it)->id()));
|
||||
|
|
@ -1154,7 +1154,7 @@ LLNotificationChannel::LLNotificationChannel(const Params& p)
|
|||
LLInstanceTracker<LLNotificationChannel, std::string>(p.name.isProvided() ? p.name : LLUUID::generateNewID().asString()),
|
||||
mName(p.name.isProvided() ? p.name : LLUUID::generateNewID().asString())
|
||||
{
|
||||
BOOST_FOREACH(const std::string& source, p.sources)
|
||||
for (const std::string& source : p.sources)
|
||||
{
|
||||
connectToChannel(source);
|
||||
}
|
||||
|
|
@ -1172,6 +1172,14 @@ LLNotificationChannel::LLNotificationChannel(const std::string& name,
|
|||
connectToChannel(parent);
|
||||
}
|
||||
|
||||
LLNotificationChannel::~LLNotificationChannel()
|
||||
{
|
||||
for (LLBoundListener &listener : mListeners)
|
||||
{
|
||||
listener.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
bool LLNotificationChannel::isEmpty() const
|
||||
{
|
||||
return mItems.empty();
|
||||
|
|
@ -1179,17 +1187,7 @@ bool LLNotificationChannel::isEmpty() const
|
|||
|
||||
S32 LLNotificationChannel::size() const
|
||||
{
|
||||
return mItems.size();
|
||||
}
|
||||
|
||||
LLNotificationChannel::Iterator LLNotificationChannel::begin()
|
||||
{
|
||||
return mItems.begin();
|
||||
}
|
||||
|
||||
LLNotificationChannel::Iterator LLNotificationChannel::end()
|
||||
{
|
||||
return mItems.end();
|
||||
return mItems.size();
|
||||
}
|
||||
|
||||
size_t LLNotificationChannel::size()
|
||||
|
|
@ -1197,12 +1195,19 @@ size_t LLNotificationChannel::size()
|
|||
return mItems.size();
|
||||
}
|
||||
|
||||
void LLNotificationChannel::forEachNotification(NotificationProcess process)
|
||||
{
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
std::for_each(mItems.begin(), mItems.end(), process);
|
||||
}
|
||||
|
||||
std::string LLNotificationChannel::summarize()
|
||||
{
|
||||
std::string s("Channel '");
|
||||
s += mName;
|
||||
s += "'\n ";
|
||||
for (LLNotificationChannel::Iterator it = begin(); it != end(); ++it)
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
for (LLNotificationChannel::Iterator it = mItems.begin(); it != mItems.end(); ++it)
|
||||
{
|
||||
s += (*it)->summarize();
|
||||
s += "\n ";
|
||||
|
|
@ -1214,14 +1219,14 @@ void LLNotificationChannel::connectToChannel( const std::string& channel_name )
|
|||
{
|
||||
if (channel_name.empty())
|
||||
{
|
||||
LLNotifications::instance().connectChanged(
|
||||
boost::bind(&LLNotificationChannelBase::updateItem, this, _1));
|
||||
mListeners.push_back(LLNotifications::instance().connectChanged(
|
||||
boost::bind(&LLNotificationChannelBase::updateItem, this, _1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
mParents.push_back(channel_name);
|
||||
LLNotificationChannelPtr p = LLNotifications::instance().getChannel(channel_name);
|
||||
p->connectChanged(boost::bind(&LLNotificationChannelBase::updateItem, this, _1));
|
||||
mListeners.push_back(p->connectChanged(boost::bind(&LLNotificationChannelBase::updateItem, this, _1)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1522,7 +1527,7 @@ void replaceFormText(LLNotificationForm::Params& form, const std::string& patter
|
|||
form.ignore.text = replace;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(LLNotificationForm::FormElement& element, form.form_elements.elements)
|
||||
for (LLNotificationForm::FormElement& element : form.form_elements.elements)
|
||||
{
|
||||
if (element.button.isChosen() && element.button.text() == pattern)
|
||||
{
|
||||
|
|
@ -1577,19 +1582,19 @@ bool LLNotifications::loadTemplates()
|
|||
|
||||
mTemplates.clear();
|
||||
|
||||
BOOST_FOREACH(LLNotificationTemplate::GlobalString& string, params.strings)
|
||||
for (const LLNotificationTemplate::GlobalString& string : params.strings)
|
||||
{
|
||||
mGlobalStrings[string.name] = string.value;
|
||||
}
|
||||
|
||||
std::map<std::string, LLNotificationForm::Params> form_templates;
|
||||
|
||||
BOOST_FOREACH(LLNotificationTemplate::Template& notification_template, params.templates)
|
||||
for (const LLNotificationTemplate::Template& notification_template : params.templates)
|
||||
{
|
||||
form_templates[notification_template.name] = notification_template.form;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(LLNotificationTemplate::Params& notification, params.notifications)
|
||||
for (LLNotificationTemplate::Params& notification : params.notifications)
|
||||
{
|
||||
if (notification.form_ref.form_template.isChosen())
|
||||
{
|
||||
|
|
@ -1644,7 +1649,7 @@ bool LLNotifications::loadVisibilityRules()
|
|||
|
||||
mVisibilityRules.clear();
|
||||
|
||||
BOOST_FOREACH(LLNotificationVisibilityRule::Rule& rule, params.rules)
|
||||
for (const LLNotificationVisibilityRule::Rule& rule : params.rules)
|
||||
{
|
||||
mVisibilityRules.push_back(LLNotificationVisibilityRulePtr(new LLNotificationVisibilityRule(rule)));
|
||||
}
|
||||
|
|
@ -1737,6 +1742,7 @@ void LLNotifications::cancel(LLNotificationPtr pNotif)
|
|||
|
||||
void LLNotifications::cancelByName(const std::string& name)
|
||||
{
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
std::vector<LLNotificationPtr> notifs_to_cancel;
|
||||
for (LLNotificationSet::iterator it=mItems.begin(), end_it = mItems.end();
|
||||
it != end_it;
|
||||
|
|
@ -1761,6 +1767,7 @@ void LLNotifications::cancelByName(const std::string& name)
|
|||
|
||||
void LLNotifications::cancelByOwner(const LLUUID ownerId)
|
||||
{
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
std::vector<LLNotificationPtr> notifs_to_cancel;
|
||||
for (LLNotificationSet::iterator it = mItems.begin(), end_it = mItems.end();
|
||||
it != end_it;
|
||||
|
|
@ -1808,11 +1815,6 @@ LLNotificationPtr LLNotifications::find(LLUUID uuid)
|
|||
}
|
||||
}
|
||||
|
||||
void LLNotifications::forEachNotification(NotificationProcess process)
|
||||
{
|
||||
std::for_each(mItems.begin(), mItems.end(), process);
|
||||
}
|
||||
|
||||
std::string LLNotifications::getGlobalString(const std::string& key) const
|
||||
{
|
||||
GlobalStringMap::const_iterator it = mGlobalStrings.find(key);
|
||||
|
|
|
|||
|
|
@ -739,16 +739,19 @@ class LLNotificationChannelBase :
|
|||
{
|
||||
LOG_CLASS(LLNotificationChannelBase);
|
||||
public:
|
||||
LLNotificationChannelBase(LLNotificationFilter filter)
|
||||
: mFilter(filter),
|
||||
mItems()
|
||||
{}
|
||||
LLNotificationChannelBase(LLNotificationFilter filter)
|
||||
: mFilter(filter)
|
||||
, mItems()
|
||||
, mItemsMutex()
|
||||
{}
|
||||
|
||||
virtual ~LLNotificationChannelBase()
|
||||
{
|
||||
// explicit cleanup for easier issue detection
|
||||
mChanged.disconnect_all_slots();
|
||||
mPassedFilter.disconnect_all_slots();
|
||||
mFailedFilter.disconnect_all_slots();
|
||||
LLMutexLock lock(&mItemsMutex);
|
||||
mItems.clear();
|
||||
}
|
||||
// you can also connect to a Channel, so you can be notified of
|
||||
|
|
@ -787,6 +790,7 @@ protected:
|
|||
LLStandardSignal mChanged;
|
||||
LLStandardSignal mPassedFilter;
|
||||
LLStandardSignal mFailedFilter;
|
||||
LLMutex mItemsMutex;
|
||||
|
||||
// these are action methods that subclasses can override to take action
|
||||
// on specific types of changes; the management of the mItems list is
|
||||
|
|
@ -836,7 +840,7 @@ public:
|
|||
LLNotificationChannel(const Params& p = Params());
|
||||
LLNotificationChannel(const std::string& name, const std::string& parent, LLNotificationFilter filter);
|
||||
|
||||
virtual ~LLNotificationChannel() {}
|
||||
virtual ~LLNotificationChannel();
|
||||
typedef LLNotificationSet::iterator Iterator;
|
||||
|
||||
std::string getName() const { return mName; }
|
||||
|
|
@ -845,21 +849,23 @@ public:
|
|||
{
|
||||
return boost::iterator_range<parents_iter>(mParents);
|
||||
}
|
||||
|
||||
void connectToChannel(const std::string& channel_name);
|
||||
|
||||
|
||||
bool isEmpty() const;
|
||||
S32 size() const;
|
||||
|
||||
Iterator begin();
|
||||
Iterator end();
|
||||
size_t size();
|
||||
|
||||
size_t size();
|
||||
|
||||
typedef boost::function<void(LLNotificationPtr)> NotificationProcess;
|
||||
void forEachNotification(NotificationProcess process);
|
||||
|
||||
std::string summarize();
|
||||
|
||||
protected:
|
||||
void connectToChannel(const std::string& channel_name);
|
||||
|
||||
private:
|
||||
std::string mName;
|
||||
std::vector<std::string> mParents;
|
||||
std::vector<LLBoundListener> mListeners;
|
||||
};
|
||||
|
||||
// An interface class to provide a clean linker seam to the LLNotifications class.
|
||||
|
|
@ -925,10 +931,6 @@ public:
|
|||
void update(const LLNotificationPtr pNotif);
|
||||
|
||||
LLNotificationPtr find(LLUUID uuid);
|
||||
|
||||
typedef boost::function<void (LLNotificationPtr)> NotificationProcess;
|
||||
|
||||
void forEachNotification(NotificationProcess process);
|
||||
|
||||
// This is all stuff for managing the templates
|
||||
// take your template out
|
||||
|
|
@ -991,7 +993,7 @@ private:
|
|||
|
||||
bool mIgnoreAllNotifications;
|
||||
|
||||
boost::scoped_ptr<LLNotificationsListener> mListener;
|
||||
std::unique_ptr<LLNotificationsListener> mListener;
|
||||
|
||||
std::vector<LLNotificationChannelPtr> mDefaultChannels;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "llnotificationtemplate.h"
|
||||
#include "llsd.h"
|
||||
#include "llui.h"
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
LLNotificationsListener::LLNotificationsListener(LLNotifications & notifications) :
|
||||
LLEventAPI("LLNotifications",
|
||||
|
|
@ -149,11 +148,11 @@ void LLNotificationsListener::listChannelNotifications(const LLSD& params) const
|
|||
if (channel)
|
||||
{
|
||||
LLSD notifications(LLSD::emptyArray());
|
||||
for (LLNotificationChannel::Iterator ni(channel->begin()), nend(channel->end());
|
||||
ni != nend; ++ni)
|
||||
{
|
||||
notifications.append(asLLSD(*ni));
|
||||
}
|
||||
std::function<void(LLNotificationPtr)> func = [notifications](LLNotificationPtr ni) mutable
|
||||
{
|
||||
notifications.append(asLLSD(ni));
|
||||
};
|
||||
channel->forEachNotification(func);
|
||||
response["notifications"] = notifications;
|
||||
}
|
||||
LLEventPumps::instance().obtain(params["reply"]).post(response);
|
||||
|
|
|
|||
|
|
@ -104,6 +104,14 @@ LLSearchEditor::LLSearchEditor(const LLSearchEditor::Params& p)
|
|||
}
|
||||
}
|
||||
|
||||
LLSearchEditor::~LLSearchEditor()
|
||||
{
|
||||
mSearchButton = NULL;
|
||||
mClearButton = NULL;
|
||||
mSearchEditor->deleteAllChildren();
|
||||
deleteAllChildren();
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLSearchEditor::draw()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ protected:
|
|||
friend class LLUICtrlFactory;
|
||||
|
||||
public:
|
||||
virtual ~LLSearchEditor() {}
|
||||
virtual ~LLSearchEditor();
|
||||
|
||||
/*virtual*/ void draw();
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
#include "lltoolbar.h"
|
||||
|
||||
#include "llcommandmanager.h"
|
||||
|
|
@ -219,7 +218,7 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p)
|
|||
|
||||
mCenteringStack->addChild(LLUICtrlFactory::create<LLLayoutPanel>(border_panel_p));
|
||||
|
||||
BOOST_FOREACH(LLCommandId id, p.commands)
|
||||
for (const auto& id : p.commands)
|
||||
{
|
||||
addCommand(id);
|
||||
}
|
||||
|
|
@ -417,7 +416,7 @@ BOOL LLToolBar::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
|||
// Determine which button the mouse was over during the click in case the context menu action
|
||||
// is intended to affect the button.
|
||||
mRightMouseTargetButton = NULL;
|
||||
BOOST_FOREACH(LLToolBarButton* button, mButtons)
|
||||
for (LLToolBarButton* button : mButtons)
|
||||
{
|
||||
LLRect button_rect;
|
||||
button->localRectToOtherView(button->getLocalRect(), &button_rect, this);
|
||||
|
|
@ -505,7 +504,7 @@ void LLToolBar::setButtonType(LLToolBarEnums::ButtonType button_type)
|
|||
void LLToolBar::resizeButtonsInRow(std::vector<LLToolBarButton*>& buttons_in_row, S32 max_row_girth)
|
||||
{
|
||||
// make buttons in current row all same girth
|
||||
BOOST_FOREACH(LLToolBarButton* button, buttons_in_row)
|
||||
for (LLToolBarButton* button : buttons_in_row)
|
||||
{
|
||||
if (getOrientation(mSideType) == LLLayoutStack::HORIZONTAL)
|
||||
{
|
||||
|
|
@ -693,7 +692,7 @@ void LLToolBar::updateLayoutAsNeeded()
|
|||
|
||||
std::vector<LLToolBarButton*> buttons_in_row;
|
||||
|
||||
BOOST_FOREACH(LLToolBarButton* button, mButtons)
|
||||
for (LLToolBarButton* button : mButtons)
|
||||
{
|
||||
button->reshape(button->mWidthRange.getMin(), button->mDesiredHeight);
|
||||
button->autoResize();
|
||||
|
|
@ -878,7 +877,7 @@ void LLToolBar::createButtons()
|
|||
{
|
||||
std::set<LLUUID> set_flashing;
|
||||
|
||||
BOOST_FOREACH(LLToolBarButton* button, mButtons)
|
||||
for (LLToolBarButton* button : mButtons)
|
||||
{
|
||||
if (button->getFlashTimer() && button->getFlashTimer()->isFlashingInProgress())
|
||||
{
|
||||
|
|
@ -896,7 +895,7 @@ void LLToolBar::createButtons()
|
|||
mButtonMap.clear();
|
||||
mRightMouseTargetButton = NULL;
|
||||
|
||||
BOOST_FOREACH(LLCommandId& command_id, mButtonCommands)
|
||||
for (const LLCommandId& command_id : mButtonCommands)
|
||||
{
|
||||
LLToolBarButton* button = createButton(command_id);
|
||||
mButtons.push_back(button);
|
||||
|
|
|
|||
|
|
@ -444,7 +444,13 @@ void LLToolTipMgr::createToolTip(const LLToolTip::Params& params)
|
|||
tooltip_params.rect = LLRect (0, 1, 1, 0);
|
||||
|
||||
if (tooltip_params.create_callback.isProvided())
|
||||
mToolTip = tooltip_params.create_callback()(tooltip_params);
|
||||
{
|
||||
mToolTip = tooltip_params.create_callback()(tooltip_params);
|
||||
if (mToolTip == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
mToolTip = LLUICtrlFactory::create<LLToolTip> (tooltip_params);
|
||||
|
||||
|
|
@ -496,7 +502,7 @@ void LLToolTipMgr::show(const LLToolTip::Params& params)
|
|||
{
|
||||
if (!params.styled_message.isProvided()
|
||||
&& (!params.message.isProvided() || params.message().empty())
|
||||
&& !params.image.isProvided()) return;
|
||||
&& !params.image.isProvided() && !params.create_callback.isProvided()) return;
|
||||
|
||||
// fill in default tooltip params from tool_tip.xml
|
||||
LLToolTip::Params params_with_defaults(params);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "llui.h"
|
||||
#include "lluicolortable.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
LLUIColorTable::ColorParams::ColorParams()
|
||||
: value("value"),
|
||||
|
|
@ -208,7 +207,7 @@ bool LLUIColorTable::loadFromSettings()
|
|||
|
||||
// pass constraint=LLDir::ALL_SKINS because we want colors.xml from every
|
||||
// skin dir
|
||||
BOOST_FOREACH(std::string colors_path,
|
||||
for (const std::string& colors_path :
|
||||
gDirUtilp->findSkinnedFilenames(LLDir::SKINBASE, "colors.xml", LLDir::ALL_SKINS))
|
||||
{
|
||||
result |= loadFromFilename(colors_path, mLoadedColors);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
|
||||
#include <sstream>
|
||||
#include <boost/tokenizer.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
|
||||
#include "llrender.h"
|
||||
|
|
@ -61,6 +60,7 @@ static const S32 LINE_HEIGHT = 15;
|
|||
S32 LLView::sDepth = 0;
|
||||
bool LLView::sDebugRects = false;
|
||||
bool LLView::sDebugUnicode = false;
|
||||
bool LLView::sDebugCamera = false;
|
||||
bool LLView::sIsRectDirty = false;
|
||||
LLRect LLView::sDirtyRect;
|
||||
bool LLView::sDebugRectsShowNames = true;
|
||||
|
|
@ -593,7 +593,7 @@ void LLView::deleteAllChildren()
|
|||
|
||||
void LLView::setAllChildrenEnabled(BOOL b)
|
||||
{
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
viewp->setEnabled(b);
|
||||
}
|
||||
|
|
@ -622,7 +622,7 @@ void LLView::onVisibilityChange ( BOOL new_visibility )
|
|||
{
|
||||
BOOL old_visibility;
|
||||
BOOL log_visibility_change = LLViewerEventRecorder::instance().getLoggingStatus();
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
if (!viewp)
|
||||
{
|
||||
|
|
@ -726,7 +726,7 @@ LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& m
|
|||
{
|
||||
if ( getVisible() && getEnabled() )
|
||||
{
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
if ((viewp->*method)(c, mask, TRUE))
|
||||
{
|
||||
|
|
@ -745,7 +745,7 @@ LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& m
|
|||
template <typename METHOD, typename XDATA>
|
||||
LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra, bool allow_mouse_block)
|
||||
{
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
S32 local_x = x - viewp->getRect().mLeft;
|
||||
S32 local_y = y - viewp->getRect().mBottom;
|
||||
|
|
@ -774,7 +774,7 @@ LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDA
|
|||
|
||||
LLView* LLView::childrenHandleToolTip(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
S32 local_x = x - viewp->getRect().mLeft;
|
||||
S32 local_y = y - viewp->getRect().mBottom;
|
||||
|
|
@ -806,7 +806,7 @@ LLView* LLView::childrenHandleDragAndDrop(S32 x, S32 y, MASK mask,
|
|||
// default to not accepting drag and drop, will be overridden by handler
|
||||
*accept = ACCEPT_NO;
|
||||
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
S32 local_x = x - viewp->getRect().mLeft;
|
||||
S32 local_y = y - viewp->getRect().mBottom;
|
||||
|
|
@ -832,7 +832,7 @@ LLView* LLView::childrenHandleDragAndDrop(S32 x, S32 y, MASK mask,
|
|||
|
||||
LLView* LLView::childrenHandleHover(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
S32 local_x = x - viewp->getRect().mLeft;
|
||||
S32 local_y = y - viewp->getRect().mBottom;
|
||||
|
|
@ -860,7 +860,7 @@ LLView* LLView::childFromPoint(S32 x, S32 y, bool recur)
|
|||
if (!getVisible())
|
||||
return NULL;
|
||||
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
S32 local_x = x - viewp->getRect().mLeft;
|
||||
S32 local_y = y - viewp->getRect().mBottom;
|
||||
|
|
@ -1407,7 +1407,7 @@ void LLView::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
mRect.mTop = getRect().mBottom + height;
|
||||
|
||||
// move child views according to reshape flags
|
||||
BOOST_FOREACH(LLView* viewp, mChildList)
|
||||
for (LLView* viewp : mChildList)
|
||||
{
|
||||
if (viewp != NULL)
|
||||
{
|
||||
|
|
@ -1479,7 +1479,7 @@ LLRect LLView::calcBoundingRect()
|
|||
{
|
||||
LLRect local_bounding_rect = LLRect::null;
|
||||
|
||||
BOOST_FOREACH(LLView* childp, mChildList)
|
||||
for (LLView* childp : mChildList)
|
||||
{
|
||||
// ignore invisible and "top" children when calculating bounding rect
|
||||
// such as combobox popups
|
||||
|
|
@ -1642,7 +1642,7 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const
|
|||
LL_PROFILE_ZONE_SCOPED_CATEGORY_UI;
|
||||
|
||||
// Look for direct children *first*
|
||||
BOOST_FOREACH(LLView* childp, mChildList)
|
||||
for (LLView* childp : mChildList)
|
||||
{
|
||||
llassert(childp);
|
||||
if (childp->getName() == name)
|
||||
|
|
@ -1653,7 +1653,7 @@ LLView* LLView::findChildView(const std::string& name, BOOL recurse) const
|
|||
if (recurse)
|
||||
{
|
||||
// Look inside each child as well.
|
||||
BOOST_FOREACH(LLView* childp, mChildList)
|
||||
for (LLView* childp : mChildList)
|
||||
{
|
||||
llassert(childp);
|
||||
LLView* viewp = childp->findChildView(name, recurse);
|
||||
|
|
@ -2837,7 +2837,7 @@ S32 LLView::notifyParent(const LLSD& info)
|
|||
bool LLView::notifyChildren(const LLSD& info)
|
||||
{
|
||||
bool ret = false;
|
||||
BOOST_FOREACH(LLView* childp, mChildList)
|
||||
for (LLView* childp : mChildList)
|
||||
{
|
||||
ret = ret || childp->notifyChildren(info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -664,6 +664,9 @@ public:
|
|||
// Show hexadecimal byte values of unicode symbols in a tooltip
|
||||
static bool sDebugUnicode;
|
||||
|
||||
// Show camera position and direction in Camera Controls floater
|
||||
static bool sDebugCamera;
|
||||
|
||||
static bool sIsRectDirty;
|
||||
static LLRect sDirtyRect;
|
||||
|
||||
|
|
|
|||
|
|
@ -65,13 +65,12 @@ HRESULT GetVideoMemoryViaWMI(WCHAR* strInputDeviceID, DWORD* pdwAdapterRam)
|
|||
{
|
||||
HRESULT hr;
|
||||
bool bGotMemory = false;
|
||||
HRESULT hrCoInitialize = S_OK;
|
||||
IWbemLocator* pIWbemLocator = nullptr;
|
||||
IWbemServices* pIWbemServices = nullptr;
|
||||
BSTR pNamespace = nullptr;
|
||||
|
||||
*pdwAdapterRam = 0;
|
||||
hrCoInitialize = CoInitialize( 0 );
|
||||
CoInitializeEx(0, COINIT_APARTMENTTHREADED);
|
||||
|
||||
hr = CoCreateInstance( CLSID_WbemLocator,
|
||||
nullptr,
|
||||
|
|
@ -208,8 +207,7 @@ HRESULT GetVideoMemoryViaWMI(WCHAR* strInputDeviceID, DWORD* pdwAdapterRam)
|
|||
|
||||
SAFE_RELEASE( pIWbemLocator );
|
||||
|
||||
if( SUCCEEDED( hrCoInitialize ) )
|
||||
CoUninitialize();
|
||||
CoUninitialize();
|
||||
|
||||
if( bGotMemory )
|
||||
return S_OK;
|
||||
|
|
@ -232,9 +230,8 @@ S32 LLDXHardware::getMBVideoMemoryViaWMI()
|
|||
std::string LLDXHardware::getDriverVersionWMI(EGPUVendor vendor)
|
||||
{
|
||||
std::string mDriverVersion;
|
||||
HRESULT hrCoInitialize = S_OK;
|
||||
HRESULT hres;
|
||||
hrCoInitialize = CoInitialize(0);
|
||||
CoInitializeEx(0, COINIT_APARTMENTTHREADED);
|
||||
IWbemLocator *pLoc = NULL;
|
||||
|
||||
hres = CoCreateInstance(
|
||||
|
|
@ -437,10 +434,10 @@ std::string LLDXHardware::getDriverVersionWMI(EGPUVendor vendor)
|
|||
{
|
||||
pEnumerator->Release();
|
||||
}
|
||||
if (SUCCEEDED(hrCoInitialize))
|
||||
{
|
||||
CoUninitialize();
|
||||
}
|
||||
|
||||
// supposed to always call CoUninitialize even if init returned false
|
||||
CoUninitialize();
|
||||
|
||||
return mDriverVersion;
|
||||
}
|
||||
|
||||
|
|
@ -687,7 +684,8 @@ BOOL LLDXHardware::getInfo(BOOL vram_only)
|
|||
BOOL ok = FALSE;
|
||||
HRESULT hr;
|
||||
|
||||
CoInitialize(NULL);
|
||||
// CLSID_DxDiagProvider does not work with Multithreaded?
|
||||
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
|
||||
|
||||
IDxDiagProvider *dx_diag_providerp = NULL;
|
||||
IDxDiagContainer *dx_diag_rootp = NULL;
|
||||
|
|
@ -976,7 +974,7 @@ LLSD LLDXHardware::getDisplayInfo()
|
|||
LLTimer hw_timer;
|
||||
HRESULT hr;
|
||||
LLSD ret;
|
||||
CoInitialize(NULL);
|
||||
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
|
||||
|
||||
IDxDiagProvider *dx_diag_providerp = NULL;
|
||||
IDxDiagContainer *dx_diag_rootp = NULL;
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ set(viewer_SOURCE_FILES
|
|||
llfloaterimcontainer.cpp
|
||||
llfloaterinspect.cpp
|
||||
llfloaterinventorysettings.cpp
|
||||
llfloaterinventorythumbnailshelper.cpp
|
||||
llfloaterjoystick.cpp
|
||||
llfloaterlagmeter.cpp
|
||||
llfloaterland.cpp
|
||||
|
|
@ -890,6 +891,7 @@ set(viewer_HEADER_FILES
|
|||
llfloaterimcontainer.h
|
||||
llfloaterinspect.h
|
||||
llfloaterinventorysettings.h
|
||||
llfloaterinventorythumbnailshelper.h
|
||||
llfloaterjoystick.h
|
||||
llfloaterlagmeter.h
|
||||
llfloaterland.h
|
||||
|
|
@ -1577,34 +1579,15 @@ endif (WINDOWS)
|
|||
|
||||
# Add the xui files. This is handy for searching for xui elements
|
||||
# from within the IDE.
|
||||
set(viewer_XUI_FILES
|
||||
skins/default/colors.xml
|
||||
skins/default/default_languages.xml
|
||||
skins/default/textures/textures.xml
|
||||
)
|
||||
file(GLOB DEFAULT_XUI_FILE_GLOB_LIST
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/*.xml)
|
||||
list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST})
|
||||
|
||||
file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/widgets/*.xml)
|
||||
list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST})
|
||||
|
||||
# Cannot append empty lists in CMake, wait until we have files here.
|
||||
#file(GLOB SILVER_WIDGET_FILE_GLOB_LIST
|
||||
# ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/widgets/*.xml)
|
||||
#list(APPEND viewer_XUI_FILES ${SILVER_WIDGET_FILE_GLOB_LIST})
|
||||
|
||||
list(SORT viewer_XUI_FILES)
|
||||
|
||||
source_group("XUI Files" FILES ${viewer_XUI_FILES})
|
||||
|
||||
set_source_files_properties(${viewer_XUI_FILES}
|
||||
file(GLOB_RECURSE viewer_XUI_FILES LIST_DIRECTORIES FALSE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/skins/*.xml)
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/skins PREFIX "XUI Files" FILES ${viewer_XUI_FILES})
|
||||
set_source_files_properties(${viewer_XUI_FILES}
|
||||
PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
||||
list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES})
|
||||
|
||||
file(GLOB_RECURSE viewer_SHADER_FILES LIST_DIRECTORIES TRUE
|
||||
# Add the shader sources
|
||||
file(GLOB_RECURSE viewer_SHADER_FILES LIST_DIRECTORIES FALSE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders/*.glsl)
|
||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders PREFIX "Shaders" FILES ${viewer_SHADER_FILES})
|
||||
set_source_files_properties(${viewer_SHADER_FILES}
|
||||
|
|
@ -1614,6 +1597,7 @@ list(APPEND viewer_SOURCE_FILES ${viewer_SHADER_FILES})
|
|||
|
||||
set(viewer_APPSETTINGS_FILES
|
||||
app_settings/anim.ini
|
||||
app_settings/autoreplace.xml
|
||||
app_settings/cmd_line.xml
|
||||
app_settings/commands.xml
|
||||
app_settings/emoji_groups.xml
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7.1.6
|
||||
7.1.7
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@
|
|||
#include "llworld.h"
|
||||
#include "llworldmap.h"
|
||||
#include "stringize.h"
|
||||
#include "boost/foreach.hpp"
|
||||
#include "llcorehttputil.h"
|
||||
#include "lluiusage.h"
|
||||
|
||||
|
|
@ -1469,23 +1468,27 @@ void LLAgent::pitch(F32 angle)
|
|||
|
||||
LLVector3 skyward = getReferenceUpVector();
|
||||
|
||||
// SL-19286 Avatar is upside down when viewed from below
|
||||
// after left-clicking the mouse on the avatar and dragging down
|
||||
//
|
||||
// The issue is observed on angle below 10 degrees
|
||||
const F32 look_down_limit = 179.f * DEG_TO_RAD;
|
||||
const F32 look_up_limit = 10.f * DEG_TO_RAD;
|
||||
|
||||
F32 angle_from_skyward = acos(mFrameAgent.getAtAxis() * skyward);
|
||||
|
||||
// clamp pitch to limits
|
||||
if ((angle >= 0.f) && (angle_from_skyward + angle > look_down_limit))
|
||||
if (angle >= 0.f)
|
||||
{
|
||||
angle = look_down_limit - angle_from_skyward;
|
||||
const F32 look_down_limit = 179.f * DEG_TO_RAD;
|
||||
F32 angle_from_skyward = acos(mFrameAgent.getAtAxis() * skyward);
|
||||
if (angle_from_skyward + angle > look_down_limit)
|
||||
{
|
||||
angle = look_down_limit - angle_from_skyward;
|
||||
}
|
||||
}
|
||||
else if ((angle < 0.f) && (angle_from_skyward + angle < look_up_limit))
|
||||
else if (angle < 0.f)
|
||||
{
|
||||
angle = look_up_limit - angle_from_skyward;
|
||||
const F32 look_up_limit = 5.f * DEG_TO_RAD;
|
||||
const LLVector3& viewer_camera_pos = LLViewerCamera::getInstance()->getOrigin();
|
||||
LLVector3 agent_focus_pos = getPosAgentFromGlobal(gAgentCamera.calcFocusPositionTargetGlobal());
|
||||
LLVector3 look_dir = agent_focus_pos - viewer_camera_pos;
|
||||
F32 angle_from_skyward = angle_between(look_dir, skyward);
|
||||
if (angle_from_skyward + angle < look_up_limit)
|
||||
{
|
||||
angle = look_up_limit - angle_from_skyward;
|
||||
}
|
||||
}
|
||||
|
||||
if (fabs(angle) > 1e-4)
|
||||
|
|
@ -2329,7 +2332,7 @@ void LLAgent::endAnimationUpdateUI()
|
|||
LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
|
||||
LLFloaterIMContainer::floater_list_t conversations;
|
||||
im_box->getDetachedConversationFloaters(conversations);
|
||||
BOOST_FOREACH(LLFloater* conversation, conversations)
|
||||
for (LLFloater* conversation : conversations)
|
||||
{
|
||||
LL_INFOS() << "skip_list.insert(session_floater): " << conversation->getTitle() << LL_ENDL;
|
||||
skip_list.insert(conversation);
|
||||
|
|
@ -4333,6 +4336,10 @@ void LLAgent::teleportRequest(
|
|||
// Landmark ID = LLUUID::null means teleport home
|
||||
void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id)
|
||||
{
|
||||
if (landmark_asset_id.isNull())
|
||||
{
|
||||
gAgentCamera.resetView();
|
||||
}
|
||||
mTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLandmark(landmark_asset_id));
|
||||
startTeleportRequest();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ class LLTeleportRequest;
|
|||
|
||||
|
||||
|
||||
typedef boost::shared_ptr<LLTeleportRequest> LLTeleportRequestPtr;
|
||||
typedef std::shared_ptr<LLTeleportRequest> LLTeleportRequestPtr;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Types
|
||||
|
|
@ -131,7 +131,7 @@ public:
|
|||
private:
|
||||
bool mInitialized;
|
||||
bool mFirstLogin;
|
||||
boost::shared_ptr<LLAgentListener> mListener;
|
||||
std::shared_ptr<LLAgentListener> mListener;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Session
|
||||
|
|
|
|||
|
|
@ -1779,7 +1779,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
|
|||
|
||||
head_offset.clearVec();
|
||||
F32 fixup;
|
||||
if (gAgentAvatarp->hasPelvisFixup(fixup))
|
||||
if (gAgentAvatarp->hasPelvisFixup(fixup) && !gAgentAvatarp->isSitting())
|
||||
{
|
||||
head_offset[VZ] -= fixup;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1738,10 +1738,6 @@ void AISUpdate::doUpdate()
|
|||
LL_DEBUGS("Inventory") << "cat version update " << cat->getName() << " to version " << cat->getVersion() << LL_ENDL;
|
||||
if (cat->getVersion() != version)
|
||||
{
|
||||
LL_WARNS() << "Possible version mismatch for category " << cat->getName()
|
||||
<< ", viewer version " << cat->getVersion()
|
||||
<< " AIS version " << version << " !!!Adjusting local version!!!" << LL_ENDL;
|
||||
|
||||
// the AIS version should be considered the true version. Adjust
|
||||
// our local category model to reflect this version number. Otherwise
|
||||
// it becomes possible to get stuck with the viewer being out of
|
||||
|
|
@ -1751,13 +1747,23 @@ void AISUpdate::doUpdate()
|
|||
// is performed. This occasionally gets out of sync however.
|
||||
if (version != LLViewerInventoryCategory::VERSION_UNKNOWN)
|
||||
{
|
||||
LL_WARNS() << "Possible version mismatch for category " << cat->getName()
|
||||
<< ", viewer version " << cat->getVersion()
|
||||
<< " AIS version " << version << " !!!Adjusting local version!!!" << LL_ENDL;
|
||||
cat->setVersion(version);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We do not account for update if version is UNKNOWN, so we shouldn't rise version
|
||||
// either or viewer will get stuck on descendants count -1, try to refetch folder instead
|
||||
cat->fetch();
|
||||
//
|
||||
// Todo: proper backoff?
|
||||
|
||||
LL_WARNS() << "Possible version mismatch for category " << cat->getName()
|
||||
<< ", viewer version " << cat->getVersion()
|
||||
<< " AIS version " << version << " !!!Rerequesting category!!!" << LL_ENDL;
|
||||
const S32 LONG_EXPIRY = 360;
|
||||
cat->fetch(LONG_EXPIRY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include "llaccordionctrltab.h"
|
||||
#include "llagent.h"
|
||||
#include "llagentcamera.h"
|
||||
|
|
@ -1652,7 +1651,7 @@ void LLAppearanceMgr::removeOutfitPhoto(const LLUUID& outfit_id)
|
|||
sub_cat_array,
|
||||
outfit_item_array,
|
||||
LLInventoryModel::EXCLUDE_TRASH);
|
||||
BOOST_FOREACH(LLViewerInventoryItem* outfit_item, outfit_item_array)
|
||||
for (LLViewerInventoryItem* outfit_item : outfit_item_array)
|
||||
{
|
||||
LLViewerInventoryItem* linked_item = outfit_item->getLinkedItem();
|
||||
if (linked_item != NULL)
|
||||
|
|
@ -3443,7 +3442,7 @@ void update_base_outfit_after_ordering()
|
|||
sub_cat_array,
|
||||
outfit_item_array,
|
||||
LLInventoryModel::EXCLUDE_TRASH);
|
||||
BOOST_FOREACH(LLViewerInventoryItem* outfit_item, outfit_item_array)
|
||||
for (LLViewerInventoryItem* outfit_item : outfit_item_array)
|
||||
{
|
||||
LLViewerInventoryItem* linked_item = outfit_item->getLinkedItem();
|
||||
if (linked_item != NULL)
|
||||
|
|
@ -3747,7 +3746,7 @@ LLSD LLAppearanceMgr::dumpCOF() const
|
|||
LLUUID linked_asset_id(linked_item->getAssetUUID());
|
||||
md5.update((unsigned char*)linked_asset_id.mData, 16);
|
||||
U32 flags = linked_item->getFlags();
|
||||
md5.update(boost::lexical_cast<std::string>(flags));
|
||||
md5.update(std::to_string(flags));
|
||||
}
|
||||
else if (LLAssetType::AT_LINK_FOLDER != inv_item->getActualType())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -143,7 +143,6 @@
|
|||
|
||||
// Third party library includes
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/regex.hpp>
|
||||
#include <boost/throw_exception.hpp>
|
||||
|
|
@ -1199,7 +1198,7 @@ bool LLAppViewer::init()
|
|||
LLSD item(LeapCommand);
|
||||
LeapCommand.append(item);
|
||||
}
|
||||
BOOST_FOREACH(const std::string& leap, llsd::inArray(LeapCommand))
|
||||
for (const auto& leap : llsd::inArray(LeapCommand))
|
||||
{
|
||||
LL_INFOS("InitInfo") << "processing --leap \"" << leap << '"' << LL_ENDL;
|
||||
// We don't have any better description of this plugin than the
|
||||
|
|
@ -1704,7 +1703,7 @@ bool LLAppViewer::cleanup()
|
|||
LLNotifications::instance().clear();
|
||||
|
||||
// workaround for DEV-35406 crash on shutdown
|
||||
LLEventPumps::instance().reset();
|
||||
LLEventPumps::instance().reset(true);
|
||||
|
||||
//dump scene loading monitor results
|
||||
if (LLSceneMonitor::instanceExists())
|
||||
|
|
@ -2361,7 +2360,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
|
|||
LL_ERRS() << "Invalid settings location list" << LL_ENDL;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const SettingsGroup& group, mSettingsLocationList->groups)
|
||||
for (const SettingsGroup& group : mSettingsLocationList->groups)
|
||||
{
|
||||
// skip settings groups that aren't the one we requested
|
||||
if (group.name() != location_key) continue;
|
||||
|
|
@ -2373,7 +2372,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
|
|||
return false;
|
||||
}
|
||||
|
||||
BOOST_FOREACH(const SettingsFile& file, group.files)
|
||||
for (const SettingsFile& file : group.files)
|
||||
{
|
||||
LL_INFOS("Settings") << "Attempting to load settings for the group " << file.name()
|
||||
<< " - from location " << location_key << LL_ENDL;
|
||||
|
|
@ -2438,11 +2437,11 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
|
|||
std::string LLAppViewer::getSettingsFilename(const std::string& location_key,
|
||||
const std::string& file)
|
||||
{
|
||||
BOOST_FOREACH(const SettingsGroup& group, mSettingsLocationList->groups)
|
||||
for (const SettingsGroup& group : mSettingsLocationList->groups)
|
||||
{
|
||||
if (group.name() == location_key)
|
||||
{
|
||||
BOOST_FOREACH(const SettingsFile& settings_file, group.files)
|
||||
for (const SettingsFile& settings_file : group.files)
|
||||
{
|
||||
if (settings_file.name() == file)
|
||||
{
|
||||
|
|
@ -3028,7 +3027,7 @@ void LLAppViewer::initStrings()
|
|||
// Now that we've set "[sourceid]", have to go back through
|
||||
// default_trans_args and reinitialize all those other keys because some
|
||||
// of them, in turn, reference "[sourceid]".
|
||||
BOOST_FOREACH(std::string key, default_trans_args)
|
||||
for (const std::string& key : default_trans_args)
|
||||
{
|
||||
std::string brackets(key), nobrackets(key);
|
||||
// Invalid to inspect key[0] if key is empty(). But then, the entire
|
||||
|
|
@ -4694,16 +4693,23 @@ void LLAppViewer::idle()
|
|||
// When appropriate, update agent location to the simulator.
|
||||
F32 agent_update_time = agent_update_timer.getElapsedTimeF32();
|
||||
F32 agent_force_update_time = mLastAgentForceUpdate + agent_update_time;
|
||||
BOOL force_update = gAgent.controlFlagsDirty()
|
||||
|| (mLastAgentControlFlags != gAgent.getControlFlags())
|
||||
|| (agent_force_update_time > (1.0f / (F32) AGENT_FORCE_UPDATES_PER_SECOND));
|
||||
if (force_update || (agent_update_time > (1.0f / (F32) AGENT_UPDATES_PER_SECOND)))
|
||||
bool timed_out = agent_update_time > (1.0f / (F32)AGENT_UPDATES_PER_SECOND);
|
||||
BOOL force_send =
|
||||
// if there is something to send
|
||||
(gAgent.controlFlagsDirty() && timed_out)
|
||||
// if something changed
|
||||
|| (mLastAgentControlFlags != gAgent.getControlFlags())
|
||||
// keep alive
|
||||
|| (agent_force_update_time > (1.0f / (F32) AGENT_FORCE_UPDATES_PER_SECOND));
|
||||
// timing out doesn't warranty that an update will be sent,
|
||||
// just that it will be checked.
|
||||
if (force_send || timed_out)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
|
||||
// Send avatar and camera info
|
||||
mLastAgentControlFlags = gAgent.getControlFlags();
|
||||
mLastAgentForceUpdate = force_update ? 0 : agent_force_update_time;
|
||||
send_agent_update(force_update);
|
||||
mLastAgentForceUpdate = force_send ? 0 : agent_force_update_time;
|
||||
send_agent_update(force_send);
|
||||
agent_update_timer.reset();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -177,6 +177,11 @@ LLNotificationChiclet::LLNotificationChiclet(const Params& p)
|
|||
LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this);
|
||||
}
|
||||
|
||||
LLNotificationChiclet::~LLNotificationChiclet()
|
||||
{
|
||||
mNotificationChannel.reset();
|
||||
}
|
||||
|
||||
void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data)
|
||||
{
|
||||
std::string action = user_data.asString();
|
||||
|
|
|
|||
|
|
@ -531,8 +531,9 @@ public:
|
|||
struct Params : public LLInitParam::Block<Params, LLSysWellChiclet::Params>{};
|
||||
|
||||
protected:
|
||||
struct ChicletNotificationChannel : public LLNotificationChannel
|
||||
class ChicletNotificationChannel : public LLNotificationChannel
|
||||
{
|
||||
public:
|
||||
ChicletNotificationChannel(LLNotificationChiclet* chiclet)
|
||||
: LLNotificationChannel(LLNotificationChannel::Params().filter(filterNotification).name(chiclet->getSessionId().asString()))
|
||||
, mChiclet(chiclet)
|
||||
|
|
@ -542,6 +543,7 @@ protected:
|
|||
connectToChannel("Offer");
|
||||
connectToChannel("Notifications");
|
||||
}
|
||||
virtual ~ChicletNotificationChannel() {}
|
||||
|
||||
static bool filterNotification(LLNotificationPtr notify);
|
||||
// connect counter updaters to the corresponding signals
|
||||
|
|
@ -553,9 +555,10 @@ protected:
|
|||
};
|
||||
|
||||
boost::scoped_ptr<ChicletNotificationChannel> mNotificationChannel;
|
||||
|
||||
LLNotificationChiclet(const Params& p);
|
||||
|
||||
|
||||
LLNotificationChiclet(const Params& p);
|
||||
~LLNotificationChiclet();
|
||||
|
||||
/**
|
||||
* Processes clicks on chiclet menu.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ namespace
|
|||
class ObjectInventoryFetcher: public LLVOInventoryListener
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<ObjectInventoryFetcher> ptr_t;
|
||||
typedef std::shared_ptr<ObjectInventoryFetcher> ptr_t;
|
||||
|
||||
ObjectInventoryFetcher(LLEventPump &pump, LLViewerObject* object, void* user_data) :
|
||||
mPump(pump),
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "llnotificationsutil.h"
|
||||
#include "lltrans.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
#include "boost/lexical_cast.hpp"
|
||||
|
||||
const S32Days CONVERSATION_LIFETIME = (S32Days)30; // lifetime of LLConversation is 30 days by spec
|
||||
|
|
@ -392,7 +391,7 @@ void LLConversationLog::deleteBackupLogs()
|
|||
std::vector<std::string> backup_logs;
|
||||
getListOfBackupLogs(backup_logs);
|
||||
|
||||
BOOST_FOREACH(const std::string& fullpath, backup_logs)
|
||||
for (const std::string& fullpath : backup_logs)
|
||||
{
|
||||
LLFile::remove(fullpath);
|
||||
}
|
||||
|
|
@ -434,7 +433,7 @@ bool LLConversationLog::moveLog(const std::string &originDirectory, const std::s
|
|||
while(LLFile::isfile(backupFileName))
|
||||
{
|
||||
++backupFileCount;
|
||||
backupFileName = targetDirectory + ".backup" + boost::lexical_cast<std::string>(backupFileCount);
|
||||
backupFileName = targetDirectory + ".backup" + std::to_string(backupFileCount);
|
||||
}
|
||||
|
||||
//Rename the file to its backup name so it is not overwritten
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@
|
|||
#include "llimview.h" //For LLIMModel
|
||||
#include "lltrans.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
//
|
||||
// Conversation items : common behaviors
|
||||
//
|
||||
|
|
@ -300,8 +298,7 @@ void LLConversationItemSession::updateName(LLConversationItemParticipant* partic
|
|||
// In the case of a P2P conversation, we need to grab the name of the other participant in the session instance itself
|
||||
// as we do not create participants for such a session.
|
||||
|
||||
LLFolderViewModelItem * itemp;
|
||||
BOOST_FOREACH(itemp, mChildren)
|
||||
for (auto itemp : mChildren)
|
||||
{
|
||||
LLConversationItem* current_participant = dynamic_cast<LLConversationItem*>(itemp);
|
||||
// Add the avatar uuid to the list (except if it's the own agent uuid)
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "llprocess.h"
|
||||
#include "llsdutil.h"
|
||||
#include "llstring.h"
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
// static
|
||||
const std::string LLExternalEditor::sFilenameMarker = "%s";
|
||||
|
|
@ -93,7 +92,7 @@ LLExternalEditor::EErrorCode LLExternalEditor::run(const std::string& file_path)
|
|||
params.executable = mProcessParams.executable;
|
||||
|
||||
// Substitute the filename marker in the command with the actual passed file name.
|
||||
BOOST_FOREACH(const std::string& arg, mProcessParams.args)
|
||||
for (const std::string& arg : mProcessParams.args)
|
||||
{
|
||||
std::string fixed(arg);
|
||||
LLStringUtil::replaceString(fixed, sFilenameMarker, file_path);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
#include "llfirstuse.h"
|
||||
#include "llhints.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "llviewercamera.h"
|
||||
#include "llvoavatarself.h"
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLPanelCameraItem> r("panel_camera_item");
|
||||
|
|
@ -65,13 +66,19 @@ class LLPanelCameraZoom
|
|||
: public LLPanel
|
||||
{
|
||||
LOG_CLASS(LLPanelCameraZoom);
|
||||
|
||||
public:
|
||||
LLPanelCameraZoom();
|
||||
struct Params : public LLInitParam::Block<Params, LLPanel::Params> {};
|
||||
|
||||
LLPanelCameraZoom() { onCreate(); }
|
||||
|
||||
/* virtual */ BOOL postBuild();
|
||||
/* virtual */ void draw();
|
||||
|
||||
protected:
|
||||
LLPanelCameraZoom(const Params& p) { onCreate(); }
|
||||
|
||||
void onCreate();
|
||||
void onZoomPlusHeldDown();
|
||||
void onZoomMinusHeldDown();
|
||||
void onSliderValueChanged();
|
||||
|
|
@ -80,9 +87,11 @@ protected:
|
|||
F32 getOrbitRate(F32 time);
|
||||
|
||||
private:
|
||||
LLButton* mPlusBtn;
|
||||
LLButton* mMinusBtn;
|
||||
LLSlider* mSlider;
|
||||
LLButton* mPlusBtn { nullptr };
|
||||
LLButton* mMinusBtn{ nullptr };
|
||||
LLSlider* mSlider{ nullptr };
|
||||
|
||||
friend class LLUICtrlFactory;
|
||||
};
|
||||
|
||||
LLPanelCameraItem::Params::Params()
|
||||
|
|
@ -158,10 +167,7 @@ static LLPanelInjector<LLPanelCameraZoom> t_camera_zoom_panel("camera_zoom_panel
|
|||
// LLPanelCameraZoom
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
LLPanelCameraZoom::LLPanelCameraZoom()
|
||||
: mPlusBtn( NULL ),
|
||||
mMinusBtn( NULL ),
|
||||
mSlider( NULL )
|
||||
void LLPanelCameraZoom::onCreate()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Zoom.minus", boost::bind(&LLPanelCameraZoom::onZoomMinusHeldDown, this));
|
||||
mCommitCallbackRegistrar.add("Zoom.plus", boost::bind(&LLPanelCameraZoom::onZoomPlusHeldDown, this));
|
||||
|
|
@ -172,9 +178,9 @@ LLPanelCameraZoom::LLPanelCameraZoom()
|
|||
|
||||
BOOL LLPanelCameraZoom::postBuild()
|
||||
{
|
||||
mPlusBtn = getChild <LLButton> ("zoom_plus_btn");
|
||||
mMinusBtn = getChild <LLButton> ("zoom_minus_btn");
|
||||
mSlider = getChild <LLSlider> ("zoom_slider");
|
||||
mPlusBtn = getChild<LLButton>("zoom_plus_btn");
|
||||
mMinusBtn = getChild<LLButton>("zoom_minus_btn");
|
||||
mSlider = getChild<LLSlider>("zoom_slider");
|
||||
return LLPanel::postBuild();
|
||||
}
|
||||
|
||||
|
|
@ -240,11 +246,80 @@ void activate_camera_tool()
|
|||
LLToolMgr::getInstance()->setTransientTool(LLToolCamera::getInstance());
|
||||
};
|
||||
|
||||
class LLCameraInfoPanel : public LLPanel
|
||||
{
|
||||
public:
|
||||
typedef std::function<LLVector3()> get_vector_t;
|
||||
|
||||
LLCameraInfoPanel(
|
||||
const LLView* parent,
|
||||
const char* title,
|
||||
const LLCoordFrame& camera,
|
||||
const get_vector_t get_focus
|
||||
)
|
||||
: LLPanel([&]() -> LLPanel::Params
|
||||
{
|
||||
LLPanel::Params params;
|
||||
params.rect = LLRect(parent->getLocalRect());
|
||||
return params;
|
||||
}())
|
||||
, mTitle(title)
|
||||
, mCamera(camera)
|
||||
, mGetFocus(get_focus)
|
||||
, mFont(LLFontGL::getFontSansSerifBig())
|
||||
{
|
||||
}
|
||||
|
||||
virtual void draw() override
|
||||
{
|
||||
LLPanel::draw();
|
||||
|
||||
static const U32 HPADDING = 10;
|
||||
static const U32 VPADDING = 5;
|
||||
LLVector3 focus = mGetFocus();
|
||||
LLVector3 sight = focus - mCamera.mOrigin;
|
||||
std::pair<const char*, const LLVector3&> const data[] =
|
||||
{
|
||||
{ "Origin:", mCamera.mOrigin },
|
||||
{ "X Axis:", mCamera.mXAxis },
|
||||
{ "Y Axis:", mCamera.mYAxis },
|
||||
{ "Z Axis:", mCamera.mZAxis },
|
||||
{ "Focus:", focus },
|
||||
{ "Sight:", sight }
|
||||
};
|
||||
S32 width = getRect().getWidth();
|
||||
S32 height = getRect().getHeight();
|
||||
S32 row_count = 1 + sizeof(data) / sizeof(*data);
|
||||
S32 row_height = (height - VPADDING * 2) / row_count;
|
||||
S32 top = height - VPADDING - row_height / 2;
|
||||
mFont->renderUTF8(mTitle, 0, HPADDING, top, LLColor4::white, LLFontGL::LEFT, LLFontGL::VCENTER);
|
||||
for (const auto& row : data)
|
||||
{
|
||||
top -= row_height;
|
||||
mFont->renderUTF8(row.first, 0, HPADDING, top, LLColor4::white, LLFontGL::LEFT, LLFontGL::VCENTER);
|
||||
const LLVector3& vector = row.second;
|
||||
for (S32 i = 0; i < 3; ++i)
|
||||
{
|
||||
std::string text = llformat("%.6f", vector[i]);
|
||||
S32 right = width / 4 * (i + 2) - HPADDING;
|
||||
mFont->renderUTF8(text, 0, right, top, LLColor4::white, LLFontGL::RIGHT, LLFontGL::VCENTER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
const char* mTitle;
|
||||
const LLCoordFrame& mCamera;
|
||||
const get_vector_t mGetFocus;
|
||||
const LLFontGL* mFont;
|
||||
};
|
||||
|
||||
//
|
||||
// Member functions
|
||||
//
|
||||
|
||||
/*static*/ bool LLFloaterCamera::inFreeCameraMode()
|
||||
// static
|
||||
bool LLFloaterCamera::inFreeCameraMode()
|
||||
{
|
||||
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
|
||||
if (floater_camera && floater_camera->mCurrMode == CAMERA_CTRL_MODE_FREE_CAMERA && gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK)
|
||||
|
|
@ -254,6 +329,7 @@ void activate_camera_tool()
|
|||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterCamera::resetCameraMode()
|
||||
{
|
||||
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
|
||||
|
|
@ -261,6 +337,7 @@ void LLFloaterCamera::resetCameraMode()
|
|||
floater_camera->switchMode(CAMERA_CTRL_MODE_PAN);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterCamera::onAvatarEditingAppearance(bool editing)
|
||||
{
|
||||
sAppearanceEditing = editing;
|
||||
|
|
@ -269,15 +346,46 @@ void LLFloaterCamera::onAvatarEditingAppearance(bool editing)
|
|||
floater_camera->handleAvatarEditingAppearance(editing);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterCamera::onDebugCameraToggled()
|
||||
{
|
||||
if (LLFloaterCamera* instance = LLFloaterCamera::findInstance())
|
||||
{
|
||||
instance->showDebugInfo(LLView::sDebugCamera);
|
||||
}
|
||||
|
||||
if (LLView::sDebugCamera)
|
||||
{
|
||||
LLFloaterReg::showInstanceOrBringToFront("camera");
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterCamera::showDebugInfo(bool show)
|
||||
{
|
||||
// Initially LLPanel contains 1 child "view_border"
|
||||
if (show && mViewerCameraInfo->getChildCount() < 2)
|
||||
{
|
||||
mViewerCameraInfo->addChild(new LLCameraInfoPanel(mViewerCameraInfo, "Viewer Camera", *LLViewerCamera::getInstance(),
|
||||
[]() { return LLViewerCamera::getInstance()->getPointOfInterest(); }));
|
||||
mAgentCameraInfo->addChild(new LLCameraInfoPanel(mAgentCameraInfo, "Agent Camera", gAgent.getFrameAgent(),
|
||||
[]() { return gAgent.getPosAgentFromGlobal(gAgentCamera.calcFocusPositionTargetGlobal()); }));
|
||||
}
|
||||
|
||||
mAgentCameraInfo->setVisible(show);
|
||||
mViewerCameraInfo->setVisible(show);
|
||||
}
|
||||
|
||||
void LLFloaterCamera::handleAvatarEditingAppearance(bool editing)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LLFloaterCamera::update()
|
||||
{
|
||||
ECameraControlMode mode = determineMode();
|
||||
if (mode != mCurrMode) setMode(mode);
|
||||
if (mode != mCurrMode)
|
||||
{
|
||||
setMode(mode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -286,7 +394,8 @@ void LLFloaterCamera::toPrevMode()
|
|||
switchMode(mPrevMode);
|
||||
}
|
||||
|
||||
/*static*/ void LLFloaterCamera::onLeavingMouseLook()
|
||||
// static
|
||||
void LLFloaterCamera::onLeavingMouseLook()
|
||||
{
|
||||
LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
|
||||
if (floater_camera)
|
||||
|
|
@ -320,12 +429,14 @@ void LLFloaterCamera::onOpen(const LLSD& key)
|
|||
mClosed = FALSE;
|
||||
|
||||
populatePresetCombo();
|
||||
|
||||
showDebugInfo(LLView::sDebugCamera);
|
||||
}
|
||||
|
||||
void LLFloaterCamera::onClose(bool app_quitting)
|
||||
{
|
||||
//We don't care of camera mode if app is quitting
|
||||
if(app_quitting)
|
||||
if (app_quitting)
|
||||
return;
|
||||
// It is necessary to reset mCurrMode to CAMERA_CTRL_MODE_PAN so
|
||||
// to avoid seeing an empty floater when reopening the control.
|
||||
|
|
@ -360,14 +471,18 @@ BOOL LLFloaterCamera::postBuild()
|
|||
{
|
||||
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
|
||||
|
||||
mControls = getChild<LLPanel>("controls");
|
||||
mAgentCameraInfo = getChild<LLPanel>("agent_camera_info");
|
||||
mViewerCameraInfo = getChild<LLPanel>("viewer_camera_info");
|
||||
mRotate = getChild<LLJoystickCameraRotate>(ORBIT);
|
||||
mZoom = findChild<LLPanelCameraZoom>(ZOOM);
|
||||
mZoom = getChild<LLPanelCameraZoom>(ZOOM);
|
||||
mTrack = getChild<LLJoystickCameraTrack>(PAN);
|
||||
mPresetCombo = getChild<LLComboBox>("preset_combo");
|
||||
mPreciseCtrls = getChild<LLTextBox>("precise_ctrs_label");
|
||||
|
||||
getChild<LLTextBox>("precise_ctrs_label")->setShowCursorHand(false);
|
||||
getChild<LLTextBox>("precise_ctrs_label")->setSoundFlags(LLView::MOUSE_UP);
|
||||
getChild<LLTextBox>("precise_ctrs_label")->setClickedCallback(boost::bind(&LLFloaterReg::showInstance, "prefs_view_advanced", LLSD(), FALSE));
|
||||
mPreciseCtrls->setShowCursorHand(false);
|
||||
mPreciseCtrls->setSoundFlags(LLView::MOUSE_UP);
|
||||
mPreciseCtrls->setClickedCallback(boost::bind(&LLFloaterReg::showInstance, "prefs_view_advanced", LLSD(), FALSE));
|
||||
|
||||
mPresetCombo->setCommitCallback(boost::bind(&LLFloaterCamera::onCustomPresetSelected, this));
|
||||
LLPresetsManager::getInstance()->setPresetListChangeCameraCallback(boost::bind(&LLFloaterCamera::populatePresetCombo, this));
|
||||
|
|
@ -507,6 +622,7 @@ void LLFloaterCamera::updateItemsSelection()
|
|||
getChild<LLPanelCameraItem>("object_view")->setValue(argument);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterCamera::onClickCameraItem(const LLSD& param)
|
||||
{
|
||||
std::string name = param.asString();
|
||||
|
|
@ -533,7 +649,7 @@ void LLFloaterCamera::onClickCameraItem(const LLSD& param)
|
|||
}
|
||||
}
|
||||
|
||||
/*static*/
|
||||
// static
|
||||
void LLFloaterCamera::switchToPreset(const std::string& name)
|
||||
{
|
||||
sFreeCamera = false;
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@ public:
|
|||
/** Called when Avatar is entered/exited editing appearance mode */
|
||||
static void onAvatarEditingAppearance(bool editing);
|
||||
|
||||
/** Called when opening and when "Advanced | Debug Camera" menu item is toggled */
|
||||
static void onDebugCameraToggled();
|
||||
|
||||
/* determines actual mode and updates ui */
|
||||
void update();
|
||||
|
||||
|
|
@ -77,9 +80,9 @@ public:
|
|||
|
||||
void populatePresetCombo();
|
||||
|
||||
LLJoystickCameraRotate* mRotate;
|
||||
LLPanelCameraZoom* mZoom;
|
||||
LLJoystickCameraTrack* mTrack;
|
||||
LLJoystickCameraRotate* mRotate { nullptr };
|
||||
LLPanelCameraZoom* mZoom { nullptr };
|
||||
LLJoystickCameraTrack* mTrack { nullptr };
|
||||
|
||||
private:
|
||||
|
||||
|
|
@ -117,6 +120,8 @@ private:
|
|||
|
||||
void handleAvatarEditingAppearance(bool editing);
|
||||
|
||||
void showDebugInfo(bool show);
|
||||
|
||||
// set to true when free camera mode is selected in modes list
|
||||
// remains true until preset camera mode is chosen, or pan button is clicked, or escape pressed
|
||||
static bool sFreeCamera;
|
||||
|
|
@ -126,7 +131,11 @@ private:
|
|||
ECameraControlMode mCurrMode;
|
||||
std::map<ECameraControlMode, LLButton*> mMode2Button;
|
||||
|
||||
LLComboBox* mPresetCombo;
|
||||
LLPanel* mControls { nullptr };
|
||||
LLPanel* mViewerCameraInfo { nullptr };
|
||||
LLPanel* mAgentCameraInfo { nullptr };
|
||||
LLComboBox* mPresetCombo { nullptr };
|
||||
LLTextBox* mPreciseCtrls { nullptr };
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ BOOL LLFloaterEditSky::postBuild()
|
|||
mSkyPresetCombo = getChild<LLComboBox>("sky_preset_combo");
|
||||
mMakeDefaultCheckBox = getChild<LLCheckBoxCtrl>("make_default_cb");
|
||||
mSaveButton = getChild<LLButton>("save");
|
||||
mSkyAdapter = boost::make_shared<LLSkySettingsAdapter>();
|
||||
mSkyAdapter = std::make_shared<LLSkySettingsAdapter>();
|
||||
|
||||
LLEnvironment::instance().setSkyListChange(boost::bind(&LLFloaterEditSky::onSkyPresetListChange, this));
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue