From a24ba60d4c208fe5993290e1fa63dbc37e6e8b8f Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Thu, 24 Aug 2023 16:18:02 +0200 Subject: [PATCH 01/34] Fix compile error. Looks like code duplication that was never fixed because nobody ever compiles with asserts turned on (ouch). --- indra/newview/llmodelpreview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 1f75e1b590..dcada3c7d1 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -2523,7 +2523,7 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d out << "Invalid level of detail: " << which_lod; LL_WARNS() << out.str() << LL_ENDL; LLFloaterModelPreview::addStringToLog(out, true); // if you don't flash the log tab on error when do you? - assert(lod >= -1 && lod < LLModel::NUM_LODS); + assert(which_lod >= -1 && which_lod < LLModel::NUM_LODS); return; } From 6815412b95123deb56453db39193a920a8f368ba Mon Sep 17 00:00:00 2001 From: Pork Chop Date: Fri, 25 Aug 2023 10:04:50 +1000 Subject: [PATCH 02/34] Build fix after merge --- indra/newview/llurldispatcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 0a78718bae..492e6579e9 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -431,7 +431,7 @@ public: std::string region_name = LLURI::unescape(tokens[0]); - std::string callback_url = LLSLURL(url_grid, region_name, coords).getSLURLString(); + std::string callback_url = LLSLURL(grid, region_name, coords).getSLURLString(); #endif // OPENSIM // From 20948924347a0c0977247d457caa3670585140c1 Mon Sep 17 00:00:00 2001 From: Pantera Date: Fri, 25 Aug 2023 09:36:52 +0200 Subject: [PATCH 03/34] Leftovers removal Seems to be unused in FS (we have page in prefs for that), the SLV doesn't have these as well --- .../default/xui/az/floater_perm_prefs.xml | 15 --- .../default/xui/en/floater_perm_prefs.xml | 108 ------------------ .../default/xui/pl/floater_perm_prefs.xml | 14 --- 3 files changed, 137 deletions(-) delete mode 100644 indra/newview/skins/default/xui/az/floater_perm_prefs.xml delete mode 100755 indra/newview/skins/default/xui/en/floater_perm_prefs.xml delete mode 100755 indra/newview/skins/default/xui/pl/floater_perm_prefs.xml diff --git a/indra/newview/skins/default/xui/az/floater_perm_prefs.xml b/indra/newview/skins/default/xui/az/floater_perm_prefs.xml deleted file mode 100644 index c63237bddd..0000000000 --- a/indra/newview/skins/default/xui/az/floater_perm_prefs.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Yeni sahibin icazəsi var: - - - - - - - - diff --git a/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml deleted file mode 100755 index 1e4549c26d..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Następny Właściciel: - - - - - - - - - - - - - - Tuning Strategy - - - - - - - - - Graphics settings - - - Choose settings for distance, water, lighting and more. - - - - - - Avatars nearby - - - Manage which nearby avatars are fully displayed. - - -Time spent -drawing -avatars - - - 00% - - - - - - Your avatar complexity - - - Be a good citizen. Manage the impact of your avatar - - - - - - Your active HUDs - - - Removing unnecessary HUDs may improve speed. - - -Time spent -drawing -HUDs - - - 00% - - - + bevel_style="none" + follows="left|top" + height="540" + width="580" + name="panel_performance_main" + visible="true" + layout="topleft" + left="0" + top="60"> + + Auto-adjust settings (recommended) + + + Allow automatic adjustments to reach your preferred frame rate. + + + + + + Graphics settings + + + Choose settings for distance, water, lighting and more. + + + + - Preferred frame rate + width="205"> + Avatars nearby - Allow automatic adjustments to reach your preferred frame rate (advanced). + width="395"> + Manage which nearby avatars are fully displayed. + + + + + + Your avatar complexity + + + Reduce the complexity of your avatar if you aren't satisfied with current FPS. + + + + + + Your active HUDs + + + Removing HUDs you are not using can improve speed. + filename="panel_performance_nearby.xml" + follows="all" + layout="topleft" + left="0" + name="panel_performance_nearby" + visible="false" + top="55" /> + filename="panel_performance_complexity.xml" + follows="all" + layout="topleft" + left="0" + name="panel_performance_complexity" + visible="false" + top="55" /> + filename="panel_performance_preferences.xml" + follows="all" + layout="topleft" + left="0" + name="panel_performance_preferences" + visible="false" + top="55" /> Date: Mon, 28 Aug 2023 13:37:18 +0100 Subject: [PATCH 15/34] Update autobuild for KDU-8.3 --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 06edbfb812..f3fc0d5734 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1707,7 +1707,7 @@ hash e99b86fc3ed48a778580dd1449f8f33b url - file:///opt/firestorm/kdu-8.2-darwin-212431232.tar.bz2 + file:///opt/firestorm/kdu-8.3-darwin64-232392239.tar.bz2 name darwin64 @@ -1719,7 +1719,7 @@ hash c4dd59fbb0709fc4c7b5ab69b20246f8 url - file:///opt/firestorm/kdu-8.2-linux64_bionic-220911445.tar.bz2 + file:///opt/firestorm/kdu-8.3-linux64-232392238.tar.bz2 name linux64 @@ -1731,7 +1731,7 @@ hash e88372fa10b83c6900443dcc12c12338 url - file:///c:/cygwin/opt/firestorm/kdu-8.2-windows-212351246.tar.bz2 + file:///c:/cygwin/opt/firestorm/kdu-8.3-windows-232392239.tar.bz2 name windows @@ -1743,7 +1743,7 @@ hash e88372fa10b83c6900443dcc12c12338 url - file:///c:/cygwin/opt/firestorm/kdu-8.2-windows-212351246.tar.bz2 + file:///c:/cygwin/opt/firestorm/kdu-8.3-windows64-232392239.tar.bz2 name windows64 From c9575bf8b72e19b5a59c175fef1f50dde6cede1f Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 28 Aug 2023 14:55:04 +0200 Subject: [PATCH 16/34] 3p KDU for Windows contains both 32 and 64 bit version --- autobuild.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autobuild.xml b/autobuild.xml index f3fc0d5734..aa778db2ba 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1743,7 +1743,7 @@ hash e88372fa10b83c6900443dcc12c12338 url - file:///c:/cygwin/opt/firestorm/kdu-8.3-windows64-232392239.tar.bz2 + file:///c:/cygwin/opt/firestorm/kdu-8.3-windows-232392239.tar.bz2 name windows64 From bcb701af65344ea36b71d6bbcfc2c982879936cd Mon Sep 17 00:00:00 2001 From: Beq Date: Mon, 28 Aug 2023 14:05:17 +0100 Subject: [PATCH 17/34] How about the checksums too, Beq? --- autobuild.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index aa778db2ba..866a93a303 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1705,7 +1705,7 @@ archive hash - e99b86fc3ed48a778580dd1449f8f33b + 3142fccbcc0e2c5a019e3177ef364290 url file:///opt/firestorm/kdu-8.3-darwin64-232392239.tar.bz2 @@ -1717,7 +1717,7 @@ archive hash - c4dd59fbb0709fc4c7b5ab69b20246f8 + e13d6fe708613bb3a5d630c4cdd97a3b url file:///opt/firestorm/kdu-8.3-linux64-232392238.tar.bz2 @@ -1729,7 +1729,7 @@ archive hash - e88372fa10b83c6900443dcc12c12338 + 4aa7df19125708580055b42190d2511e url file:///c:/cygwin/opt/firestorm/kdu-8.3-windows-232392239.tar.bz2 @@ -1741,7 +1741,7 @@ archive hash - e88372fa10b83c6900443dcc12c12338 + 4aa7df19125708580055b42190d2511e url file:///c:/cygwin/opt/firestorm/kdu-8.3-windows-232392239.tar.bz2 From 208a896f3fb2d5100ad316e156b49e3ba2de0983 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 28 Aug 2023 16:06:15 +0200 Subject: [PATCH 18/34] Fix CMake CMP0148 deprecation warning introduced with CMake 3.27.4 --- indra/cmake/Python.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake index 1f954c8f65..573112eded 100644 --- a/indra/cmake/Python.cmake +++ b/indra/cmake/Python.cmake @@ -50,7 +50,7 @@ elseif (WINDOWS) ${pymaybe} ) endif() - include(FindPythonInterp) + find_package(Python3 COMPONENTS Interpreter) else() find_program(python python3) From 88cc136054542a7d4545f08764b7f02b43c9e09d Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 28 Aug 2023 16:06:43 +0200 Subject: [PATCH 19/34] Update FMOD Studio to 2.02.17 on Windows --- autobuild.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 866a93a303..a0c92bc22d 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1111,11 +1111,11 @@ archive hash - c1bce2b362c31345200297a4010626e9 + fb5a3f97091028859ffa8c2768536b52 hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.15-windows-231741106.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.17-windows-232401332.tar.bz2 name windows @@ -1125,18 +1125,18 @@ archive hash - cd0e8f58fece3eac0b5ebe21f354bf8c + f8e4fdd3eafbd54c01f5f78d04b95bf8 hash_algorithm md5 url - file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.15-windows64-231741113.tar.bz2 + file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.17-windows64-232401329.tar.bz2 name windows64 version - 2.02.15 + 2.02.17 fontconfig @@ -1750,7 +1750,7 @@ version - 8.0.6 + 8.3 libhunspell From f1c0cd9a2f36540e19fbe1dfda5278dadd39cd81 Mon Sep 17 00:00:00 2001 From: Pork Chop Date: Tue, 29 Aug 2023 01:25:31 +1000 Subject: [PATCH 20/34] Update FMOD Studio to 2.02.17 on Linux --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index a0c92bc22d..57b99e74bd 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1097,11 +1097,11 @@ archive hash - 79fb2f09d2c81ed6464e11af36566910 + 8c82bd0fd9b544d02c8da1f9d921e964 hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.02.15-linux64-231741426.tar.bz2 + file:///opt/firestorm/fmodstudio-2.02.17-linux64-232401431.tar.bz2 name linux64 From 0b772853bee90871f40e0e0b5c8a1ae88498742a Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Fri, 25 Aug 2023 16:54:41 +0200 Subject: [PATCH 21/34] Compile warning/error workaround. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the life of me I can't figure out which variable is supposedly undefined: In file included from /usr/include/string.h:548, from /usr/include/c++/13.2.1/cstring:42, from /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/llcommon/linden_common.h:54, from /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/newview/llviewerprecompiledheaders.h:38, from /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/newview/llenvironment.cpp:27: In function ‘void* memcpy(void*, const void*, size_t)’, inlined from ‘void boost::function2::move_assign(boost::function2&) [with R = void; T0 = const LLUUID&; T1 = LLViewerRegion*]’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/build-linux-x86_64/packages/include/boost/function/function_template.hpp:993:24, inlined from ‘void boost::function2::swap(boost::function2&) [with R = void; T0 = const LLUUID&; T1 = LLViewerRegion*]’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/build-linux-x86_64/packages/include/boost/function/function_template.hpp:862:22, inlined from ‘typename boost::enable_if_<(! boost::is_integral::value), boost::function&>::type boost::function::operator=(Functor) [with Functor = LLEnvironment::onRegionChange()::; R = void; T0 = const LLUUID&; T1 = LLViewerRegion*]’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/build-linux-x86_64/packages/include/boost/function/function_template.hpp:1121:22, inlined from ‘void boost::signals2::slot::init_slot_function(const F&) [with F = LLEnvironment::onRegionChange()::; SlotFunction = boost::function; R = void; Args = {const LLUUID&, LLViewerRegion*}]’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/build-linux-x86_64/packages/include/boost/signals2/detail/slot_template.hpp:160:24, inlined from ‘boost::signals2::slot::slot(const F&) [with F = LLEnvironment::onRegionChange()::; SlotFunction = boost::function; R = void; Args = {const LLUUID&, LLViewerRegion*}]’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/build-linux-x86_64/packages/include/boost/signals2/detail/slot_template.hpp:85:27, inlined from ‘void LLEnvironment::onRegionChange()’ at /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/newview/llenvironment.cpp:1150:52: /usr/include/bits/string_fortified.h:29:33: error: ‘*(unsigned char (*)[24])((char*)& + offsetof(boost::self_type, boost::function::.boost::function2::.boost::function_base::functor))’ may be used uninitialized [-Werror=maybe-uninitialized] 29 | return __builtin___memcpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 30 | __glibc_objsize0 (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ where llenvironment.cpp:1150 is: cur_region->setCapabilitiesReceivedCallback([](const LLUUID ®ion_id, LLViewerRegion* regionp) { LLEnvironment::instance(). requestRegion(); }); Nevertheless, this has never led to a crash as far as I know; so, probably a bogus warning indeed. --- indra/newview/llenvironment.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp index 3505dce54f..c65fdec192 100644 --- a/indra/newview/llenvironment.cpp +++ b/indra/newview/llenvironment.cpp @@ -1141,7 +1141,18 @@ void LLEnvironment::onRegionChange() } if (!cur_region->capabilitiesReceived()) { +// GCC13 warning: maybe-uninitialized - probably bogus +#if defined(__GNUC__) && (__GNUC__ >= 13) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +// cur_region->setCapabilitiesReceivedCallback([](const LLUUID ®ion_id, LLViewerRegion* regionp) { LLEnvironment::instance().requestRegion(); }); +// GCC13 warning: maybe-uninitialized - probably bogus +#if defined(__GNUC__) && (__GNUC__ >= 13) +#pragma GCC diagnostic pop +#endif +// return; } requestRegion(); From 3dddbe6c7db427aae2bc11bfa7ee7a648a7d20d5 Mon Sep 17 00:00:00 2001 From: Beq Date: Mon, 28 Aug 2023 19:49:06 +0100 Subject: [PATCH 22/34] Update FMOD Studio to 2.02.17 on MacOs --- autobuild.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 57b99e74bd..b135c99810 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1083,11 +1083,11 @@ archive hash - 9d9f72f50cffe7443e4b58f009ffc1f4 + 8ee7c21f3f109cf4e1709e4af0b4bebf hash_algorithm md5 url - file:///opt/firestorm/fmodstudio-2.02.15-darwin64-9.tar.bz2 + file:///opt/firestorm/fmodstudio-2.02.17-darwin64-232401806.tar.bz2 name darwin64 From 50a51df93784a9e04efa99a30219dedf22629342 Mon Sep 17 00:00:00 2001 From: Beq Date: Mon, 28 Aug 2023 22:44:46 +0100 Subject: [PATCH 23/34] Add the independent llsd package to the requirements list current version is 1.2.1 however 1.0.0 seems to work fine --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 1c8fa7fcf0..f1af8c21d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ llbase>=1.2.11 -autobuild>=3.9.1 \ No newline at end of file +autobuild>=3.9.1 +llsd>=1.0.0 \ No newline at end of file From a9cb3926379e3cef4a31704854cfb1282c16aa02 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Fri, 25 Aug 2023 17:08:35 +0200 Subject: [PATCH 24/34] Compile warning/error workaround. Tested by setting mat_normal to some magic value and then asserting that it was changed by the time we get here. --- indra/newview/llface.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index e52500ce3f..255b7d1038 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -2130,8 +2130,18 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, LLVector4a t; tangent_to_object.rotate(binormal_dir, t); LLVector4a binormal; +// GCC13 warning: maybe-uninitialized - probably bogus +#if defined(__GNUC__) && (__GNUC__ >= 13) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +// mat_normal.rotate(t, binormal); - +// +#if defined(__GNUC__) && (__GNUC__ >= 13) +#pragma GCC diagnostic pop +#endif +// //VECTORIZE THIS if (mDrawablep->isActive()) { From 45770ed08747eca141ed36f4c4c5065b33d441cb Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Fri, 25 Aug 2023 17:38:47 +0200 Subject: [PATCH 25/34] Fix linker error. missed this one. Including this header leads to a linker error when compiling without optimization because then the LLPanelTopInfoBar constructor isn't inlined. /usr/bin/ld: CMakeFiles/firestorm-bin.dir/llviewerwindow.cpp.o: in function `std::__cxx11::basic_string, std::allocator > LLSingletonBase::classname()': /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/llcommon/llsingleton.h:126:(.text._ZN15LLSingletonBase9classnameI17LLPanelTopInfoBarEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEv[_ZN15LLSingletonBase9classnameI17LLPanelTopInfoBarEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEv]+0x1e): undefined reference to `typeinfo for LLPanelTopInfoBar' /usr/bin/ld: CMakeFiles/firestorm-bin.dir/llviewerwindow.cpp.o: in function `void LLSingleton::constructSingleton<>(llthread::LockStatic::SingletonData>&)': /opt/secondlife/viewers/firestorm/phoenix-firestorm-git/indra/llcommon/llsingleton.h:362:(.text._ZN11LLSingletonI17LLPanelTopInfoBarE18constructSingletonIJEEEvRN8llthread10LockStaticINS1_13SingletonDataEEEDpOT_[_ZN11LLSingletonI17LLPanelTopInfoBarE18constructSingletonIJEEEvRN8llthread10LockStaticINS1_13SingletonDataEEEDpOT_]+0x6b): undefined reference to `LLPanelTopInfoBar::LLPanelTopInfoBar()' --- indra/newview/llviewerwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index dc382f8014..7eea05b16a 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -224,7 +224,8 @@ // [FS communication UI] #include "llwindowlistener.h" #include "llviewerwindowlistener.h" -#include "llpaneltopinfobar.h" +// We don't use the mini location panel in Firestorm +// #include "llpaneltopinfobar.h" #include "llcleanup.h" #include "llimview.h" #include "llviewermenufile.h" From 1a9a7d3b45d2710b128a3c71b2433a56a3a68d4e Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 29 Aug 2023 00:51:21 +0200 Subject: [PATCH 26/34] Add attachment point ID to "Attach to" menus (except HUD) to identify alpha sort order on rigged attachments --- indra/newview/llinventorybridge.cpp | 12 ++++++++++-- indra/newview/llviewerattachmenu.cpp | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index c9ed2693f4..2fe08b39f5 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -7495,11 +7495,19 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) std::string submenu_name = attachment->getName(); if (LLTrans::getString(submenu_name) != "") { - p.name = (" ")+LLTrans::getString(submenu_name)+" "; + // Add attachment point ID to non-HUD attachment spots + if (attachment->getIsHUDAttachment()) + p.name = (" ")+LLTrans::getString(submenu_name)+" "; + else + p.name = (" ") + LLTrans::getString(submenu_name) + " (" + std::to_string(curiter->first) + ")" + " "; } else { - p.name = submenu_name; + if (attachment->getIsHUDAttachment()) + p.name = submenu_name; + else + p.name = submenu_name + " (" + std::to_string(curiter->first) + ")"; + // } LLSD cbparams; cbparams["index"] = curiter->first; diff --git a/indra/newview/llviewerattachmenu.cpp b/indra/newview/llviewerattachmenu.cpp index cce9a5f7a4..3a42291325 100644 --- a/indra/newview/llviewerattachmenu.cpp +++ b/indra/newview/llviewerattachmenu.cpp @@ -69,11 +69,19 @@ void LLViewerAttachMenu::populateMenus(const std::string& attach_to_menu_name, c if (LLTrans::findString(translated_submenu_name, submenu_name)) { - p.name = (" ") + translated_submenu_name + " "; + // Add attachment point ID to non-HUD attachment spots + if (attachment->getIsHUDAttachment()) + p.name = (" ") + translated_submenu_name + " "; + else + p.name = (" ") + translated_submenu_name + " (" + std::to_string(curiter->first) + ")" + " "; } else { - p.name = submenu_name; + if (attachment->getIsHUDAttachment()) + p.name = submenu_name; + else + p.name = submenu_name + " (" + std::to_string(curiter->first) + ")"; + // } LLSD cbparams; From 4521852ceeec9407b17c566b151748ea7ab5fced Mon Sep 17 00:00:00 2001 From: Ansariel Date: Tue, 29 Aug 2023 15:30:15 +0200 Subject: [PATCH 27/34] What is all this? --- indra/newview/fspanelcontactsets.cpp | 16 +-- indra/newview/fspanelcontactsets.h | 4 +- indra/newview/lggcontactsets.cpp | 158 +++++++++++---------------- indra/newview/lggcontactsets.h | 72 ++++++------ indra/newview/llpanelpeople.cpp | 10 +- 5 files changed, 118 insertions(+), 142 deletions(-) diff --git a/indra/newview/fspanelcontactsets.cpp b/indra/newview/fspanelcontactsets.cpp index eeb2403955..9e9f021ab5 100644 --- a/indra/newview/fspanelcontactsets.cpp +++ b/indra/newview/fspanelcontactsets.cpp @@ -42,12 +42,10 @@ #include "llpanelpeoplemenus.h" #include "llslurl.h" -const U32 MAX_SELECTIONS = 20; +constexpr U32 MAX_SELECTIONS = 20; static LLPanelInjector t_panel_contact_sets("contact_sets_panel"); FSPanelContactSets::FSPanelContactSets() : LLPanel() -, mContactSetCombo(NULL) -, mAvatarList(NULL) { mContactSetChangedConnection = LGGContactSets::getInstance()->setContactSetChangeCallback(boost::bind(&FSPanelContactSets::updateSets, this, _1)); } @@ -130,7 +128,7 @@ void FSPanelContactSets::generateAvatarList(const std::string& contact_set) ++buddy) { // Only show our buddies who aren't in a set, by request. - if (!LGGContactSets::getInstance()->isFriendInSet(buddy->first)) + if (!LGGContactSets::getInstance()->isFriendInAnySet(buddy->first)) avatars.push_back(buddy->first); } } @@ -144,10 +142,12 @@ void FSPanelContactSets::generateAvatarList(const std::string& contact_set) } else if (!LGGContactSets::getInstance()->isInternalSetName(contact_set)) { - LGGContactSets::ContactSet* group = LGGContactSets::getInstance()->getContactSet(contact_set); // UGLY! - for (auto const& id : group->mFriends) + if (LGGContactSets::ContactSet* group = LGGContactSets::getInstance()->getContactSet(contact_set); group)// UGLY! { - avatars.push_back(id); + for (auto const& id : group->mFriends) + { + avatars.push_back(id); + } } } getChild("member_count")->setTextArg("[COUNT]", llformat("%d", avatars.size())); @@ -198,7 +198,7 @@ void FSPanelContactSets::refreshContactSets() std::vector contact_sets = LGGContactSets::getInstance()->getAllContactSets(); if (!contact_sets.empty()) { - for(auto const& set_name : contact_sets) + for (auto const& set_name : contact_sets) { mContactSetCombo->add(set_name); } diff --git a/indra/newview/fspanelcontactsets.h b/indra/newview/fspanelcontactsets.h index 98f5deb4de..bde45e43d5 100644 --- a/indra/newview/fspanelcontactsets.h +++ b/indra/newview/fspanelcontactsets.h @@ -70,8 +70,8 @@ private: uuid_vec_t mAvatarSelections; - LLComboBox* mContactSetCombo; - LLAvatarList* mAvatarList; + LLComboBox* mContactSetCombo{ nullptr }; + LLAvatarList* mAvatarList{ nullptr }; }; #endif // FS_PANELCONTACTSETS_H diff --git a/indra/newview/lggcontactsets.cpp b/indra/newview/lggcontactsets.cpp index e4addd821f..f0605d06b3 100644 --- a/indra/newview/lggcontactsets.cpp +++ b/indra/newview/lggcontactsets.cpp @@ -39,12 +39,11 @@ #include "rlvactions.h" #include "rlvhandler.h" -const F32 COLOR_DAMPENING = 0.8f; +constexpr F32 COLOR_DAMPENING = 0.8f; const std::string CONTACT_SETS_FILE = "settings_friends_groups.xml"; const std::string CS_PSEUDONYM_QUOTED = "'--- ---'"; LGGContactSets::LGGContactSets() -: mDefaultColor(LLColor4::grey) { } @@ -73,15 +72,14 @@ void LGGContactSets::toneDownColor(LLColor4& color) const bool LGGContactSets::callbackAliasReset(const LLSD& notification, const LLSD& response) { - S32 option = LLNotification::getSelectedOption(notification, response); - if (option == 0) + if (S32 option = LLNotification::getSelectedOption(notification, response); option == 0) { clearPseudonym(notification["payload"]["agent_id"].asUUID()); } return false; } -std::string LGGContactSets::getFilename() +std::string LGGContactSets::getFilename() const { std::string path = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, ""); @@ -92,7 +90,7 @@ std::string LGGContactSets::getFilename() return path; } -std::string LGGContactSets::getDefaultFilename() +std::string LGGContactSets::getDefaultFilename() const { std::string path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""); @@ -107,8 +105,7 @@ LLSD LGGContactSets::exportContactSet(std::string_view set_name) { LLSD ret; - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { ret["groupname"] = set->mName; ret["color"] = set->mColor.getValue(); @@ -199,27 +196,25 @@ LLSD LGGContactSets::exportToLLSD() output[CS_GLOBAL_SETTINGS]["defaultColor"] = mDefaultColor.getValue(); // Extra avatars - for (uuid_set_t::iterator it = mExtraAvatars.begin(); it != mExtraAvatars.end(); ++it) + for (const auto& avid : mExtraAvatars) { - output[CS_SET_EXTRA_AVS][(*it).asString()] = ""; + output[CS_SET_EXTRA_AVS][avid.asString()] = ""; } // Pseudonyms - for (uuid_map_t::iterator it = mPseudonyms.begin(); it != mPseudonyms.end(); ++it) + for (const auto& [avid, pseudonym] : mPseudonyms) { - output[CS_SET_PSEUDONYM][it->first.asString()] = it->second; + output[CS_SET_PSEUDONYM][avid.asString()] = pseudonym; } // Contact Sets - for (contact_set_map_t::iterator it = mContactSets.begin(); it != mContactSets.end(); ++it) + for (const auto& [name, set] : mContactSets) { - std::string name = it->first; - ContactSet* set = it->second; output[name]["color"] = set->mColor.getValue(); output[name]["notify"] = set->mNotify; - for (uuid_set_t::iterator friend_it = set->mFriends.begin(); friend_it != set->mFriends.end(); ++friend_it) + for (const auto& friend_id : set->mFriends) { - output[name]["friends"][(*friend_it).asString()] = ""; + output[name]["friends"][friend_id.asString()] = ""; } } @@ -300,10 +295,9 @@ void LGGContactSets::importFromLLSD(const LLSD& data) } } -LLColor4 LGGContactSets::getSetColor(std::string_view set_name) +LLColor4 LGGContactSets::getSetColor(std::string_view set_name) const { - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { return set->mColor; } @@ -311,13 +305,12 @@ LLColor4 LGGContactSets::getSetColor(std::string_view set_name) return getDefaultColor(); }; -LLColor4 LGGContactSets::colorize(const LLUUID& uuid, const LLColor4& cur_color, ELGGCSType type) +LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType type) const { static LLCachedControl legacy_radar_friend(gSavedSettings, "FSLegacyRadarFriendColoring"); static LLCachedControl legacy_radar_linden(gSavedSettings, "FSLegacyRadarLindenColoring"); bool rlv_shownames = !RlvActions::canShowName(RlvActions::SNC_DEFAULT, uuid); - LLColor4 color = cur_color; - + if (uuid == gAgentID) { switch (type) @@ -451,7 +444,7 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, const LLColor4& cur_color, return color; } -LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_view ignored_set_name) +LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_view ignored_set_name) const { LLColor4 color = getDefaultColor(); if (ignored_set_name == CS_SET_NO_SETS) @@ -460,8 +453,7 @@ LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_vie } U32 lowest = U32_MAX; - string_vec_t contact_sets = getFriendSets(friend_id); - for (const auto& set_name : contact_sets) + for (const auto& set_name : getFriendSets(friend_id)) { if (set_name != ignored_set_name) { @@ -474,7 +466,7 @@ LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_vie { lowest = set_size; - color = mContactSets[set_name]->mColor; + color = mContactSets.at(set_name)->mColor; if (isNonFriend(friend_id)) { toneDownColor(color); @@ -487,20 +479,20 @@ LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_vie { if (isFriendInSet(friend_id, ignored_set_name) && !isInternalSetName(ignored_set_name)) { - return mContactSets[ignored_set_name.data()]->mColor; + return mContactSets.at(ignored_set_name.data())->mColor; } } return color; } -bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type) +bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type) const { LLColor4 color = LLColor4::white; return hasFriendColorThatShouldShow(friend_id, type, color); } // handle all settings and rlv that would prevent us from showing the cs color -bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color) +bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color) const { if (!RlvActions::canShowName(RlvActions::SNC_DEFAULT, friend_id)) { @@ -551,7 +543,7 @@ bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGC return true; } -string_vec_t LGGContactSets::getFriendSets(const LLUUID& friend_id) +string_vec_t LGGContactSets::getFriendSets(const LLUUID& friend_id) const { string_vec_t sets{}; @@ -565,7 +557,7 @@ string_vec_t LGGContactSets::getFriendSets(const LLUUID& friend_id) return sets; } -uuid_vec_t LGGContactSets::getFriendsInSet(std::string_view set_name) +uuid_vec_t LGGContactSets::getFriendsInSet(std::string_view set_name) const { uuid_vec_t friends; @@ -586,8 +578,7 @@ uuid_vec_t LGGContactSets::getFriendsInSet(std::string_view set_name) return getListOfNonFriends(); } - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { for (const auto& id : set->mFriends) { @@ -598,7 +589,7 @@ uuid_vec_t LGGContactSets::getFriendsInSet(std::string_view set_name) return friends; } -string_vec_t LGGContactSets::getAllContactSets() +string_vec_t LGGContactSets::getAllContactSets() const { string_vec_t sets{}; @@ -610,7 +601,7 @@ string_vec_t LGGContactSets::getAllContactSets() return sets; } -uuid_vec_t LGGContactSets::getFriendsInAnySet() +uuid_vec_t LGGContactSets::getFriendsInAnySet() const { uuid_set_t friendsInAnySet{}; @@ -625,9 +616,9 @@ uuid_vec_t LGGContactSets::getFriendsInAnySet() return uuid_vec_t(friendsInAnySet.begin(), friendsInAnySet.end()); } -bool LGGContactSets::isFriendInSet(const LLUUID& friend_id) +bool LGGContactSets::isFriendInAnySet(const LLUUID& friend_id) const { - for (const auto& [set_name, set] : mContactSets) + for (const auto& [set_name, set] : mContactSets) { if (set->hasFriend(friend_id)) { @@ -638,15 +629,15 @@ bool LGGContactSets::isFriendInSet(const LLUUID& friend_id) return false; } -bool LGGContactSets::isFriendInSet(const LLUUID& friend_id, std::string_view set_name) +bool LGGContactSets::isFriendInSet(const LLUUID& friend_id, std::string_view set_name) const { if (set_name == CS_SET_ALL_SETS) { - return isFriendInSet(friend_id); + return isFriendInAnySet(friend_id); } else if (set_name == CS_SET_NO_SETS) { - return !isFriendInSet(friend_id); + return !isFriendInAnySet(friend_id); } else if (set_name == CS_SET_PSEUDONYM) { @@ -660,8 +651,7 @@ bool LGGContactSets::isFriendInSet(const LLUUID& friend_id, std::string_view set if( set_name.empty() ) return false; - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { return set->hasFriend(friend_id); } @@ -669,12 +659,11 @@ bool LGGContactSets::isFriendInSet(const LLUUID& friend_id, std::string_view set return false; } -bool LGGContactSets::notifyForFriend(const LLUUID& friend_id) +bool LGGContactSets::notifyForFriend(const LLUUID& friend_id) const { - string_vec_t sets = getFriendSets(friend_id); - for (const auto& set_name : sets) + for (const auto& set_name : getFriendSets(friend_id)) { - if (mContactSets[set_name]->mNotify) + if (mContactSets.at(set_name)->mNotify) { return true; } @@ -706,8 +695,7 @@ void LGGContactSets::addToSet(const uuid_vec_t& avatar_ids, std::string_view set void LGGContactSets::removeNonFriendFromList(const LLUUID& non_friend_id, bool save_changes /*= true*/) { LLAvatarTracker& tracker = LLAvatarTracker::instance(); - uuid_set_t::iterator found = mExtraAvatars.find(non_friend_id); - if (found != mExtraAvatars.end()) + if (auto found = mExtraAvatars.find(non_friend_id); found != mExtraAvatars.end()) { mExtraAvatars.erase(found); @@ -727,14 +715,13 @@ void LGGContactSets::removeNonFriendFromList(const LLUUID& non_friend_id, bool s void LGGContactSets::removeFriendFromAllSets(const LLUUID& friend_id, bool save_changes /*= true*/) { - string_vec_t sets = getFriendSets(friend_id); - for (const auto& set_name : sets) + for (const auto& set_name : getFriendSets(friend_id)) { removeFriendFromSet(friend_id, set_name, save_changes); } } -bool LGGContactSets::isNonFriend(const LLUUID& non_friend_id) +bool LGGContactSets::isNonFriend(const LLUUID& non_friend_id) const { if (LLAvatarTracker::instance().isBuddy(non_friend_id)) { @@ -744,7 +731,7 @@ bool LGGContactSets::isNonFriend(const LLUUID& non_friend_id) return (mExtraAvatars.find(non_friend_id) != mExtraAvatars.end()); } -uuid_vec_t LGGContactSets::getListOfNonFriends() +uuid_vec_t LGGContactSets::getListOfNonFriends() const { LLAvatarTracker& tracker = LLAvatarTracker::instance(); uuid_vec_t nonfriends{}; @@ -760,7 +747,7 @@ uuid_vec_t LGGContactSets::getListOfNonFriends() return nonfriends; } -uuid_vec_t LGGContactSets::getListOfPseudonymAvs() +uuid_vec_t LGGContactSets::getListOfPseudonymAvs() const { uuid_vec_t pseudonyms{}; @@ -780,8 +767,7 @@ void LGGContactSets::setPseudonym(const LLUUID& friend_id, std::string_view pseu inst->fetch(friend_id); LLVOAvatar::invalidateNameTag(friend_id); - avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(friend_id); - if (it != mAvatarNameCacheConnections.end()) + if (auto it = mAvatarNameCacheConnections.find(friend_id); it != mAvatarNameCacheConnections.end()) { if (it->second.connected()) { @@ -793,10 +779,9 @@ void LGGContactSets::setPseudonym(const LLUUID& friend_id, std::string_view pseu saveToDisk(); } -std::string LGGContactSets::getPseudonym(const LLUUID& friend_id) +std::string LGGContactSets::getPseudonym(const LLUUID& friend_id) const { - uuid_map_t::iterator found = mPseudonyms.find(friend_id); - if (found != mPseudonyms.end()) + if (auto found = mPseudonyms.find(friend_id); found != mPseudonyms.end()) { return llformat("'%s'", found->second.c_str()); } @@ -805,8 +790,7 @@ std::string LGGContactSets::getPseudonym(const LLUUID& friend_id) void LGGContactSets::clearPseudonym(const LLUUID& friend_id, bool save_changes /*= true*/) { - uuid_map_t::iterator found = mPseudonyms.find(friend_id); - if (found != mPseudonyms.end()) + if (auto found = mPseudonyms.find(friend_id); found != mPseudonyms.end()) { mPseudonyms.erase(found); LLAvatarNameCache* inst = LLAvatarNameCache::getInstance(); @@ -818,8 +802,7 @@ void LGGContactSets::clearPseudonym(const LLUUID& friend_id, bool save_changes / removeNonFriendFromList(friend_id, save_changes); } - avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(friend_id); - if (it != mAvatarNameCacheConnections.end()) + if (auto it = mAvatarNameCacheConnections.find(friend_id); it != mAvatarNameCacheConnections.end()) { if (it->second.connected()) { @@ -837,8 +820,7 @@ void LGGContactSets::clearPseudonym(const LLUUID& friend_id, bool save_changes / void LGGContactSets::onAvatarNameCache(const LLUUID& av_id) { - avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id); - if (it != mAvatarNameCacheConnections.end()) + if (auto it = mAvatarNameCacheConnections.find(av_id); it != mAvatarNameCacheConnections.end()) { if (it->second.connected()) { @@ -849,12 +831,12 @@ void LGGContactSets::onAvatarNameCache(const LLUUID& av_id) mChangedSignal(UPDATED_MEMBERS); } -bool LGGContactSets::hasPseudonym(const LLUUID& friend_id) +bool LGGContactSets::hasPseudonym(const LLUUID& friend_id) const { return (!getPseudonym(friend_id).empty()); } -bool LGGContactSets::hasPseudonym(uuid_vec_t ids) +bool LGGContactSets::hasPseudonym(const uuid_vec_t& ids) const { bool has_pseudonym = false; for (const auto& id : ids) @@ -868,12 +850,12 @@ bool LGGContactSets::hasPseudonym(uuid_vec_t ids) return has_pseudonym; } -bool LGGContactSets::hasDisplayNameRemoved(const LLUUID& friend_id) +bool LGGContactSets::hasDisplayNameRemoved(const LLUUID& friend_id) const { return (getPseudonym(friend_id) == CS_PSEUDONYM_QUOTED); } -bool LGGContactSets::hasDisplayNameRemoved(uuid_vec_t ids) +bool LGGContactSets::hasDisplayNameRemoved(const uuid_vec_t& ids) const { bool has_pseudonym = false; for (const auto& id : ids) @@ -887,7 +869,7 @@ bool LGGContactSets::hasDisplayNameRemoved(uuid_vec_t ids) return has_pseudonym; } -bool LGGContactSets::hasVisuallyDifferentPseudonym(const LLUUID& friend_id) +bool LGGContactSets::hasVisuallyDifferentPseudonym(const LLUUID& friend_id) const { return (hasPseudonym(friend_id) && (!hasDisplayNameRemoved(friend_id))); } @@ -908,8 +890,7 @@ void LGGContactSets::removeFriendFromSet(const LLUUID& friend_id, std::string_vi return clearPseudonym(friend_id, save_changes); } - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { set->mFriends.erase(friend_id); if (save_changes) @@ -920,7 +901,7 @@ void LGGContactSets::removeFriendFromSet(const LLUUID& friend_id, std::string_vi } } -bool LGGContactSets::isValidSet(std::string_view set_name) +bool LGGContactSets::isValidSet(std::string_view set_name) const { return (mContactSets.find(set_name.data()) != mContactSets.end()); } @@ -995,10 +976,9 @@ void LGGContactSets::setNotifyForSet(std::string_view set_name, bool notify) } } -bool LGGContactSets::getNotifyForSet(std::string_view set_name) +bool LGGContactSets::getNotifyForSet(std::string_view set_name) const { - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { return set->mNotify; } @@ -1007,15 +987,14 @@ bool LGGContactSets::getNotifyForSet(std::string_view set_name) void LGGContactSets::setSetColor(std::string_view set_name, const LLColor4& color) { - ContactSet* set = getContactSet(set_name); - if (set) + if (ContactSet* set = getContactSet(set_name); set) { set->mColor = color; saveToDisk(); } } -bool LGGContactSets::isInternalSetName(std::string_view set_name) +bool LGGContactSets::isInternalSetName(std::string_view set_name) const { return (set_name.empty() || set_name == CS_SET_EXTRA_AVS || @@ -1025,7 +1004,7 @@ bool LGGContactSets::isInternalSetName(std::string_view set_name) set_name == CS_GLOBAL_SETTINGS); } -LGGContactSets::ContactSet* LGGContactSets::getContactSet(std::string_view set_name) +LGGContactSets::ContactSet* LGGContactSets::getContactSet(std::string_view set_name) const { if (set_name.empty()) { @@ -1033,8 +1012,7 @@ LGGContactSets::ContactSet* LGGContactSets::getContactSet(std::string_view set_n return nullptr; } - contact_set_map_t::iterator found = mContactSets.find(set_name.data()); - if (found != mContactSets.end()) + if (auto found = mContactSets.find(set_name.data()); found != mContactSets.end()) { return found->second; } @@ -1042,7 +1020,7 @@ LGGContactSets::ContactSet* LGGContactSets::getContactSet(std::string_view set_n return nullptr; } -bool LGGContactSets::checkCustomName(const LLUUID& id, bool& dn_removed, std::string& pseudonym) +bool LGGContactSets::checkCustomName(const LLUUID& id, bool& dn_removed, std::string& pseudonym) const { dn_removed = hasDisplayNameRemoved(id); pseudonym = getPseudonym(id); @@ -1052,8 +1030,7 @@ bool LGGContactSets::checkCustomName(const LLUUID& id, bool& dn_removed, std::st // static bool LGGContactSets::handleAddContactSetCallback(const LLSD& notification, const LLSD& response) { - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (option == 0) + if (S32 option = LLNotificationsUtil::getSelectedOption(notification, response); option == 0) { const std::string set_name = response["message"].asString(); LGGContactSets::getInstance()->addSet(set_name); @@ -1064,8 +1041,7 @@ bool LGGContactSets::handleAddContactSetCallback(const LLSD& notification, const // static bool LGGContactSets::handleRemoveContactSetCallback(const LLSD& notification, const LLSD& response) { - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (option == 0) + if (S32 option = LLNotificationsUtil::getSelectedOption(notification, response); option == 0) { LGGContactSets::getInstance()->removeSet(notification["payload"]["contact_set"].asString()); } @@ -1075,8 +1051,7 @@ bool LGGContactSets::handleRemoveContactSetCallback(const LLSD& notification, co // static bool LGGContactSets::handleRemoveAvatarFromSetCallback(const LLSD& notification, const LLSD& response) { - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (option == 0) + if (S32 option = LLNotificationsUtil::getSelectedOption(notification, response); option == 0) { LGGContactSets& instance = LGGContactSets::instance(); LLAvatarTracker& tracker = LLAvatarTracker::instance(); @@ -1085,7 +1060,7 @@ bool LGGContactSets::handleRemoveAvatarFromSetCallback(const LLSD& notification, it != notification["payload"]["ids"].endArray(); ++it) { - LLUUID id = it->asUUID(); + const LLUUID& id = it->asUUID(); std::string set_name = notification["payload"]["contact_set"].asString(); instance.removeFriendFromSet(id, set_name, false); @@ -1107,8 +1082,7 @@ bool LGGContactSets::handleRemoveAvatarFromSetCallback(const LLSD& notification, // static bool LGGContactSets::handleSetAvatarPseudonymCallback(const LLSD& notification, const LLSD& response) { - S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - if (option == 0) + if (S32 option = LLNotificationsUtil::getSelectedOption(notification, response); option == 0) { const std::string pseudonym(response["message"].asString()); const LLUUID id(notification["payload"]["id"].asUUID()); diff --git a/indra/newview/lggcontactsets.h b/indra/newview/lggcontactsets.h index c7607c4b57..61843d167a 100644 --- a/indra/newview/lggcontactsets.h +++ b/indra/newview/lggcontactsets.h @@ -22,9 +22,9 @@ #include "v4color.h" #include "llsingleton.h" +#include +#include #include -#include -#include typedef enum e_lgg_cs { @@ -51,63 +51,63 @@ class LGGContactSets : public LLSingleton public: typedef std::vector string_vec_t; - typedef boost::unordered_set uuid_set_t; + typedef std::unordered_set uuid_set_t; void loadFromDisk(); void setSetColor(std::string_view set_name, const LLColor4& color); - LLColor4 getSetColor(std::string_view set_name); - LLColor4 getFriendColor(const LLUUID& friend_id, std::string_view ignored_set_name = ""); - LLColor4 colorize(const LLUUID& uuid, const LLColor4& cur_color, ELGGCSType type); + LLColor4 getSetColor(std::string_view set_name) const; + LLColor4 getFriendColor(const LLUUID& friend_id, std::string_view ignored_set_name = "") const; + LLColor4 colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType type) const; void setDefaultColor(const LLColor4& default_color) { mDefaultColor = default_color; }; - LLColor4 getDefaultColor() { return mDefaultColor; }; + LLColor4 getDefaultColor() const { return mDefaultColor; }; - std::string getPseudonym(const LLUUID& friend_id); - bool hasPseudonym(const LLUUID& friend_id); - bool hasPseudonym(uuid_vec_t ids); + std::string getPseudonym(const LLUUID& friend_id) const; + bool hasPseudonym(const LLUUID& friend_id) const; + bool hasPseudonym(const uuid_vec_t& ids) const; void clearPseudonym(const LLUUID& friend_id, bool save_changes = true); void removeDisplayName(const LLUUID& friend_id); - bool hasDisplayNameRemoved(const LLUUID& friend_id); - bool hasDisplayNameRemoved(uuid_vec_t ids); + bool hasDisplayNameRemoved(const LLUUID& friend_id) const; + bool hasDisplayNameRemoved(const uuid_vec_t& ids) const; - bool checkCustomName(const LLUUID& id, bool& dn_removed, std::string& pseudonym); + bool checkCustomName(const LLUUID& id, bool& dn_removed, std::string& pseudonym) const; - string_vec_t getFriendSets(const LLUUID& friend_id); - string_vec_t getAllContactSets(); + string_vec_t getFriendSets(const LLUUID& friend_id) const; + string_vec_t getAllContactSets() const; void addToSet(const uuid_vec_t&, std::string_view set_name); void removeFriendFromSet(const LLUUID& friend_id, std::string_view set_name, bool save_changes = true); void removeFriendFromAllSets(const LLUUID& friend_id, bool save_changes = true); - bool isFriendInSet(const LLUUID& friend_id, std::string_view set_name); - bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type); - bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color); + bool isFriendInSet(const LLUUID& friend_id, std::string_view set_name) const; + bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type) const; + bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color) const; void addSet(std::string_view set_name); bool renameSet(std::string_view set_name, std::string_view new_set_name); void removeSet(std::string_view set_name); - bool isValidSet(std::string_view set_name); + bool isValidSet(std::string_view set_name) const; void removeNonFriendFromList(const LLUUID& non_friend_id, bool save_changes = true); - bool isNonFriend(const LLUUID& non_friend_id); - bool isFriendInSet(const LLUUID& friend_id); - uuid_vec_t getListOfNonFriends(); - uuid_vec_t getListOfPseudonymAvs(); + bool isNonFriend(const LLUUID& non_friend_id) const; + bool isFriendInAnySet(const LLUUID& friend_id) const; + uuid_vec_t getListOfNonFriends() const; + uuid_vec_t getListOfPseudonymAvs() const; - bool notifyForFriend(const LLUUID& friend_id); + bool notifyForFriend(const LLUUID& friend_id) const; void setNotifyForSet(std::string_view set_name, bool notify); - bool getNotifyForSet(std::string_view set_name); + bool getNotifyForSet(std::string_view set_name) const; bool callbackAliasReset(const LLSD& notification, const LLSD& response); - bool isInternalSetName(std::string_view set_name); - bool hasSets() { return !mContactSets.empty(); } + bool isInternalSetName(std::string_view set_name) const; + bool hasSets() const { return !mContactSets.empty(); } class ContactSet { public: - bool hasFriend(const LLUUID& avatar_id) + bool hasFriend(const LLUUID& avatar_id) const { return (mFriends.find(avatar_id) != mFriends.end()); } @@ -117,7 +117,7 @@ public: bool mNotify; LLColor4 mColor; }; - ContactSet* getContactSet(std::string_view set_name); + ContactSet* getContactSet(std::string_view set_name) const; // [FS:CR] Signals for updating the various UI typedef enum e_contact_set_update { @@ -140,27 +140,27 @@ public: private: void toneDownColor(LLColor4& color) const; - uuid_vec_t getFriendsInSet(std::string_view set_name); - uuid_vec_t getFriendsInAnySet(); + uuid_vec_t getFriendsInSet(std::string_view set_name) const; + uuid_vec_t getFriendsInAnySet() const; void setPseudonym(const LLUUID& friend_id, std::string_view pseudonym); - bool hasVisuallyDifferentPseudonym(const LLUUID& friend_id); + bool hasVisuallyDifferentPseudonym(const LLUUID& friend_id) const; LLSD exportContactSet(std::string_view set_name); bool saveContactSetToDisk(std::string_view set_name, std::string_view filename); - std::string getFilename(); - std::string getDefaultFilename(); + std::string getFilename() const; + std::string getDefaultFilename() const; void importFromLLSD(const LLSD& data); LLSD exportToLLSD(); void saveToDisk(); - typedef boost::unordered_map uuid_map_t; + typedef std::unordered_map uuid_map_t; typedef std::map contact_set_map_t; contact_set_map_t mContactSets; - LLColor4 mDefaultColor; + LLColor4 mDefaultColor{ LLColor4::grey }; uuid_set_t mExtraAvatars; uuid_map_t mPseudonyms; diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 770bb43f3e..a427845ed6 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -1852,7 +1852,7 @@ void LLPanelPeople::generateContactList(const std::string& contact_set) ++buddy) { // Only show our buddies who aren't in a set, by request. - if (!LGGContactSets::getInstance()->isFriendInSet(buddy->first)) + if (!LGGContactSets::getInstance()->isFriendInAnySet(buddy->first)) avatars.push_back(buddy->first); } } @@ -1862,10 +1862,12 @@ void LLPanelPeople::generateContactList(const std::string& contact_set) } else if (!LGGContactSets::getInstance()->isInternalSetName(contact_set)) { - LGGContactSets::ContactSet* group = LGGContactSets::getInstance()->getContactSet(contact_set); - for (auto const& id : group->mFriends) + if (LGGContactSets::ContactSet* group = LGGContactSets::getInstance()->getContactSet(contact_set); group) { - avatars.push_back(id); + for (auto const& id : group->mFriends) + { + avatars.push_back(id); + } } } mContactSetList->setDirty(); From 25d4d8fafd819aef3a2364aa46fd30dfc4305ac1 Mon Sep 17 00:00:00 2001 From: Beq Date: Tue, 29 Aug 2023 20:59:43 +0100 Subject: [PATCH 28/34] windows needs requirements loaded & use specific version to allow cache --- .github/workflows/build_viewer.yml | 1 - requirements.txt | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index d85167e867..439c0136be 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -30,7 +30,6 @@ jobs: steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 - if: runner.os != 'Windows' id: py311 with: python-version: '3.11' diff --git a/requirements.txt b/requirements.txt index f1af8c21d1..7a96d70520 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -llbase>=1.2.11 -autobuild>=3.9.1 -llsd>=1.0.0 \ No newline at end of file +llbase=1.2.11 +autobuild=3.9.1 +llsd=1.2.1 \ No newline at end of file From be40d3eda7477cbc921a59ae044a58c84ad9ea06 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 30 Aug 2023 09:26:17 +0100 Subject: [PATCH 29/34] Fix the operator in requirements --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 7a96d70520..308ed7a4cd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -llbase=1.2.11 -autobuild=3.9.1 -llsd=1.2.1 \ No newline at end of file +llbase==1.2.11 +autobuild==3.9.1 +llsd==1.2.1 \ No newline at end of file From b7b87c7aaa55633c877441f030b6a1680b185a34 Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 30 Aug 2023 09:51:42 +0100 Subject: [PATCH 30/34] GHA updates to align with PBR. fixes expiries and allows nightly testing via branch trigger --- .github/workflows/build_viewer.yml | 22 +++++++++++++++++----- fsutils/download_list.py | 12 +++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index 439c0136be..055ee924e8 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -3,8 +3,8 @@ on: push: branches: - "Firestorm*.*.*" - tags: - - "preview" + - "*alpha" + - "*nightly" schedule: - cron: '00 03 * * *' # Run every day at 3am UTC env: @@ -26,10 +26,13 @@ jobs: addrsize: 32 - os: macos-11 addrsize: 32 + - grid: sl + addrsize: 32 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 + if: runner.os != 'Windows' id: py311 with: python-version: '3.11' @@ -78,7 +81,9 @@ jobs: FS_RELEASE_TYPE=Release elif [[ "${{ github.ref_name }}" == *review* ]]; then FS_RELEASE_TYPE=Beta - elif [[ "${{ github.event_name }}" == 'schedule' ]]; then + elif [[ "${{ github.ref_name }}" == *alpha* ]]; then + FS_RELEASE_TYPE=Alpha + elif [[ "${{ github.ref_name }}" == *nightly* ]] || [[ "${{ github.event_name }}" == 'schedule' ]]; then FS_RELEASE_TYPE=Nightly else FS_RELEASE_TYPE=Unknown @@ -121,7 +126,7 @@ jobs: run: 'rclone copy fs_bundles: --filter "- Alpha/*" --filter "+ *${{ env.fallback_platform }}*bz2" .' - name: rclone any extra private 3p packages for Alpha (allows library updates not in the main repo) - if: env.FS_BUILD_TYPE == 'Alpha' + if: env.FS_RELEASE_TYPE == 'Alpha' run: 'rclone copy fs_bundles:Alpha --include "*${{ env.fallback_platform }}*bz2" .' - name: set VSVER for Windows builds @@ -203,9 +208,13 @@ jobs: shell: bash - name: make Nightly builds expire after 14 days - if: env.FS_BUILD_TYPE == 'Nightly' + if: env.FS_RELEASE_TYPE == 'Nightly' run: | echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=14" >> $GITHUB_ENV + - name: make Alpha builds expire after 28 days + if: env.FS_RELEASE_TYPE == 'Alpha' + run: | + echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=28" >> $GITHUB_ENV - name: Clean up packages to give more space run: rm *${{ env.fallback_platform }}*bz2 @@ -265,6 +274,9 @@ jobs: elif [[ "${{ github.ref_name }}" == *review* ]]; then FS_RELEASE_FOLDER=preview FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }} + elif [[ "${{ github.ref_name }}" == *alpha* ]]; then + FS_RELEASE_FOLDER=preview + FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }} elif [[ "${{ github.event_name }}" == 'schedule' ]]; then FS_RELEASE_FOLDER=nightly FS_BUILD_WEBHOOK_URL=${{ secrets.NIGHTLY_WEBHOOK_URL }} diff --git a/fsutils/download_list.py b/fsutils/download_list.py index 2dc8cfd08d..8f453559a3 100644 --- a/fsutils/download_list.py +++ b/fsutils/download_list.py @@ -129,9 +129,11 @@ dirs = ["windows", "mac", "linux"] # build_types is a map from Beta, Release and Nightly to folder names preview release and nightly build_types = { + "Alpha": "test", "Beta": "preview", "Release": "release", - "Nightly": "nightly" + "Nightly": "nightly", + "Unknown": "test" } target_folder = { @@ -155,10 +157,10 @@ for file in zips: # print(f"build_type is {build_type}") if build_type not in build_types: - print(f"Invalid build_type {build_type} using file {file}") - continue - else: - build_folder = build_types[build_type] + print(f"Invalid build_type {build_type} from file {file} using 'Unknown'") + build_type = "Unknown" + + build_folder = build_types[build_type] build_types_created.add(build_type) From cbf5f5a4d3eaa495429d7c8edb787c9df81968af Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 30 Aug 2023 22:43:24 +0100 Subject: [PATCH 31/34] Make area search work again again --- indra/newview/fsareasearch.cpp | 14 ++++++++++++-- indra/newview/llagent.cpp | 8 +++++++- indra/newview/llagent.h | 10 ++++++++++ indra/newview/llfloater360capture.cpp | 7 ++++--- indra/newview/llviewermenu.cpp | 7 +++++++ indra/newview/llviewerregion.cpp | 1 + 6 files changed, 41 insertions(+), 6 deletions(-) diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp index b81a20454f..b3ecf75951 100644 --- a/indra/newview/fsareasearch.cpp +++ b/indra/newview/fsareasearch.cpp @@ -173,7 +173,8 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) : mRequestNeedsSent(false), mRlvBehaviorCallbackConnection() { - LLViewerRegion::sFSAreaSearchActive = true; + gAgent.setFSAreaSearchActive(true); + gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360); mFactoryMap["area_search_list_panel"] = LLCallbackMap(createPanelList, this); mFactoryMap["area_search_find_panel"] = LLCallbackMap(createPanelFind, this); mFactoryMap["area_search_filter_panel"] = LLCallbackMap(createPanelFilter, this); @@ -189,7 +190,16 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) : FSAreaSearch::~FSAreaSearch() { - LLViewerRegion::sFSAreaSearchActive = false; + gAgent.setFSAreaSearchActive(false); + + // Tell the Simulator not to send us everything anymore + // and revert to the regular "keyhole" frustum of interest + // list updates. + if( !LLApp::isExiting() ) + { + gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_DEFAULT); + } + if (!gIdleCallbacks.deleteFunction(idle, this)) { LL_WARNS("FSAreaSearch") << "FSAreaSearch::~FSAreaSearch() failed to delete callback" << LL_ENDL; diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 754b991642..cf4dc5c8cd 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3506,8 +3506,13 @@ void LLAgent::changeInterestListMode(const std::string &new_mode) { if (new_mode != mInterestListMode) { + // Fix area search again + if ( (new_mode == LLViewerRegion::IL_MODE_DEFAULT && (!mFSAreaSearchActive && !m360CaptureActive)) || + (new_mode == LLViewerRegion::IL_MODE_360) ) + { + LL_DEBUGS("360Capture") << "Setting Agent interest list mode to " << mInterestListMode << " and updating regions" << LL_ENDL; + // mInterestListMode = new_mode; - // Change interest list mode for all regions. If they are already set for the current mode, // the setting will have no effect. for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin(); @@ -3520,6 +3525,7 @@ void LLAgent::changeInterestListMode(const std::string &new_mode) regionp->setInterestListMode(mInterestListMode); } } + } // } else { diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index d21eedb66a..a0e1540609 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -307,6 +307,10 @@ private: region_changed_signal_t mRegionChangedSignal; std::string mInterestListMode; // How agent wants regions to send updates + // Area search fixes + bool mFSAreaSearchActive; + bool m360CaptureActive; + // //-------------------------------------------------------------------- // History @@ -315,6 +319,12 @@ public: S32 getRegionsVisited() const; F64 getDistanceTraveled() const; void setDistanceTraveled(F64 dist) { mDistanceTraveled = dist; } + // Area search fixes + void setFSAreaSearchActive(BOOL enabled) { mFSAreaSearchActive = enabled; } + void set360CaptureActive(BOOL enabled) { m360CaptureActive = enabled; } + bool getFSAreaSearchActive() { return mFSAreaSearchActive; } + bool get360CaptureActive() { return m360CaptureActive; } + // const LLVector3d &getLastPositionGlobal() const { return mLastPositionGlobal; } void setLastPositionGlobal(const LLVector3d &pos) { mLastPositionGlobal = pos; } diff --git a/indra/newview/llfloater360capture.cpp b/indra/newview/llfloater360capture.cpp index e79535f498..30551da3ea 100644 --- a/indra/newview/llfloater360capture.cpp +++ b/indra/newview/llfloater360capture.cpp @@ -65,7 +65,7 @@ LLFloater360Capture::LLFloater360Capture(const LLSD& key) // otherwise, exit before this is turned off, the Simulator // will take care of cleaning up for us. mStartILMode = gAgent.getInterestListMode(); - + gAgent.set360CaptureActive(true); // make FS area search work aga // send everything to us for as long as this floater is open gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360); } @@ -84,11 +84,12 @@ LLFloater360Capture::~LLFloater360Capture() // and now reverts to the regular "keyhole" frustum of interest // list updates. if (!LLApp::isExiting() && - gSavedSettings.getBOOL("360CaptureUseInterestListCap") && + // gSavedSettings.getBOOL("360CaptureUseInterestListCap") && // Invalid dependency - This is not used anywhere else now. mStartILMode != gAgent.getInterestListMode()) { + gAgent.set360CaptureActive(false); // make FS Area search work again gAgent.changeInterestListMode(mStartILMode); - } + } } BOOL LLFloater360Capture::postBuild() diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2e7f30f985..274192aecc 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1491,10 +1491,17 @@ public: // Toggle the mode - regions will get updated if (gAgent.getInterestListMode() == LLViewerRegion::IL_MODE_360) { + // we need to force the 360 mode "users" to false or this override will fail + gAgent.setFSAreaSearchActive(false); + gAgent.set360CaptureActive(false); + // gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_DEFAULT); } else { + // we need to force the 360 mode user flag to true or this override will fail. Don;t set area search though as that can have other effects. + gAgent.set360CaptureActive(false); + // gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360); } return true; diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 1cfc8629da..14773e147f 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1736,6 +1736,7 @@ BOOL LLViewerRegion::isViewerCameraStatic() void LLViewerRegion::killInvisibleObjects(F32 max_time) { + if(gAgent.getFSAreaSearchActive()){ return; } // FIRE-32668 Area Search improvements (again) if(!sVOCacheCullingEnabled) { return; From 458476b14834ce93fc7167186cdfa65d397482ff Mon Sep 17 00:00:00 2001 From: Beq Date: Wed, 30 Aug 2023 23:05:41 +0100 Subject: [PATCH 32/34] Allow nightly trigger and fix up Windows python anomalies Allow nightly to be triggered by push to a branch called *nightly* Windows has to expressly insert itself in the path to pickup the right version. --- .github/workflows/build_viewer.yml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index 055ee924e8..72e7a7464c 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -26,21 +26,32 @@ jobs: addrsize: 32 - os: macos-11 addrsize: 32 - - grid: sl - addrsize: 32 + # - grid: sl + # addrsize: 32 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 - if: runner.os != 'Windows' id: py311 with: python-version: '3.11' cache: 'pip' - - run: pip3 install -r requirements.txt + - run: | + python3 -m pip install -r requirements.txt --user + echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Check python version run: python -V + - name: Check python3 version + run: python3 -V + + - name: Test python llsd + run: | + python - < Date: Thu, 31 Aug 2023 10:36:32 +0100 Subject: [PATCH 33/34] Make the workaround Windows specific to stop upsetting Mac --- .github/workflows/build_viewer.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_viewer.yml b/.github/workflows/build_viewer.yml index 72e7a7464c..fdb4b786a8 100644 --- a/.github/workflows/build_viewer.yml +++ b/.github/workflows/build_viewer.yml @@ -36,10 +36,16 @@ jobs: with: python-version: '3.11' cache: 'pip' - - run: | + + - if: runner.os == 'Windows' + run: | python3 -m pip install -r requirements.txt --user echo "$HOME/.local/bin" >> $GITHUB_PATH + - if: runner.os != 'Windows' + run: | + python3 -m pip install -r requirements.txt + - name: Check python version run: python -V - name: Check python3 version From 6dacfb6fe94fe313a675c6f718dc7eb2eb7c0c21 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 31 Aug 2023 17:45:48 +0200 Subject: [PATCH 34/34] What are these fake booleans again? --- indra/newview/llagent.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index a0e1540609..7da8b15aa8 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -320,10 +320,10 @@ public: F64 getDistanceTraveled() const; void setDistanceTraveled(F64 dist) { mDistanceTraveled = dist; } // Area search fixes - void setFSAreaSearchActive(BOOL enabled) { mFSAreaSearchActive = enabled; } - void set360CaptureActive(BOOL enabled) { m360CaptureActive = enabled; } - bool getFSAreaSearchActive() { return mFSAreaSearchActive; } - bool get360CaptureActive() { return m360CaptureActive; } + void setFSAreaSearchActive(bool enabled) { mFSAreaSearchActive = enabled; } + void set360CaptureActive(bool enabled) { m360CaptureActive = enabled; } + bool getFSAreaSearchActive() const { return mFSAreaSearchActive; } + bool get360CaptureActive() const { return m360CaptureActive; } // const LLVector3d &getLastPositionGlobal() const { return mLastPositionGlobal; }