Merge #2 with lgpl.
commit
9c245edb37
|
|
@ -1847,9 +1847,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>06e6ada281c0cf37ced1aad58c3e9bb4</string>
|
||||
<string>96d11160278115f6d468171f67aa7a4e</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.8.0-linux-201604022334-r52.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.9.0-linux-201701222135-r58.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1871,9 +1871,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>15da99a3c7dbe2b56a19baced0f9bd54</string>
|
||||
<string>26cc3fbe6a3b9885d697aa639d17a20a</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-7.8.0-windows-201604022251-r52.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/kdu-7.9.0-windows-201701221929-r58.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
|
|||
|
|
@ -116,9 +116,8 @@ BOOL LLDataPacker::packFixed(const F32 value, const char *name,
|
|||
BOOL LLDataPacker::unpackFixed(F32 &value, const char *name,
|
||||
const BOOL is_signed, const U32 int_bits, const U32 frac_bits)
|
||||
{
|
||||
//BOOL success = TRUE;
|
||||
BOOL success = TRUE;
|
||||
//LL_INFOS() << "unpackFixed:" << name << " int:" << int_bits << " frac:" << frac_bits << LL_ENDL;
|
||||
BOOL ok = FALSE;
|
||||
S32 unsigned_bits = int_bits + frac_bits;
|
||||
S32 total_bits = unsigned_bits;
|
||||
|
||||
|
|
@ -140,19 +139,19 @@ BOOL LLDataPacker::unpackFixed(F32 &value, const char *name,
|
|||
if (total_bits <= 8)
|
||||
{
|
||||
U8 fixed_8;
|
||||
ok = unpackU8(fixed_8, name);
|
||||
success = unpackU8(fixed_8, name);
|
||||
fixed_val = (F32)fixed_8;
|
||||
}
|
||||
else if (total_bits <= 16)
|
||||
{
|
||||
U16 fixed_16;
|
||||
ok = unpackU16(fixed_16, name);
|
||||
success = unpackU16(fixed_16, name);
|
||||
fixed_val = (F32)fixed_16;
|
||||
}
|
||||
else if (total_bits <= 31)
|
||||
{
|
||||
U32 fixed_32;
|
||||
ok = unpackU32(fixed_32, name);
|
||||
success = unpackU32(fixed_32, name);
|
||||
fixed_val = (F32)fixed_32;
|
||||
}
|
||||
else
|
||||
|
|
@ -170,7 +169,7 @@ BOOL LLDataPacker::unpackFixed(F32 &value, const char *name,
|
|||
}
|
||||
value = fixed_val;
|
||||
//LL_INFOS() << "Value: " << value << LL_ENDL;
|
||||
return ok;
|
||||
return success;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
@ -179,37 +178,43 @@ BOOL LLDataPacker::unpackFixed(F32 &value, const char *name,
|
|||
|
||||
BOOL LLDataPackerBinaryBuffer::packString(const std::string& value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
S32 length = value.length()+1;
|
||||
|
||||
success &= verifyLength(length, name);
|
||||
if (!verifyLength(length, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.c_str(), MVT_VARIABLE, length);
|
||||
}
|
||||
mCurBufferp += length;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackString(std::string& value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
S32 length = (S32)strlen((char *)mCurBufferp) + 1; /*Flawfinder: ignore*/
|
||||
|
||||
success &= verifyLength(length, name);
|
||||
if (!verifyLength(length, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
value = std::string((char*)mCurBufferp); // We already assume NULL termination calling strlen()
|
||||
|
||||
mCurBufferp += length;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packBinaryData(const U8 *value, S32 size, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(size + 4, name);
|
||||
if (!verifyLength(size + 4, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
|
|
@ -221,235 +226,272 @@ BOOL LLDataPackerBinaryBuffer::packBinaryData(const U8 *value, S32 size, const c
|
|||
htonmemcpy(mCurBufferp, value, MVT_VARIABLE, size);
|
||||
}
|
||||
mCurBufferp += size;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackBinaryData(U8 *value, S32 &size, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(4, name);
|
||||
htonmemcpy(&size, mCurBufferp, MVT_S32, 4);
|
||||
mCurBufferp += 4;
|
||||
success &= verifyLength(size, name);
|
||||
if (success)
|
||||
{
|
||||
htonmemcpy(value, mCurBufferp, MVT_VARIABLE, size);
|
||||
mCurBufferp += size;
|
||||
}
|
||||
else
|
||||
if (!verifyLength(4, name))
|
||||
{
|
||||
LL_WARNS() << "LLDataPackerBinaryBuffer::unpackBinaryData would unpack invalid data, aborting!" << LL_ENDL;
|
||||
success = FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
return success;
|
||||
|
||||
htonmemcpy(&size, mCurBufferp, MVT_S32, 4);
|
||||
mCurBufferp += 4;
|
||||
|
||||
if (!verifyLength(size, name))
|
||||
{
|
||||
LL_WARNS() << "LLDataPackerBinaryBuffer::unpackBinaryData would unpack invalid data, aborting!" << LL_ENDL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value, mCurBufferp, MVT_VARIABLE, size);
|
||||
mCurBufferp += size;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packBinaryDataFixed(const U8 *value, S32 size, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(size, name);
|
||||
if (!verifyLength(size, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value, MVT_VARIABLE, size);
|
||||
}
|
||||
mCurBufferp += size;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackBinaryDataFixed(U8 *value, S32 size, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(size, name);
|
||||
if (!verifyLength(size, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
htonmemcpy(value, mCurBufferp, MVT_VARIABLE, size);
|
||||
mCurBufferp += size;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packU8(const U8 value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U8), name);
|
||||
if (!verifyLength(sizeof(U8), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
*mCurBufferp = value;
|
||||
}
|
||||
mCurBufferp++;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackU8(U8 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U8), name);
|
||||
if (!verifyLength(sizeof(U8), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
value = *mCurBufferp;
|
||||
mCurBufferp++;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packU16(const U16 value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U16), name);
|
||||
if (!verifyLength(sizeof(U16), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, &value, MVT_U16, 2);
|
||||
}
|
||||
mCurBufferp += 2;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackU16(U16 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U16), name);
|
||||
if (!verifyLength(sizeof(U16), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(&value, mCurBufferp, MVT_U16, 2);
|
||||
mCurBufferp += 2;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packU32(const U32 value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U32), name);
|
||||
if (!verifyLength(sizeof(U32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, &value, MVT_U32, 4);
|
||||
}
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackU32(U32 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(U32), name);
|
||||
if (!verifyLength(sizeof(U32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(&value, mCurBufferp, MVT_U32, 4);
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packS32(const S32 value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(S32), name);
|
||||
if (!verifyLength(sizeof(S32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, &value, MVT_S32, 4);
|
||||
}
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackS32(S32 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(S32), name);
|
||||
if(!verifyLength(sizeof(S32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(&value, mCurBufferp, MVT_S32, 4);
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packF32(const F32 value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(F32), name);
|
||||
if (!verifyLength(sizeof(F32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, &value, MVT_F32, 4);
|
||||
}
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackF32(F32 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(sizeof(F32), name);
|
||||
if (!verifyLength(sizeof(F32), name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(&value, mCurBufferp, MVT_F32, 4);
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packColor4(const LLColor4 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.mV, MVT_LLVector4, 16);
|
||||
}
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackColor4(LLColor4 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value.mV, mCurBufferp, MVT_LLVector4, 16);
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packColor4U(const LLColor4U &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(4, name);
|
||||
if (!verifyLength(4, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.mV, MVT_VARIABLE, 4);
|
||||
}
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackColor4U(LLColor4U &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(4, name);
|
||||
if (!verifyLength(4, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value.mV, mCurBufferp, MVT_VARIABLE, 4);
|
||||
mCurBufferp += 4;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packVector2(const LLVector2 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(8, name);
|
||||
if (!verifyLength(8, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
|
|
@ -457,92 +499,106 @@ BOOL LLDataPackerBinaryBuffer::packVector2(const LLVector2 &value, const char *n
|
|||
htonmemcpy(mCurBufferp+4, &value.mV[1], MVT_F32, 4);
|
||||
}
|
||||
mCurBufferp += 8;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackVector2(LLVector2 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(8, name);
|
||||
if (!verifyLength(8, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(&value.mV[0], mCurBufferp, MVT_F32, 4);
|
||||
htonmemcpy(&value.mV[1], mCurBufferp+4, MVT_F32, 4);
|
||||
mCurBufferp += 8;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packVector3(const LLVector3 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(12, name);
|
||||
if (!verifyLength(12, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.mV, MVT_LLVector3, 12);
|
||||
}
|
||||
mCurBufferp += 12;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackVector3(LLVector3 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(12, name);
|
||||
if (!verifyLength(12, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value.mV, mCurBufferp, MVT_LLVector3, 12);
|
||||
mCurBufferp += 12;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packVector4(const LLVector4 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.mV, MVT_LLVector4, 16);
|
||||
}
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackVector4(LLVector4 &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value.mV, mCurBufferp, MVT_LLVector4, 16);
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::packUUID(const LLUUID &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (mWriteEnabled)
|
||||
{
|
||||
htonmemcpy(mCurBufferp, value.mData, MVT_LLUUID, 16);
|
||||
}
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL LLDataPackerBinaryBuffer::unpackUUID(LLUUID &value, const char *name)
|
||||
{
|
||||
BOOL success = TRUE;
|
||||
success &= verifyLength(16, name);
|
||||
if (!verifyLength(16, name))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htonmemcpy(value.mData, mCurBufferp, MVT_LLUUID, 16);
|
||||
mCurBufferp += 16;
|
||||
return success;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const LLDataPackerBinaryBuffer& LLDataPackerBinaryBuffer::operator=(const LLDataPackerBinaryBuffer &a)
|
||||
|
|
@ -618,8 +674,7 @@ BOOL LLDataPackerAsciiBuffer::unpackString(std::string& value, const char *name)
|
|||
{
|
||||
BOOL success = TRUE;
|
||||
char valuestr[DP_BUFSIZE]; /*Flawfinder: ignore*/
|
||||
BOOL res = getValueStr(name, valuestr, DP_BUFSIZE); // NULL terminated
|
||||
if (!res) //
|
||||
if (!getValueStr(name, valuestr, DP_BUFSIZE)) // NULL terminated
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,141 @@
|
|||
<llsd>
|
||||
<map>
|
||||
<key>ambient</key>
|
||||
<array>
|
||||
<real>0.91497802734375</real>
|
||||
<real>0.86969661712646484</real>
|
||||
<real>0.86627197265625</real>
|
||||
<real>0.30499267578125</real>
|
||||
</array>
|
||||
<key>blue_density</key>
|
||||
<array>
|
||||
<real>0.31920000910758972</real>
|
||||
<real>0.25909334421157837</real>
|
||||
<real>0.24079999327659607</real>
|
||||
<real>0.15960000455379486</real>
|
||||
</array>
|
||||
<key>blue_horizon</key>
|
||||
<array>
|
||||
<real>0.31920000910758972</real>
|
||||
<real>0.25909334421157837</real>
|
||||
<real>0.24079999327659607</real>
|
||||
<real>0.15960000455379486</real>
|
||||
</array>
|
||||
<key>cloud_color</key>
|
||||
<array>
|
||||
<real>0.56640625</real>
|
||||
<real>0.56640625</real>
|
||||
<real>0.56640625</real>
|
||||
<real>0.56640625</real>
|
||||
</array>
|
||||
<key>cloud_pos_density1</key>
|
||||
<array>
|
||||
<real>0.71999996900558472</real>
|
||||
<real>0.81000000238418579</real>
|
||||
<real>0.44999998807907104</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>cloud_pos_density2</key>
|
||||
<array>
|
||||
<real>0</real>
|
||||
<real>0.23999999463558197</real>
|
||||
<real>0.20999999344348907</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>cloud_scale</key>
|
||||
<array>
|
||||
<real>0.99999994039535522</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>cloud_scroll_rate</key>
|
||||
<array>
|
||||
<real>16.219999313354492</real>
|
||||
<real>4.7599997520446777</real>
|
||||
</array>
|
||||
<key>cloud_shadow</key>
|
||||
<array>
|
||||
<real>0.2800000011920929</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>density_multiplier</key>
|
||||
<array>
|
||||
<real>0.00089999998454004526</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>distance_multiplier</key>
|
||||
<array>
|
||||
<real>1.3999999761581421</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>east_angle</key>
|
||||
<real>0</real>
|
||||
<key>enable_cloud_scroll</key>
|
||||
<array>
|
||||
<boolean>0</boolean>
|
||||
<boolean>0</boolean>
|
||||
</array>
|
||||
<key>gamma</key>
|
||||
<array>
|
||||
<real>1.7699999809265137</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>glow</key>
|
||||
<array>
|
||||
<real>20</real>
|
||||
<real>0.0010000000474974513</real>
|
||||
<real>-0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>haze_density</key>
|
||||
<array>
|
||||
<real>1.1399999856948853</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>haze_horizon</key>
|
||||
<array>
|
||||
<real>1</real>
|
||||
<real>0.19915600121021271</real>
|
||||
<real>0.19915600121021271</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>lightnorm</key>
|
||||
<array>
|
||||
<real>0</real>
|
||||
<real>0.32144004106521606</real>
|
||||
<real>-0.946929931640625</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>max_y</key>
|
||||
<array>
|
||||
<real>240</real>
|
||||
<real>0</real>
|
||||
<real>0</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
<key>preset_num</key>
|
||||
<integer>22</integer>
|
||||
<key>star_brightness</key>
|
||||
<real>0</real>
|
||||
<key>sun_angle</key>
|
||||
<real>5.9559354782104492</real>
|
||||
<key>sunlight_color</key>
|
||||
<array>
|
||||
<real>0.63410770893096924</real>
|
||||
<real>0.50144779682159424</real>
|
||||
<real>0.45536589622497559</real>
|
||||
<real>0.21136923134326935</real>
|
||||
</array>
|
||||
</map>
|
||||
</llsd>
|
||||
|
|
@ -489,6 +489,7 @@ void init_default_trans_args()
|
|||
// files. We really only want to have to maintain a single copy of it.
|
||||
default_trans_args.insert("create_account_url");
|
||||
default_trans_args.insert("DOWNLOAD_URL"); //<FS:CR> Viewer download url
|
||||
default_trans_args.insert("VIEWER_GENERATION"); // <FS:Ansariel> Viewer generation (major version number)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
@ -1739,17 +1740,15 @@ bool LLAppViewer::frame()
|
|||
ms_sleep(500);
|
||||
}
|
||||
|
||||
const F64Milliseconds max_idle_time = llmin(.005f*10.f*(F32Milliseconds)gFrameTimeSeconds, F32Milliseconds(5)); // 5 ms a second
|
||||
idleTimer.reset();
|
||||
S32 total_work_pending = 0;
|
||||
S32 total_io_pending = 0;
|
||||
while(1)
|
||||
{
|
||||
S32 work_pending = 0;
|
||||
S32 io_pending = 0;
|
||||
F32 max_time = llmin(gFrameIntervalSeconds.value() *10.f, 1.f);
|
||||
|
||||
work_pending += updateTextureThreads(max_time);
|
||||
work_pending += updateTextureThreads(max_time / 3.f); // <FS:Ansariel> 3 Threads in there that should share this amount of time, right?
|
||||
|
||||
{
|
||||
LL_RECORD_BLOCK_TIME(FTM_VFS);
|
||||
|
|
@ -1767,11 +1766,7 @@ bool LLAppViewer::frame()
|
|||
|
||||
total_work_pending += work_pending ;
|
||||
total_io_pending += io_pending ;
|
||||
|
||||
if (!work_pending || idleTimer.getElapsedTimeF64() >= max_idle_time)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
gMeshRepo.update() ;
|
||||
|
||||
|
|
|
|||
|
|
@ -275,7 +275,10 @@ bool LLFloaterScriptQueue::onScriptModifyConfirmation(const LLSD& notification,
|
|||
args["[COUNT]"] = llformat ("%d", mObjectList.size());
|
||||
buffer = getString ("Starting", args);
|
||||
|
||||
getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
||||
// <FS:Ansariel> Improve log output
|
||||
//getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
||||
addStringMessage(buffer);
|
||||
// </FS:Ansariel>
|
||||
|
||||
return startQueue();
|
||||
}
|
||||
|
|
@ -284,12 +287,24 @@ void LLFloaterScriptQueue::addProcessingMessage(const std::string &message, cons
|
|||
{
|
||||
std::string buffer(LLTrans::getString(message, args));
|
||||
|
||||
getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
||||
// <FS:Ansariel> Improve log output
|
||||
//getChild<LLScrollListCtrl>("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
|
||||
addStringMessage(buffer);
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLFloaterScriptQueue::addStringMessage(const std::string &message)
|
||||
{
|
||||
getChild<LLScrollListCtrl>("queue output")->addSimpleElement(message, ADD_BOTTOM);
|
||||
// <FS:Ansariel> Improve log output
|
||||
//getChild<LLScrollListCtrl>("queue output")->addSimpleElement(message, ADD_BOTTOM);
|
||||
LLScrollListCtrl* ctrl = getChild<LLScrollListCtrl>("queue output");
|
||||
BOOL is_at_end = ctrl->getScrollbar()->isAtEnd();
|
||||
ctrl->addSimpleElement(message, ADD_BOTTOM);
|
||||
if (is_at_end)
|
||||
{
|
||||
ctrl->setScrollPos(ctrl->getScrollPos() + 1);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -393,10 +408,7 @@ void LLFloaterCompileQueue::handleScriptRetrieval(LLVFS *vfs, const LLUUID& asse
|
|||
// put a EOS at the end
|
||||
script_data[file_length] = 0;
|
||||
|
||||
LLStringUtil::format_map_t args;
|
||||
args["SCRIPT"] = data->mItem->getName();
|
||||
LLFloaterCompileQueue::scriptLogMessage(data, LLTrans::getString("CompileQueuePreprocessing", args));
|
||||
|
||||
queue->addProcessingMessage("CompileQueuePreprocessing", LLSD().with("SCRIPT", data->mItem->getName()));
|
||||
queue->mLSLProc->preprocess_script(assetId, data, type, LLStringExplicit(&script_data[0]));
|
||||
}
|
||||
result["preproc"] = true;
|
||||
|
|
@ -616,7 +628,7 @@ bool LLFloaterCompileQueue::processScript(LLHandle<LLFloaterCompileQueue> hfloat
|
|||
// <FS:Ansariel> Translation fixes
|
||||
LLStringUtil::format_map_t args;
|
||||
args["OBJECT_NAME"] = inventory->getName();
|
||||
floater->addStringMessage( floater->getString( "CompileSuccess", args ) );
|
||||
floater->addStringMessage(floater->getString("CompileSuccess", args));
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
else
|
||||
|
|
@ -659,8 +671,14 @@ bool LLFloaterCompileQueue::startQueue()
|
|||
|
||||
LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpGet(lookup_url,
|
||||
success, failure);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
// <FS:Ansariel> FIRE-20765: Recompile scripts not working on OpenSim
|
||||
else
|
||||
{
|
||||
processExperienceIdResults(LLSD(), getKey().asUUID());
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -1031,7 +1049,7 @@ public:
|
|||
args["OBJECT_NAME"] = getScriptName();
|
||||
std::string message = queue->getString("Compiling", args);
|
||||
|
||||
queue->getChild<LLScrollListCtrl>("queue output")->addSimpleElement(message, ADD_BOTTOM);
|
||||
queue->addStringMessage(message);
|
||||
}
|
||||
|
||||
return LLBufferedAssetUploadInfo::prepareUpload();
|
||||
|
|
@ -1049,7 +1067,6 @@ private:
|
|||
/*static*/
|
||||
void LLFloaterCompileQueue::finishLSLUpload(LLUUID itemId, LLUUID taskId, LLUUID newAssetId, LLSD response, std::string scriptName, LLUUID queueId)
|
||||
{
|
||||
|
||||
LLFloaterCompileQueue* queue = LLFloaterReg::findTypedInstance<LLFloaterCompileQueue>("compile_queue", LLSD(queueId));
|
||||
if (queue)
|
||||
{
|
||||
|
|
@ -1057,9 +1074,10 @@ void LLFloaterCompileQueue::finishLSLUpload(LLUUID itemId, LLUUID taskId, LLUUID
|
|||
if (response["compiled"])
|
||||
{
|
||||
std::string message = std::string("Compilation of \"") + scriptName + std::string("\" succeeded");
|
||||
|
||||
queue->getChild<LLScrollListCtrl>("queue output")->addSimpleElement(message, ADD_BOTTOM);
|
||||
LL_INFOS() << message << LL_ENDL;
|
||||
LLStringUtil::format_map_t args;
|
||||
args["OBJECT_NAME"] = scriptName;
|
||||
queue->addStringMessage(queue->getString("CompileSuccess", args));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1069,12 +1087,10 @@ void LLFloaterCompileQueue::finishLSLUpload(LLUUID itemId, LLUUID taskId, LLUUID
|
|||
{
|
||||
std::string str = line->asString();
|
||||
str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
|
||||
|
||||
queue->getChild<LLScrollListCtrl>("queue output")->addSimpleElement(str, ADD_BOTTOM);
|
||||
queue->addStringMessage(str);
|
||||
}
|
||||
LL_INFOS() << response["errors"] << LL_ENDL;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1100,18 +1116,15 @@ void LLFloaterCompileQueue::scriptPreprocComplete(const LLUUID& asset_id, LLScri
|
|||
LLViewerObject* object = gObjectList.findObject(data->mTaskId);
|
||||
if (object)
|
||||
{
|
||||
std::string scriptName = data->mItem->getName();
|
||||
std::string url = object->getRegion()->getCapability("UpdateScriptTask");
|
||||
if (!url.empty())
|
||||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
args["SCRIPT"] = data->mItem->getName();
|
||||
LLFloaterCompileQueue::scriptLogMessage(data, LLTrans::getString("CompileQueuePreprocessingComplete", args));
|
||||
|
||||
std::string scriptName = data->mItem->getName();
|
||||
|
||||
queue->addProcessingMessage("CompileQueuePreprocessingComplete", LLSD().with("SCRIPT", scriptName));
|
||||
|
||||
LLBufferedAssetUploadInfo::taskUploadFinish_f proc = boost::bind(&LLFloaterCompileQueue::finishLSLUpload, _1, _2, _3, _4,
|
||||
scriptName, data->mQueueID);
|
||||
|
||||
|
||||
LLResourceUploadInfo::ptr_t uploadInfo( new LLScriptAssetUploadWithId(
|
||||
data->mTaskId,
|
||||
data->mItem->getUUID(),
|
||||
|
|
@ -1127,7 +1140,7 @@ void LLFloaterCompileQueue::scriptPreprocComplete(const LLUUID& asset_id, LLScri
|
|||
}
|
||||
else
|
||||
{
|
||||
LLFloaterCompileQueue::scriptLogMessage(data, LLTrans::getString("CompileQueueServiceUnavailable") + (": ") + data->mItem->getName());
|
||||
queue->addStringMessage(LLTrans::getString("CompileQueueServiceUnavailable"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1144,7 +1157,7 @@ void LLFloaterCompileQueue::scriptLogMessage(LLScriptQueueData* data, std::strin
|
|||
LLFloaterCompileQueue* queue = LLFloaterReg::findTypedInstance<LLFloaterCompileQueue>("compile_queue", data->mQueueID);
|
||||
if (queue)
|
||||
{
|
||||
queue->getChild<LLScrollListCtrl>("queue output")->addSimpleElement(message, ADD_BOTTOM);
|
||||
queue->addStringMessage(message);
|
||||
}
|
||||
}
|
||||
// </FS:KC>
|
||||
|
|
|
|||
|
|
@ -1634,8 +1634,10 @@ void LLFloaterTools::getMediaState()
|
|||
mNeedMediaTitle = false;
|
||||
}
|
||||
|
||||
getChildView("media_tex")->setEnabled(bool_has_media && editable);
|
||||
getChildView("edit_media")->setEnabled(bool_has_media && LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo && editable );
|
||||
// <FS:Ansariel> Don't exist as of 30-01-2017
|
||||
//getChildView("media_tex")->setEnabled(bool_has_media && editable);
|
||||
//getChildView("edit_media")->setEnabled(bool_has_media && LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo && editable );
|
||||
// </FS:Ansariel>
|
||||
getChildView("delete_media")->setEnabled(bool_has_media && editable );
|
||||
getChildView("add_media")->setEnabled(editable);
|
||||
// TODO: display a list of all media on the face - use 'identical' flag
|
||||
|
|
@ -1664,8 +1666,10 @@ void LLFloaterTools::getMediaState()
|
|||
}
|
||||
}
|
||||
|
||||
getChildView("media_tex")->setEnabled(TRUE);
|
||||
getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
|
||||
// <FS:Ansariel> Don't exist as of 30-01-2017
|
||||
//getChildView("media_tex")->setEnabled(TRUE);
|
||||
//getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
|
||||
// </FS:Ansariel>
|
||||
getChildView("delete_media")->setEnabled(TRUE);
|
||||
getChildView("add_media")->setEnabled(editable);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,6 +179,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
|||
mCommitCallbackRegistrar.add("Inventory.AttachObject", boost::bind(&LLInventoryPanel::attachObject, this, _2));
|
||||
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.CustomAction", boost::bind(&LLInventoryPanel::onCustomAction, this, _2)); // <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1608,6 +1609,17 @@ void LLInventoryPanel::doToSelected(const LLSD& userdata)
|
|||
return;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
void LLInventoryPanel::onCustomAction(const LLSD& userdata)
|
||||
{
|
||||
LLPanelMainInventory* main_panel = getParentByType<LLPanelMainInventory>();
|
||||
if (main_panel)
|
||||
{
|
||||
main_panel->doCustomAction(userdata);
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
BOOL LLInventoryPanel::handleKeyHere( KEY key, MASK mask )
|
||||
{
|
||||
BOOL handled = FALSE;
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ public:
|
|||
|
||||
// Callbacks
|
||||
void doToSelected(const LLSD& userdata);
|
||||
void onCustomAction(const LLSD& userdata); // <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
void doCreate(const LLSD& userdata);
|
||||
bool beginIMSession();
|
||||
bool attachObject(const LLSD& userdata);
|
||||
|
|
|
|||
|
|
@ -101,6 +101,8 @@ public:
|
|||
void updateFilterDropdown(const LLInventoryFilter* filter);
|
||||
// </FS:Zi> Filter dropdown
|
||||
|
||||
void doCustomAction(const LLSD& userdata) { onCustomAction(userdata); } // <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
|
||||
// <FS:Ansariel> FIRE-12808: Don't save filters during settings restore
|
||||
static bool sSaveFilters;
|
||||
|
||||
|
|
|
|||
|
|
@ -1655,6 +1655,7 @@ LLPanelObjectInventory::LLPanelObjectInventory(const LLPanelObjectInventory::Par
|
|||
mCommitCallbackRegistrar.add("Inventory.AttachObject", boost::bind(&do_nothing));
|
||||
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&do_nothing));
|
||||
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.CustomAction", boost::bind(&do_nothing)); // <FS:Ansariel> Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
|
||||
}
|
||||
|
||||
// Destroys the object
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ LLSyntaxIdLSL::LLSyntaxIdLSL()
|
|||
, mCapabilityURL(std::string())
|
||||
, mFilePath(LL_PATH_APP_SETTINGS)
|
||||
, mSyntaxId(LLUUID())
|
||||
, mInitialized(false)
|
||||
{
|
||||
loadDefaultKeywordsIntoLLSD();
|
||||
mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLSyntaxIdLSL::handleRegionChanged, this));
|
||||
|
|
@ -179,6 +180,7 @@ void LLSyntaxIdLSL::cacheFile(const std::string &fileSpec, const LLSD& content_r
|
|||
//-----------------------------------------------------------------------------
|
||||
void LLSyntaxIdLSL::initialize()
|
||||
{
|
||||
if(mInitialized) return;
|
||||
if (mSyntaxId.isNull())
|
||||
{
|
||||
loadDefaultKeywordsIntoLLSD();
|
||||
|
|
@ -213,6 +215,7 @@ void LLSyntaxIdLSL::initialize()
|
|||
LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
|
||||
loadDefaultKeywordsIntoLLSD();
|
||||
}
|
||||
mInitialized = true;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -303,6 +306,7 @@ void LLSyntaxIdLSL::handleRegionChanged()
|
|||
{
|
||||
buildFullFileSpec();
|
||||
fetchKeywordsFile(mFullFileSpec);
|
||||
mInitialized = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ private:
|
|||
ELLPath mFilePath;
|
||||
LLUUID mSyntaxId;
|
||||
LLSD mKeywordsXml;
|
||||
bool mInitialized;
|
||||
|
||||
public:
|
||||
LLSyntaxIdLSL();
|
||||
|
|
|
|||
|
|
@ -421,7 +421,6 @@ void LLMenuParcelObserver::changed()
|
|||
static LLView* land_buy_pass_pie = gMenuHolder->getChildView("Land Buy Pass Pie");
|
||||
static LLView* land_buy = gMenuHolder->getChildView("Land Buy");
|
||||
static LLView* land_buy_pie = gMenuHolder->getChildView("Land Buy Pie");
|
||||
static LLView* buy_land = gMenuHolder->getChildView("Buy Land...");
|
||||
|
||||
BOOL pass_buyable = LLPanelLandGeneral::enableBuyPass(NULL) && parcel->getOwnerID() != gAgentID;
|
||||
land_buy_pass->setEnabled(pass_buyable);
|
||||
|
|
@ -430,7 +429,6 @@ void LLMenuParcelObserver::changed()
|
|||
BOOL buyable = enable_buy_land(NULL);
|
||||
land_buy->setEnabled(buyable);
|
||||
land_buy_pie->setEnabled(buyable);
|
||||
buy_land->setEnabled(buyable);
|
||||
// </FS:Ansariel> FIRE-4454: Cache controls because of performance reasons
|
||||
}
|
||||
|
||||
|
|
@ -5858,24 +5856,29 @@ void handle_take()
|
|||
if(category_id.isNull())
|
||||
{
|
||||
category_id = node->mFolderID;
|
||||
LL_DEBUGS("HandleTake") << "Node destination folder ID = " << category_id.asString() << LL_ENDL;
|
||||
}
|
||||
else if(category_id != node->mFolderID)
|
||||
{
|
||||
// we have found two potential destinations. break out
|
||||
// now and send to the default location.
|
||||
category_id.setNull();
|
||||
LL_DEBUGS("HandleTake") << "Conflicting node destination folders - setting to null UUID" << LL_ENDL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(category_id.notNull())
|
||||
{
|
||||
LL_DEBUGS("HandleTake") << "Selected destination folder ID: " << category_id.asString() << " - checking if category exists in inventory model" << LL_ENDL;
|
||||
|
||||
// there is an unambiguous destination. See if this agent has
|
||||
// such a location and it is not in the trash or library
|
||||
if(!gInventory.getCategory(category_id))
|
||||
{
|
||||
// nope, set to NULL.
|
||||
category_id.setNull();
|
||||
LL_DEBUGS("HandleTake") << "Destination folder not found in inventory model - setting to null UUID" << LL_ENDL;
|
||||
}
|
||||
if(category_id.notNull())
|
||||
{
|
||||
|
|
@ -5884,12 +5887,14 @@ void handle_take()
|
|||
if(category_id == trash || gInventory.isObjectDescendentOf(category_id, trash))
|
||||
{
|
||||
category_id.setNull();
|
||||
LL_DEBUGS("HandleTake") << "Destination folder is descendent of trash folder - setting to null UUID" << LL_ENDL;
|
||||
}
|
||||
|
||||
// check library
|
||||
if(gInventory.isObjectDescendentOf(category_id, gInventory.getLibraryRootFolderID()))
|
||||
{
|
||||
category_id.setNull();
|
||||
LL_DEBUGS("HandleTake") << "Destination folder is descendent of library folder - setting to null UUID" << LL_ENDL;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -5897,9 +5902,11 @@ void handle_take()
|
|||
if(category_id.isNull())
|
||||
{
|
||||
category_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OBJECT);
|
||||
LL_DEBUGS("HandleTake") << "Destination folder = null UUID - determined default category: " << category_id.asString() << LL_ENDL;
|
||||
}
|
||||
LLSD payload;
|
||||
payload["folder_id"] = category_id;
|
||||
LL_DEBUGS("HandleTake") << "Final destination folder UUID being sent to sim: " << category_id.asString() << LL_ENDL;
|
||||
|
||||
LLNotification::Params params("ConfirmObjectTakeLock");
|
||||
params.payload(payload);
|
||||
|
|
|
|||
|
|
@ -252,7 +252,10 @@ bool LLWeb::useExternalBrowser(const std::string &url)
|
|||
up.extractParts();
|
||||
std::string uri_string = up.host();
|
||||
|
||||
boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com)$", boost::regex::perl|boost::regex::icase);
|
||||
// <FS:Ansariel> FIRE-20796: Grid check status page ignores opening SL links in internal browser setting
|
||||
//boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com)$", boost::regex::perl|boost::regex::icase);
|
||||
boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com|secondlifegrid.net)$", boost::regex::perl|boost::regex::icase);
|
||||
// </FS:Ansariel>
|
||||
boost::match_results<std::string::const_iterator> matches;
|
||||
return !(boost::regex_search(uri_string, matches, pattern));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -92,10 +92,7 @@
|
|||
label="Reset"
|
||||
left_delta="233"
|
||||
name="current_url_reset_btn"
|
||||
width="110" >
|
||||
<button.commit_callback
|
||||
function="Media.ResetCurrentUrl"/>
|
||||
</button>
|
||||
width="110"/>
|
||||
<check_box
|
||||
bottom_delta="-25"
|
||||
enabled="true"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
<string name="SUPPORT_SITE">Second Life Support Portal</string>
|
||||
<string name="DOWNLOAD_URL">http://www.firestormviewer.org/downloads</string>
|
||||
<string name="CURRENT_GRID"/> <!-- Will be set in fsgridhandler.cpp / llviewernetwork.cpp -->
|
||||
<string name="VIEWER_GENERATION">Viewer 5</string>
|
||||
|
||||
<!-- starting up -->
|
||||
<string name="StartupDetectingHardware">Detecting hardware...</string>
|
||||
|
|
@ -3043,7 +3044,7 @@ Try enclosing path to the editor with double quotes.
|
|||
<string name="mode_unknown">Unknown Mode</string>
|
||||
<string name="mode_settings_firestorm.xml">Firestorm</string>
|
||||
<string name="mode_settings_phoenix.xml">Phoenix</string>
|
||||
<string name="mode_settings_v3.xml">Viewer 5</string>
|
||||
<string name="mode_settings_v3.xml">[VIEWER_GENERATION]</string>
|
||||
<string name="mode_settings_hybrid.xml">Hybrid</string>
|
||||
<string name="mode_settings_latency.xml">Latency</string>
|
||||
<string name="mode_settings_text.xml">Text</string>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
<combo_box name="mode_combo" tool_tip="Selecciona con qué estilo de visor estás más familiarizado para establecer tus opciones por defecto apropiadamente.">
|
||||
<combo_box.item label="Firestorm" name="Firestorm"/>
|
||||
<combo_box.item label="Phoenix" name="Phoenix"/>
|
||||
<combo_box.item label="Viewer 5" name="V3"/>
|
||||
<combo_box.item label="Híbrido" name="Hybrid"/>
|
||||
</combo_box>
|
||||
</layout_panel>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@
|
|||
<combo_box tool_tip="基本設定を適切に行うために、一番慣れているビューワのタイプを選択して下さい。" name="mode_combo">
|
||||
<combo_box.item label="Firestorm" name="Firestorm"/>
|
||||
<combo_box.item label="Phoenix" name="Phoenix"/>
|
||||
<combo_box.item label="Viewer 5" name="V3"/>
|
||||
<combo_box.item label="Hybrid" name="Hybrid"/>
|
||||
<combo_box.item label="Latency" name="Latency"/>
|
||||
</combo_box>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
<combo_box tool_tip="基本設定を適切に行うために、一番慣れているビューワのタイプを選択して下さい。" name="mode_combo">
|
||||
<combo_box.item label="Firestorm" name="Firestorm" />
|
||||
<combo_box.item label="Phoenix" name="Phoenix" />
|
||||
<combo_box.item label="Viewer 5" name="V3" />
|
||||
<combo_box.item label="ハイブリッド" name="Hybrid" />
|
||||
<combo_box.item label="Latency" name="Latency" />
|
||||
<combo_box.item label="テキスト" name="Text" />
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@
|
|||
/>
|
||||
<combo_box.item
|
||||
name="V3"
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
value="settings_v3.xml"
|
||||
/>
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ tool_tip="The account name you chose when you registered, like bobsmith420 or St
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@
|
|||
name="Phoenix"
|
||||
value="settings_phoenix.xml" />
|
||||
<combo_box.item
|
||||
label="Viewer 5"
|
||||
label="[VIEWER_GENERATION]"
|
||||
name="V3"
|
||||
value="settings_v3.xml" />
|
||||
<combo_box.item
|
||||
|
|
|
|||
Loading…
Reference in New Issue