diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index f56452fb47..3b45984df8 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -44,15 +44,28 @@ jobs: run: echo "FS_GRID=-DOPENSIM:BOOL=ON" >> $GITHUB_ENV shell: bash - - name: Set channel name - if: matrix.addrsize == '64' - run: echo "FS_RELEASE_CHAN=Releasex64" >> $GITHUB_ENV + - name: find channel from Branch name + run: | + if [[ "${{ github.ref_name }}" == *"Release"* ]]; then + FS_RELEASE_CHAN="Release" + else + FS_RELEASE_CHAN="Beta" + fi + if [[ "${{ matrix.addrsize }}" == "64" ]]; then + FS_RELEASE_CHAN="${FS_RELEASE_CHAN}x64" + fi + echo "FS_RELEASE_CHAN=\"${FS_RELEASE_CHAN}\"" >> $GITHUB_ENV + echo "Building for channel ${FS_RELEASE_CHAN}" shell: bash - - name: Set channel name for 32 bit - if: matrix.addrsize == '32' - run: echo "FS_RELEASE_CHAN=Release" >> $GITHUB_ENV - shell: bash + # - name: Set channel name + # if: matrix.addrsize == '64' + # run: echo "FS_RELEASE_CHAN=Releasex64" >> $GITHUB_ENV + # shell: bash + + # - name: Set channel name for 32 bit + # if: matrix.addrsize == '32' + # shell: bash - name: Set SL flag if: matrix.grid == 'sl' diff --git a/.gitignore b/.gitignore index f528053f82..08870fa60c 100755 --- a/.gitignore +++ b/.gitignore @@ -19,12 +19,8 @@ debian/files debian/secondlife-appearance-utility* debian/secondlife-viewer* indra/.distcc -build-vc80/ -build-vc100/ -build-vc120/ -build-vc[0-9]*-32*/ -build-vc[0-9]*-64*/ -build-vc160-64/ +build-vc[0-9]*-32** +build-vc[0-9]*-64** indra/CMakeFiles indra/build-vc[0-9]* indra/lib/mono/1.0/*.dll diff --git a/autobuild.xml b/autobuild.xml index 86c7be0f17..909ba38ec4 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1098,11 +1098,11 @@ archive hash - a45bb657d668b7f1b4fa4c88eb81a80a + e610f49fa7ed5b10b0cc6409b9bf4afc hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.02.09-linux64-222891103.tar.bz2 + file:///opt/firestorm/fmodstudio-2.02.11-linux64-230190114.tar.bz2 name linux64 @@ -1112,11 +1112,11 @@ archive hash - 6dd278518e791dbc2841e337feb295db + 8b2fff1a0a7e057da99fdade1f9e82ff hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.09-windows-222890940.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.11-windows-230181802.tar.bz2 name windows @@ -1126,18 +1126,18 @@ archive hash - 1b7ced6f750b12f0d014556705019534 + 6cf457e2268ed83326c6d77f3475e8f5 hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.09-windows64-222890941.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.11-windows64-230181820.tar.bz2 name windows64 version - 2.02.09 + 2.02.11 fontconfig diff --git a/fsutils/download_list.py b/fsutils/download_list.py index 5981e7c511..0747ae7e4c 100644 --- a/fsutils/download_list.py +++ b/fsutils/download_list.py @@ -154,7 +154,7 @@ for dir in dirs: full_file = os.path.join(args.path_to_directory, dir, file) md5 = get_md5(full_file) base_name = os.path.basename(file) - if "-Release-" in base_name: + if "-Release-" in base_name or "-Beta-" in base_name: wordsize = "32" else: wordsize = "64" @@ -191,20 +191,24 @@ for dir in dirs: platform = f"{platforms_printable[dir]}" for grid in ["SL", "OS"]: grid_printable = f"{grids_printable[grid]}" - print (f"{platform} for {grid_printable} ({wordsize}-bit)") - print ( "{}/{}/{}".format(download_root,dir,os.path.basename(file_dict[f"{grid}{dir}{wordsize}"])) ) - print () - print ( "MD5: {}".format(md5_dict[f"{grid}{dir}{wordsize}"]) ) - print () - if(dir == "windows"): - # Need to do 32 bit as well - wordsize = "32" + try: print (f"{platform} for {grid_printable} ({wordsize}-bit)") print ( "{}/{}/{}".format(download_root,dir,os.path.basename(file_dict[f"{grid}{dir}{wordsize}"])) ) print () print ( "MD5: {}".format(md5_dict[f"{grid}{dir}{wordsize}"]) ) print () - wordsize = "64" + if(dir == "windows"): + # Need to do 32 bit as well + wordsize = "32" + print (f"{platform} for {grid_printable} ({wordsize}-bit)") + print ( "{}/{}/{}".format(download_root,dir,os.path.basename(file_dict[f"{grid}{dir}{wordsize}"])) ) + print () + print ( "MD5: {}".format(md5_dict[f"{grid}{dir}{wordsize}"]) ) + print () + wordsize = "64" + except KeyError: + print (f"{platform} for {grid_printable} ({wordsize}-bit) - NOT AVAILABLE") + print () print(''' -------------------------------------------------------------------------------------------------------''') diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 4b85523b2c..d0c32504a2 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -115,6 +115,9 @@ if(WINDOWS) elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019 set(MSVC_VER 140) set(MSVC_TOOLSET_VER 142) + elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022 + set(MSVC_VER 140) + set(MSVC_TOOLSET_VER 143) else (MSVC80) MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake") endif (MSVC80) @@ -253,8 +256,8 @@ elseif(LINUX) #libopenjpeg.so libuuid.so.16 libuuid.so.16.0.22 - libfontconfig.so.1.10.1 - libfontconfig.so.1 + #libfontconfig.so.1.10.1 # fontconfig and freetype should be taken from the + #libfontconfig.so.1 # user's system, and not be packaged with the viewer libaprutil-1.so.0 libapr-1.so.0 ) diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index 79159843e1..d3d42a6d72 100644 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -6,14 +6,14 @@ if (USESYSTEMLIBS) pkg_check_modules(FREETYPE REQUIRED freetype2) else (USESYSTEMLIBS) - use_prebuilt_binary(freetype) - set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) - set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2) # Also add freetype2 to search dir, or some includes will fail. - # Linux links this via UI.cmake - if( NOT LINUX ) + if (LINUX) # linux fontconfig and freetype should come + find_package(Freetype REQUIRED) # from the user's system + else (LINUX) # Linux links this via llwindow/CMakeLists + use_prebuilt_binary(freetype) + set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) + set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2) # Also add freetype2 to search dir, or some includes will fail. set(FREETYPE_LIBRARIES freetype) endif() - # endif (USESYSTEMLIBS) link_directories(${FREETYPE_LIBRARY_DIRS}) diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake index e00413b1a4..015600588e 100644 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -47,7 +47,7 @@ else (USESYSTEMLIBS) if (LINUX) set(UI_LIB_NAMES libfltk.a - libfreetype.a + # libfreetype.a # fontconfig and freetype should be taken from the user's system, and not be packaged with the viewer ) foreach(libname ${UI_LIB_NAMES}) diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake index 980b2a0fdc..4bada32021 100644 --- a/indra/cmake/ViewerMiscLibs.cmake +++ b/indra/cmake/ViewerMiscLibs.cmake @@ -4,7 +4,8 @@ include(Prebuilt) if (NOT USESYSTEMLIBS) if (LINUX) use_prebuilt_binary(libuuid) - use_prebuilt_binary(fontconfig) + find_package(Fontconfig REQUIRED) # fontconfig and freetype should be taken from the + # use_prebuilt_binary(fontconfig) # user's system, and not be packaged with the viewer endif (LINUX) use_prebuilt_binary(libhunspell) use_prebuilt_binary(slvoice) diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 45b3837730..1ae337979b 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -40,6 +40,12 @@ #include +// Disable C6011 code analyses warning for now popping up everywhere because of the LL_ENDL / LLERROR_CRASH macro +#if LL_WINDOWS +#pragma warning (disable : 6011) +#endif +// + // Supress some false positives of PVS Studio. // They are misleading as there is opossibly a pointr taken behid the array and that pointer is passed down. But it's never dereferenced. //-V:llassert_always:557 diff --git a/indra/llmessage/llproxy.cpp b/indra/llmessage/llproxy.cpp index 749e599c66..7e1e513ada 100644 --- a/indra/llmessage/llproxy.cpp +++ b/indra/llmessage/llproxy.cpp @@ -482,7 +482,7 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou apr_size_t expected_len = outlen; - handle->setBlocking(1000); + handle->setBlocking(100000); // extend the arbitrary timeout value to 100ms. this should be more than enough for most LAN proxies and plenty for a localhost rv = apr_socket_send(apr_socket, dataout, &outlen); if (APR_SUCCESS != rv) @@ -498,7 +498,7 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou rv = -1; } - ms_sleep(1); + // ms_sleep(1); // remove the unnecessary sleep. if (APR_SUCCESS == rv) { diff --git a/indra/llui/lltransutil.cpp b/indra/llui/lltransutil.cpp index 5da722a72b..ebbdae2e9a 100644 --- a/indra/llui/lltransutil.cpp +++ b/indra/llui/lltransutil.cpp @@ -45,7 +45,7 @@ bool LLTransUtil::parseStrings(const std::string& xml_filename, const std::setdumpCurrentDirectories(LLError::LEVEL_WARN); - LL_ERRS() << "Couldn't load string table " << xml_filename << ". Please reinstall viewer from https://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall." << LL_ENDL; + LL_ERRS() << "Couldn't load string table " << xml_filename << ". Please reinstall viewer from https://www.firestormviewer.org/choose-your-platform/ and contact https://www.firestormviewer.org/support if issue persists after reinstall." << LL_ENDL; return false; } diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 6fa501e58b..8d6c2f379e 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -67,6 +67,7 @@ set(viewer_HEADER_FILES # Libraries on which this library depends, needed for Linux builds # Sort by high-level to low-level if (LINUX) + find_package(Fontconfig REQUIRED) # fontconfig and freetype should be taken from the user's system set(llwindow_LINK_LIBRARIES ${LLCOMMON_LIBRARIES} ${LLIMAGE_LIBRARIES} @@ -77,8 +78,10 @@ if (LINUX) ${LLXML_LIBRARIES} ${UI_LIBRARIES} # for GTK sdl - libfontconfig.a # For FCInit and other FC* functions. - libfreetype.a + # libfontconfig.a # fontconfig and freetype should + # libfreetype.a # be taken from the user's system, + Freetype::Freetype # and not be packaged with + Fontconfig::Fontconfig # the viewer ) if( USE_SDL1 ) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 15aa203e28..3231305da1 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2267,18 +2267,17 @@ if (WINDOWS) # The following commented dependencies are determined at variably at build time. Can't do this here. ${CMAKE_SOURCE_DIR}/../etc/message.xml ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg - ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/llcommon.dll + # ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/llcommon.dll # Doesn't exist ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libapr-1.dll ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libaprutil-1.dll ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libapriconv-1.dll # Restore GLOD build dependencies ${SHARED_LIB_STAGING_DIR}/Release/glod.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/glod.dll - ${SHARED_LIB_STAGING_DIR}/Debug/glod.dll # - ${SHARED_LIB_STAGING_DIR}/Release/libcollada14dom22.dll - ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libcollada14dom22.dll - ${SHARED_LIB_STAGING_DIR}/Debug/libcollada14dom22-d.dll + #${SHARED_LIB_STAGING_DIR}/Release/libcollada14dom22.dll # Doesn't exist + #${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libcollada14dom22.dll # Doesn't exist + #${SHARED_LIB_STAGING_DIR}/Debug/libcollada14dom22-d.dll # Doesn't exist # Only copy OpenJPEG dll if needed #${SHARED_LIB_STAGING_DIR}/Release/openjp2.dll #${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/openjp2.dll @@ -2286,13 +2285,13 @@ if (WINDOWS) # ${SHARED_LIB_STAGING_DIR}/Release/libhunspell.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libhunspell.dll - ${SHARED_LIB_STAGING_DIR}/Debug/libhunspell.dll + # ${SHARED_LIB_STAGING_DIR}/Debug/libhunspell.dll # Doesn't exist ${SHARED_LIB_STAGING_DIR}/Release/uriparser.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/uriparser.dll - ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/SLVoice.exe - ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libsndfile-1.dll - ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxoal.dll - ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ca-bundle.crt + #${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/SLVoice.exe # Doesn't exist + #${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libsndfile-1.dll # Doesn't exist + #${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxoal.dll # Doesn't exist + #${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ca-bundle.crt # Doesn't exist ${GOOGLE_PERF_TOOLS_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt ${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt @@ -2334,7 +2333,7 @@ if (WINDOWS) list(APPEND COPY_INPUT_DEPENDENCIES ${SHARED_LIB_STAGING_DIR}/Release/fmod.dll ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll - ${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll + #${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll # Doesn't exist ) endif (FMODSTUDIO) diff --git a/indra/newview/fschathistory.cpp b/indra/newview/fschathistory.cpp index 2ea814e2f3..51d151b5e2 100644 --- a/indra/newview/fschathistory.cpp +++ b/indra/newview/fschathistory.cpp @@ -149,7 +149,8 @@ public: mNeedsTimeBox(true), mTimeBoxTextBox(NULL), mHeaderLayoutStack(NULL), - mAvatarNameCacheConnection() + mAvatarNameCacheConnection(), + mTime(0) {} static FSChatHistoryHeader* createInstance(const std::string& file_name) diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index b19e9ed9e6..8248e16087 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -57,7 +57,7 @@ exportMutliArchDRIPath() { ## Help fontconfig find its default configuration file, otherwise the viewer will stall ## with Fontconfig error: Cannot load default config file -export FONTCONFIG_PATH=/etc/fonts +# export FONTCONFIG_PATH=/etc/fonts if [ "`uname -m`" = "x86_64" ]; then echo '64-bit Linux detected.' diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 1005d77779..691589d39d 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2931,15 +2931,15 @@ bool LLAppViewer::initConfiguration() if (gDirUtilp->fileExists(settings_file_list)) { LL_ERRS() << "Cannot load default configuration file settings_files.xml. " - << "Please reinstall viewer from https://secondlife.com/support/downloads/ " - << "and contact https://support.secondlife.com if issue persists after reinstall." + << "Please reinstall viewer from https://www.firestormviewer.org/choose-your-platform/ " + << "and contact https://www.firestormviewer.org/support if issue persists after reinstall." << LL_ENDL; } else { LL_ERRS() << "Default configuration file settings_files.xml not found. " - << "Please reinstall viewer from https://secondlife.com/support/downloads/ " - << "and contact https://support.secondlife.com if issue persists after reinstall." + << "Please reinstall viewer from https://www.firestormviewer.org/choose-your-platform/ " + << "and contact https://www.firestormviewer.org/support if issue persists after reinstall." << LL_ENDL; } } diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index df3c50b2ba..bc24c25bd7 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -300,9 +300,9 @@ BOOL LLNameListCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask) { LLNameListItem* hit_item = dynamic_cast(hitItem(x, y)); LLFloater* floater = gFloaterView->getParentFloater(this); - if (floater && floater->isFrontmost() && hit_item) + if (floater && floater->isFrontmost() && hit_item && hit_item->isGroup()) // Fix wrong check { - if(hit_item->isGroup()) + //if(hit_item->isGroup()) // Fix wrong check { ContextMenuType prev_menu = getContextMenuType(); setContextMenu(MENU_GROUP); @@ -311,7 +311,9 @@ BOOL LLNameListCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask) return handled; } } - return LLScrollListCtrl::handleRightMouseDown(x, y, mask); + // Inherit from FSScrollListCtrl for additional features + //return LLScrollListCtrl::handleRightMouseDown(x, y, mask); + return FSScrollListCtrl::handleRightMouseDown(x, y, mask); } // public diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 3a2f16cc52..48dc4f547f 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -2235,7 +2235,7 @@ void LLPanelProfileSecondLife::onSaveDescriptionChanges() } // Restore UDP profiles #ifdef OPENSIM - else if(LLGridManager::getInstance()->isInOpenSim()) + else if (LLGridManager::getInstance()->isInOpenSim()) { if (getIsLoaded() && getSelfProfile()) { @@ -2482,7 +2482,7 @@ void LLPanelProfileSecondLife::onCommitProfileImage(const LLUUID& id) { // Make OpenSim profiles work again #ifdef OPENSIM - if(LLGridManager::getInstance()->isInOpenSim()) + if (LLGridManager::getInstance()->isInOpenSim()) { mImageId = id; // save immediately only if description changes are not pending. @@ -2870,7 +2870,7 @@ void LLPanelProfileFirstLife::onCommitPhoto(const LLUUID& id) { // Make OpenSim profiles work again #ifdef OPENSIM - if(LLGridManager::getInstance()->isInOpenSim()) + if (LLGridManager::getInstance()->isInOpenSim()) { mImageId = id; mImageId = id; @@ -2915,7 +2915,7 @@ void LLPanelProfileFirstLife::onSaveDescriptionChanges() } // Restore UDP profiles #ifdef OPENSIM - else if(LLGridManager::getInstance()->isInOpenSim()) + else if (LLGridManager::getInstance()->isInOpenSim()) { if (getIsLoaded() && getSelfProfile()) { @@ -3069,7 +3069,7 @@ void LLPanelProfileNotes::updateData() } // Restore UDO profiles #ifdef OPENSIM - else + else if(LLGridManager::instance().isInOpenSim()) { LLAvatarPropertiesProcessor::getInstance()->sendAvatarNotesRequest(avatar_id); } @@ -3132,6 +3132,14 @@ void LLPanelProfileNotes::onSaveNotesChanges() LLCoros::instance().launch("putAgentUserInfoCoro", boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("notes", mCurrentNotes))); } +// Restore UDO profiles +#ifdef OPENSIM + else if (LLGridManager::instance().isInOpenSim()) + { + LLAvatarPropertiesProcessor::getInstance()->sendNotes(getAvatarId(), mCurrentNotes); + } +#endif +// else { LL_WARNS("AvatarProperties") << "Failed to update profile data, no cap found" << LL_ENDL; @@ -3250,19 +3258,25 @@ void LLPanelProfile::updateData() // include 'inited' or 'data_provided' state to not rerequest if (!getStarted() && avatar_id.notNull()) { +// Restore UDP profiles +#ifdef OPENSIM + if (LLGridManager::instance().isInOpenSim()) + { + mPanelSecondlife->updateData(); + mPanelPicks->updateData(); + mPanelFirstlife->updateData(); + mPanelNotes->updateData(); + } + else +#endif + { +// setIsLoading(); mPanelSecondlife->setIsLoading(); mPanelPicks->setIsLoading(); mPanelFirstlife->setIsLoading(); mPanelNotes->setIsLoading(); -// Restore UDP profiles -#ifdef OPENSIM - mPanelSecondlife->updateData(); - mPanelPicks->updateData(); - mPanelFirstlife->updateData(); - mPanelNotes->updateData(); -#endif -// + } // restore udp profiles std::string cap_url = gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP); if (!cap_url.empty()) { @@ -3270,10 +3284,12 @@ void LLPanelProfile::updateData() boost::bind(request_avatar_properties_coro, cap_url, avatar_id)); } // Restore UDP profiles - else +#ifdef OPENSIM + else if (LLGridManager::instance().isInOpenSim()) { LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(avatar_id); } +#endif // } } @@ -3331,7 +3347,7 @@ void LLPanelProfile::commitUnsavedChanges() mPanelNotes->commitUnsavedChanges(); // restore UDP - this is effectvely the apply() method from the previous incarnation #ifdef OPENSIM - if ( (gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP).empty()) && getSelfProfile() ) + if (LLGridManager::instance().isInOpenSim() && (gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP).empty()) && getSelfProfile()) { //KC - Avatar data is spread over 3 different panels // collect data from the last 2 and give to the first to save diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 98a9b9a096..1b86eb5d7c 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1440,7 +1440,7 @@ bool LLTextureFetchWorker::doWork(S32 param) LL_WARNS(LOG_TXT) << "trying to seek a non-default texture on the sim. Bad!" << LL_ENDL; } setUrl(http_url + "/?texture_id=" + mID.asString().c_str()); - LL_WARNS(LOG_TXT) << "Texture URL: " << mUrl << LL_ENDL; + LL_DEBUGS(LOG_TXT) << "Texture URL: " << mUrl << LL_ENDL; mWriteToCacheState = CAN_WRITE ; //because this texture has a fixed texture id. } else diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index 389c617c0a..a9c24f2b0c 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -812,13 +812,12 @@ BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask) // NaCl - Rightclick-mousewheel zoom if (!(gKeyboard->currentMask(TRUE) & MASK_ALT)) { - static LLCachedControl _NACL_MLFovValues(gSavedSettings,"_NACL_MLFovValues"); - static LLCachedControl CameraAngle(gSavedSettings,"CameraAngle"); - LLVector3 vTemp=_NACL_MLFovValues; - vTemp.mV[0]=CameraAngle; - vTemp.mV[2]=1.0f; - gSavedSettings.setVector3("_NACL_MLFovValues",vTemp); - gSavedSettings.setF32("CameraAngle",vTemp.mV[1]); + LLVector3 _NACL_MLFovValues = gSavedSettings.getVector3("_NACL_MLFovValues"); + F32 CameraAngle = gSavedSettings.getF32("CameraAngle"); + _NACL_MLFovValues.mV[VX] = CameraAngle; + _NACL_MLFovValues.mV[VZ] = 1.0f; + gSavedSettings.setVector3("_NACL_MLFovValues", _NACL_MLFovValues); + gSavedSettings.setF32("CameraAngle", _NACL_MLFovValues.mV[VY]); return TRUE; } @@ -832,16 +831,15 @@ BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask) // NaCl - Rightclick-mousewheel zoom BOOL LLToolCompGun::handleRightMouseUp(S32 x, S32 y, MASK mask) { - static LLCachedControl _NACL_MLFovValues(gSavedSettings,"_NACL_MLFovValues"); - static LLCachedControl CameraAngle(gSavedSettings,"CameraAngle"); - LLVector3 vTemp=_NACL_MLFovValues; + LLVector3 _NACL_MLFovValues = gSavedSettings.getVector3("_NACL_MLFovValues"); + F32 CameraAngle = gSavedSettings.getF32("CameraAngle"); // Only reset if zoomed - if (vTemp.mV[2] == 1.0f) + if (_NACL_MLFovValues.mV[VZ] == 1.0f) { - vTemp.mV[1]=CameraAngle; - vTemp.mV[2]=0.0f; - gSavedSettings.setVector3("_NACL_MLFovValues",vTemp); - gSavedSettings.setF32("CameraAngle",vTemp.mV[0]); + _NACL_MLFovValues.mV[VY] = CameraAngle; + _NACL_MLFovValues.mV[VZ] = 0.0f; + gSavedSettings.setVector3("_NACL_MLFovValues", _NACL_MLFovValues); + gSavedSettings.setF32("CameraAngle", _NACL_MLFovValues.mV[VX]); } return TRUE; } @@ -883,15 +881,14 @@ void LLToolCompGun::handleDeselect() BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks) { // NaCl - Rightclick-mousewheel zoom - static LLCachedControl _NACL_MLFovValues(gSavedSettings, "_NACL_MLFovValues"); - static LLCachedControl CameraAngle(gSavedSettings, "CameraAngle"); - LLVector3 vTemp = _NACL_MLFovValues; - vTemp.mV[VY] = CameraAngle; - if (vTemp.mV[VZ] > 0.0f) + LLVector3 _NACL_MLFovValues = gSavedSettings.getVector3("_NACL_MLFovValues"); + F32 CameraAngle = gSavedSettings.getF32("CameraAngle"); + _NACL_MLFovValues.mV[VY] = CameraAngle; + if (_NACL_MLFovValues.mV[VZ] > 0.0f) { - vTemp.mV[VY] = llclamp(vTemp.mV[VY] + (F32)(clicks * 0.1f), LLViewerCamera::getInstance()->getMinView(), LLViewerCamera::getInstance()->getMaxView()); - gSavedSettings.setVector3("_NACL_MLFovValues", vTemp); - gSavedSettings.setF32("CameraAngle", vTemp.mV[VY]); + _NACL_MLFovValues.mV[VY] = llclamp(_NACL_MLFovValues.mV[VY] + (F32)(clicks * 0.1f), LLViewerCamera::getInstance()->getMinView(), LLViewerCamera::getInstance()->getMaxView()); + gSavedSettings.setVector3("_NACL_MLFovValues", _NACL_MLFovValues); + gSavedSettings.setF32("CameraAngle", _NACL_MLFovValues.mV[VY]); } else if (clicks > 0 && gSavedSettings.getBOOL("FSScrollWheelExitsMouselook")) // NaCl End diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index c64fdb05bf..5c00375a93 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -1163,7 +1163,7 @@ LLPointer setting_get_control(LLControlGroup& group, const st if (cntrl_ptr.isNull()) { LL_ERRS() << "Unable to set up setting listener for " << setting - << ". Please reinstall viewer from https ://secondlife.com/support/downloads/ and contact https://support.secondlife.com if issue persists after reinstall." + << ". Please reinstall viewer from https://www.firestormviewer.org/choose-your-platform/ and contact https://www.firestormviewer.org/support if issue persists after reinstall." << LL_ENDL; } return cntrl_ptr; @@ -1239,7 +1239,7 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderDeferredSSAO", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderPerformanceTest", handleRenderPerfTestChanged); setting_setup_signal_listener(gSavedSettings, "TextureMemory", handleVideoMemoryChanged); - setting_setup_signal_listener(gSavedSettings, "ChatFontSize", handleChatFontSizeChanged); + setting_setup_signal_listener(gSavedSettings, "ChatConsoleFontSize", handleChatFontSizeChanged); setting_setup_signal_listener(gSavedSettings, "ChatPersistTime", handleChatPersistTimeChanged); setting_setup_signal_listener(gSavedSettings, "ConsoleMaxLines", handleConsoleMaxLinesChanged); setting_setup_signal_listener(gSavedSettings, "UploadBakedTexOld", handleUploadBakedTexOldChanged); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index debfa73d1b..3e74e96692 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5612,15 +5612,14 @@ class LLViewMouselook : public view_listener_t else { // NaCl - Rightclick-mousewheel zoom - static LLCachedControl _NACL_MLFovValues(gSavedSettings,"_NACL_MLFovValues"); - static LLCachedControl CameraAngle(gSavedSettings,"CameraAngle"); - LLVector3 vTemp=_NACL_MLFovValues; - if(vTemp.mV[2] > 0.0f) + LLVector3 _NACL_MLFovValues = gSavedSettings.getVector3("_NACL_MLFovValues"); + F32 CameraAngle = gSavedSettings.getF32("CameraAngle"); + if (_NACL_MLFovValues.mV[VZ] > 0.0f) { - vTemp.mV[1]=CameraAngle; - vTemp.mV[2]=0.0f; - gSavedSettings.setVector3("_NACL_MLFovValues",vTemp); - gSavedSettings.setF32("CameraAngle",vTemp.mV[0]); + _NACL_MLFovValues.mV[VY] = CameraAngle; + _NACL_MLFovValues.mV[VZ] = 0.0f; + gSavedSettings.setVector3("_NACL_MLFovValues", _NACL_MLFovValues); + gSavedSettings.setF32("CameraAngle", _NACL_MLFovValues.mV[VX]); } // NaCl End gAgentCamera.changeCameraToDefault(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 4df3174eb4..b339b463c4 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5194,7 +5194,8 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data) if (!avatarp) { // no agent by this ID...error? - LL_WARNS("Messaging") << "Received animation state for unknown avatar " << uuid << LL_ENDL; + if (!gSavedSettings.getBOOL("FSRenderFriendsOnly")) // FIRE-32520: Prevent log spam when show friends only is enabled + LL_WARNS("Messaging") << "Received animation state for unknown avatar " << uuid << LL_ENDL; return; } diff --git a/indra/newview/skins/default/xui/de/panel_script_experience.xml b/indra/newview/skins/default/xui/de/panel_script_experience.xml index 192e661925..5b469ed258 100644 --- a/indra/newview/skins/default/xui/de/panel_script_experience.xml +++ b/indra/newview/skins/default/xui/de/panel_script_experience.xml @@ -3,7 +3,21 @@