diff --git a/autobuild.xml b/autobuild.xml
index 9a6cfa0650..66d761f162 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1847,9 +1847,9 @@
archive
name
linux
@@ -1871,9 +1871,9 @@
archive
name
windows
diff --git a/indra/llmessage/lldatapacker.cpp b/indra/llmessage/lldatapacker.cpp
index 3510f93805..50ee4d11f8 100644
--- a/indra/llmessage/lldatapacker.cpp
+++ b/indra/llmessage/lldatapacker.cpp
@@ -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;
}
diff --git a/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Headshots.xml b/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Headshots.xml
new file mode 100644
index 0000000000..e9a8f065e5
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/StrawberrySingh%2Ecom%20%2D%20Headshots.xml
@@ -0,0 +1,141 @@
+
+
+
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index d758ee9de9..7aee8b2ff6 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -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"); // Viewer download url
+ default_trans_args.insert("VIEWER_GENERATION"); // 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); // 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() ;
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 9adc03ee78..cc7003dc5c 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -275,7 +275,10 @@ bool LLFloaterScriptQueue::onScriptModifyConfirmation(const LLSD& notification,
args["[COUNT]"] = llformat ("%d", mObjectList.size());
buffer = getString ("Starting", args);
- getChild("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
+ // Improve log output
+ //getChild("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
+ addStringMessage(buffer);
+ //
return startQueue();
}
@@ -284,12 +287,24 @@ void LLFloaterScriptQueue::addProcessingMessage(const std::string &message, cons
{
std::string buffer(LLTrans::getString(message, args));
- getChild("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
+ // Improve log output
+ //getChild("queue output")->addSimpleElement(buffer, ADD_BOTTOM);
+ addStringMessage(buffer);
+ //
}
void LLFloaterScriptQueue::addStringMessage(const std::string &message)
{
- getChild("queue output")->addSimpleElement(message, ADD_BOTTOM);
+ // Improve log output
+ //getChild("queue output")->addSimpleElement(message, ADD_BOTTOM);
+ LLScrollListCtrl* ctrl = getChild("queue output");
+ BOOL is_at_end = ctrl->getScrollbar()->isAtEnd();
+ ctrl->addSimpleElement(message, ADD_BOTTOM);
+ if (is_at_end)
+ {
+ ctrl->setScrollPos(ctrl->getScrollPos() + 1);
+ }
+ //
}
@@ -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 hfloat
// Translation fixes
LLStringUtil::format_map_t args;
args["OBJECT_NAME"] = inventory->getName();
- floater->addStringMessage( floater->getString( "CompileSuccess", args ) );
+ floater->addStringMessage(floater->getString("CompileSuccess", args));
//
}
else
@@ -659,8 +671,14 @@ bool LLFloaterCompileQueue::startQueue()
LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpGet(lookup_url,
success, failure);
- return TRUE;
+ return true;
}
+ // FIRE-20765: Recompile scripts not working on OpenSim
+ else
+ {
+ processExperienceIdResults(LLSD(), getKey().asUUID());
+ }
+ //
}
return true;
@@ -1031,7 +1049,7 @@ public:
args["OBJECT_NAME"] = getScriptName();
std::string message = queue->getString("Compiling", args);
- queue->getChild("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("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("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("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("compile_queue", data->mQueueID);
if (queue)
{
- queue->getChild("queue output")->addSimpleElement(message, ADD_BOTTOM);
+ queue->addStringMessage(message);
}
}
//
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index fca08e1629..92f25402fa 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -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 );
+ // 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 );
+ //
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);
+ // Don't exist as of 30-01-2017
+ //getChildView("media_tex")->setEnabled(TRUE);
+ //getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
+ //
getChildView("delete_media")->setEnabled(TRUE);
getChildView("add_media")->setEnabled(editable);
}
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 2437f01d8b..20e065badc 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -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)); // Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
}
@@ -1608,6 +1609,17 @@ void LLInventoryPanel::doToSelected(const LLSD& userdata)
return;
}
+// Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
+void LLInventoryPanel::onCustomAction(const LLSD& userdata)
+{
+ LLPanelMainInventory* main_panel = getParentByType();
+ if (main_panel)
+ {
+ main_panel->doCustomAction(userdata);
+ }
+}
+//
+
BOOL LLInventoryPanel::handleKeyHere( KEY key, MASK mask )
{
BOOL handled = FALSE;
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 5d9f87c035..eb8d874cbc 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -207,6 +207,7 @@ public:
// Callbacks
void doToSelected(const LLSD& userdata);
+ void onCustomAction(const LLSD& userdata); // Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
void doCreate(const LLSD& userdata);
bool beginIMSession();
bool attachObject(const LLSD& userdata);
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index aec7d44194..8a46ac3c68 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -101,6 +101,8 @@ public:
void updateFilterDropdown(const LLInventoryFilter* filter);
// Filter dropdown
+ void doCustomAction(const LLSD& userdata) { onCustomAction(userdata); } // Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
+
// FIRE-12808: Don't save filters during settings restore
static bool sSaveFilters;
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index 072b32c481..3ae8440d1b 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -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)); // Prevent warning "No callback found for: 'Inventory.CustomAction' in control: Find Links"
}
// Destroys the object
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 9e54c521b5..10a9dee415 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -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;
}
}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 0afa6dc04b..3551622193 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -65,6 +65,7 @@ private:
ELLPath mFilePath;
LLUUID mSyntaxId;
LLSD mKeywordsXml;
+ bool mInitialized;
public:
LLSyntaxIdLSL();
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 349f8a377f..8f942db621 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -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);
// 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);
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 26b1b968b3..ec15b913fb 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -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);
+ // 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);
+ //
boost::match_results matches;
return !(boost::regex_search(uri_string, matches, pattern));
}
diff --git a/indra/newview/skins/default/xui/en/panel_fs_login.xml b/indra/newview/skins/default/xui/en/panel_fs_login.xml
index 7f864deb9c..1acc8beede 100644
--- a/indra/newview/skins/default/xui/en/panel_fs_login.xml
+++ b/indra/newview/skins/default/xui/en/panel_fs_login.xml
@@ -296,7 +296,7 @@
name="Phoenix"
value="settings_phoenix.xml" />
-
-
+ width="110"/>
Second Life Support Portal
http://www.firestormviewer.org/downloads
+ Viewer 5
Detecting hardware...
@@ -3043,7 +3044,7 @@ Try enclosing path to the editor with double quotes.
Unknown Mode
Firestorm
Phoenix
- Viewer 5
+ [VIEWER_GENERATION]
Hybrid
Latency
Text
diff --git a/indra/newview/skins/default/xui/es/panel_fs_login.xml b/indra/newview/skins/default/xui/es/panel_fs_login.xml
index acbadb6c17..3ab215e958 100644
--- a/indra/newview/skins/default/xui/es/panel_fs_login.xml
+++ b/indra/newview/skins/default/xui/es/panel_fs_login.xml
@@ -49,7 +49,6 @@
-
diff --git a/indra/newview/skins/default/xui/ja/panel_fs_login.xml b/indra/newview/skins/default/xui/ja/panel_fs_login.xml
index cfd23cbf5a..413eb4a828 100644
--- a/indra/newview/skins/default/xui/ja/panel_fs_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_fs_login.xml
@@ -51,7 +51,6 @@
-
diff --git a/indra/newview/skins/default/xui/ja/panel_fs_nui_login.xml b/indra/newview/skins/default/xui/ja/panel_fs_nui_login.xml
index f748fdd37d..5af86214f2 100644
--- a/indra/newview/skins/default/xui/ja/panel_fs_nui_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_fs_nui_login.xml
@@ -49,7 +49,6 @@
-
diff --git a/indra/newview/skins/latency/xui/en/panel_fs_login.xml b/indra/newview/skins/latency/xui/en/panel_fs_login.xml
index 5ebb33958f..4401f7dbea 100644
--- a/indra/newview/skins/latency/xui/en/panel_fs_login.xml
+++ b/indra/newview/skins/latency/xui/en/panel_fs_login.xml
@@ -311,7 +311,7 @@
/>