Merge #2 with lgpl.

master
Nicky 2017-02-06 12:01:13 +01:00
commit 9c245edb37
26 changed files with 395 additions and 161 deletions

View File

@ -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>

View File

@ -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;
}

View File

@ -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>

View File

@ -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() ;

View File

@ -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>

View File

@ -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);
}

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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;
}
}

View File

@ -65,6 +65,7 @@ private:
ELLPath mFilePath;
LLUUID mSyntaxId;
LLSD mKeywordsXml;
bool mInitialized;
public:
LLSyntaxIdLSL();

View File

@ -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);

View File

@ -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));
}

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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" />

View File

@ -311,7 +311,7 @@
/>
<combo_box.item
name="V3"
label="Viewer 5"
label="[VIEWER_GENERATION]"
value="settings_v3.xml"
/>
<combo_box.item

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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