From b33b06e133decb4a4e8193996e3cdb5e30606320 Mon Sep 17 00:00:00 2001 From: Beq Date: Fri, 26 Jul 2024 14:31:24 +0100 Subject: [PATCH] Make version identification clearer for support teams --- indra/newview/fsfloaterim.cpp | 33 +++++++++++++++++++++++++-- indra/newview/llversioninfo.cpp | 40 +++++++++++++++++++++++++++++++++ indra/newview/llversioninfo.h | 14 ++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) diff --git a/indra/newview/fsfloaterim.cpp b/indra/newview/fsfloaterim.cpp index d66c9b5961..fc176e3dc0 100644 --- a/indra/newview/fsfloaterim.cpp +++ b/indra/newview/fsfloaterim.cpp @@ -471,13 +471,42 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type) if (FSData::getInstance()->isTestingGroup(mSessionID)) { if(chat_prefix_testing) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + { + auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity(); + if( viewer_maturity == LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER ) + { + utf8_text.insert(insert_pos, "(Release) "); + } + else if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER ) + { + utf8_text.insert(insert_pos, "(Unofficial) "); + } + else // In testing groups we'll allow all non-release recognised channels. + { + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } + } + } //For release support groups, only display the short version(Major.Minor.Patch) since chat can speed by. This makes it easier on Support's eyes. else if(FSData::getInstance()->isSupportGroup(mSessionID)) { if(chat_prefix_support) - utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + { + auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity(); + if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER ) + { + utf8_text.insert(insert_pos, "(Unofficial) "); + } + else if( viewer_maturity != LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER ) + { + utf8_text.insert(insert_pos, "(pre-Release) "); + } + else + { + utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") ")); + } + } } } diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp index 36228ad91b..577dc55f5a 100644 --- a/indra/newview/llversioninfo.cpp +++ b/indra/newview/llversioninfo.cpp @@ -211,7 +211,47 @@ LLVersionInfo::ViewerMaturity LLVersionInfo::getViewerMaturity() } return maturity; } +// Add FS specific maturity grading +LLVersionInfo::FSViewerMaturity LLVersionInfo::getFSViewerMaturity() +{ + FSViewerMaturity maturity; + std::string channel = getChannel(); + + + static const boost::regex is_manual_channel("\\bManualx64\\b"); + static const boost::regex is_beta_channel("\\bBetax64\\b"); + static const boost::regex is_alpha_channel("\\bAlphax64\\b"); + static const boost::regex is_release_channel("\\bReleasex64\\b"); + static const boost::regex is_nightly_channel("\\bNightlyx64\\b"); + + if (ll_regex_search(channel, is_release_channel)) + { + maturity = FSViewerMaturity::RELEASE_VIEWER; + } + else if (ll_regex_search(channel, is_beta_channel)) + { + maturity = FSViewerMaturity::BETA_VIEWER; + } + else if (ll_regex_search(channel, is_alpha_channel)) + { + maturity = FSViewerMaturity::ALPHA_VIEWER; + } + else if (ll_regex_search(channel, is_manual_channel)) + { + maturity = FSViewerMaturity::MANUAL_VIEWER; + } + else if (ll_regex_search(channel, is_nightly_channel)) + { + maturity = FSViewerMaturity::NIGHTLY_VIEWER; + } + else + { + maturity = FSViewerMaturity::UNOFFICIAL_VIEWER; + } + return maturity; +} +// std::string LLVersionInfo::getReleaseNotes() { return mReleaseNotes; diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h index 3830e45f48..99bf255f74 100644 --- a/indra/newview/llversioninfo.h +++ b/indra/newview/llversioninfo.h @@ -109,6 +109,20 @@ public: } ViewerMaturity; ViewerMaturity getViewerMaturity(); +// Add an FS specific viewer maturity enum + using FSViewerMaturity = + enum class FSViewerMaturityEnum + { + UNOFFICIAL_VIEWER=0, + ALPHA_VIEWER, + MANUAL_VIEWER, + BETA_VIEWER, + NIGHTLY_VIEWER, + RELEASE_VIEWER, + }; + FSViewerMaturity getFSViewerMaturity(); +// + /// get the release-notes URL, once it becomes available -- until then, /// return empty string std::string getReleaseNotes();