diff --git a/autobuild.xml b/autobuild.xml index 9a6cfa0650..66d761f162 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1847,9 +1847,9 @@ archive hash - 06e6ada281c0cf37ced1aad58c3e9bb4 + 96d11160278115f6d468171f67aa7a4e url - file:///opt/firestorm/kdu-7.8.0-linux-201604022334-r52.tar.bz2 + file:///opt/firestorm/kdu-7.9.0-linux-201701222135-r58.tar.bz2 name linux @@ -1871,9 +1871,9 @@ archive hash - 15da99a3c7dbe2b56a19baced0f9bd54 + 26cc3fbe6a3b9885d697aa639d17a20a url - file:///c:/cygwin/opt/firestorm/kdu-7.8.0-windows-201604022251-r52.tar.bz2 + file:///c:/cygwin/opt/firestorm/kdu-7.9.0-windows-201701221929-r58.tar.bz2 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 @@ + + + ambient + + 0.91497802734375 + 0.86969661712646484 + 0.86627197265625 + 0.30499267578125 + + blue_density + + 0.31920000910758972 + 0.25909334421157837 + 0.24079999327659607 + 0.15960000455379486 + + blue_horizon + + 0.31920000910758972 + 0.25909334421157837 + 0.24079999327659607 + 0.15960000455379486 + + cloud_color + + 0.56640625 + 0.56640625 + 0.56640625 + 0.56640625 + + cloud_pos_density1 + + 0.71999996900558472 + 0.81000000238418579 + 0.44999998807907104 + 1 + + cloud_pos_density2 + + 0 + 0.23999999463558197 + 0.20999999344348907 + 1 + + cloud_scale + + 0.99999994039535522 + 0 + 0 + 1 + + cloud_scroll_rate + + 16.219999313354492 + 4.7599997520446777 + + cloud_shadow + + 0.2800000011920929 + 0 + 0 + 1 + + density_multiplier + + 0.00089999998454004526 + 0 + 0 + 1 + + distance_multiplier + + 1.3999999761581421 + 0 + 0 + 1 + + east_angle + 0 + enable_cloud_scroll + + 0 + 0 + + gamma + + 1.7699999809265137 + 0 + 0 + 1 + + glow + + 20 + 0.0010000000474974513 + -0 + 1 + + haze_density + + 1.1399999856948853 + 0 + 0 + 1 + + haze_horizon + + 1 + 0.19915600121021271 + 0.19915600121021271 + 1 + + lightnorm + + 0 + 0.32144004106521606 + -0.946929931640625 + 1 + + max_y + + 240 + 0 + 0 + 1 + + preset_num + 22 + star_brightness + 0 + sun_angle + 5.9559354782104492 + sunlight_color + + 0.63410770893096924 + 0.50144779682159424 + 0.45536589622497559 + 0.21136923134326935 + + + 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 @@ />