From 69e9dfd9ca57279fab2c84b1a0c7e650f0c785a5 Mon Sep 17 00:00:00 2001 From: pepper <3782201+rohvani@users.noreply.github.com> Date: Fri, 9 Oct 2026 10:44:00 -0400 Subject: Fix chat history menu and loading indicator updates Wire the nearby-history menu to its enable callback so history suppression disables the action. Cache the IM history setting and loading panel, and update panel visibility only when it changes. Use XUI for the loading label while retaining all ten existing translations. Validated with targeted Windows C++ compilation, XML validation, and pre-commit checks. --- indra/newview/llfloaterconversationlog.cpp | 2 ++ indra/newview/llfloaterimsession.cpp | 14 ++++++++++---- indra/newview/llfloaterimsession.h | 1 + indra/newview/skins/default/xui/de/floater_im_session.xml | 5 +++++ .../skins/default/xui/en/menu_conversation_log_view.xml | 3 +++ indra/newview/skins/default/xui/es/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/fr/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/it/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/ja/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/pl/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/pt/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/ru/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/tr/floater_im_session.xml | 5 +++++ indra/newview/skins/default/xui/zh/floater_im_session.xml | 5 +++++ 14 files changed, 66 insertions(+), 4 deletions(-) diff --git a/indra/newview/llfloaterconversationlog.cpp b/indra/newview/llfloaterconversationlog.cpp index 144741a768..344ce3f4dd 100644 --- a/indra/newview/llfloaterconversationlog.cpp +++ b/indra/newview/llfloaterconversationlog.cpp @@ -37,6 +37,7 @@ LLFloaterConversationLog::LLFloaterConversationLog(const LLSD& key) mConversationLogList(NULL) { mCommitCallbackRegistrar.add("CallLog.Action", boost::bind(&LLFloaterConversationLog::onCustomAction, this, _2)); + mEnableCallbackRegistrar.add("CallLog.Enable", boost::bind(&LLFloaterConversationLog::isActionEnabled, this, _2)); mEnableCallbackRegistrar.add("CallLog.Check", boost::bind(&LLFloaterConversationLog::isActionChecked, this, _2)); } @@ -116,6 +117,7 @@ void LLFloaterConversationLog::onCustomAction (const LLSD& userdata) bool LLFloaterConversationLog::isActionEnabled(const LLSD& userdata) { + // Disable nearby history while account state or transcript deletion suppresses it. if (userdata.asString() == "view_nearby_chat_history") { return !LLChatServiceHistory::historySuppressed(); diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 6fd6dbee9d..850b228750 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -354,6 +354,8 @@ bool LLFloaterIMSession::postBuild() { bool result = LLFloaterIMSessionTab::postBuild(); + mChatServiceLoadingPanel = getChildView("chat_service_loading"); + mInputEditor->setMaxTextLength(1023); mInputEditor->setAutoreplaceCallback(boost::bind(&LLAutoReplace::autoreplaceCallback, LLAutoReplace::getInstance(), _1, _2, _3, _4, _5)); mInputEditor->setFocusReceivedCallback( boost::bind(onInputEditorFocusReceived, _1, this) ); @@ -375,8 +377,6 @@ bool LLFloaterIMSession::postBuild() //see LLFloaterIMPanel for how it is done (IB) initIMFloater(); - getChild("chat_service_loading_text")->setValue( - LLTrans::getString("loading_chat_logs")); return result; } @@ -1120,17 +1120,23 @@ void LLFloaterIMSession::processSessionUpdate(const LLSD& session_update) // virtual void LLFloaterIMSession::draw() { + // The cache follows preference changes without looking up the setting each frame. + static LLCachedControl show_history(gSavedPerAccountSettings, "LogShowHistory"); + // The floater presents both model-owned local reads and account-scoped service // work without scheduling either source from draw(). const bool loading = mSession && mIsP2PChat && - gSavedPerAccountSettings.getBOOL("LogShowHistory") && + show_history && (mSession->isChatHistoryLoading() || LLChatServiceHistory::getSnapshot(mSession->mOtherParticipantID).service_work_active); // The widget animates in draw(); hiding its panel suspends that work. - getChildView("chat_service_loading")->setVisible(loading); + if (mChatServiceLoadingPanel->getVisible() != loading) + { + mChatServiceLoadingPanel->setVisible(loading); + } // add people who were added via dropPerson() if (!mPendingParticipants.empty()) diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index a35fc27791..f51f8fd8d6 100644 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -172,6 +172,7 @@ private: static void confirmLeaveCallCallback(const LLSD& notification, const LLSD& response); + LLView* mChatServiceLoadingPanel = nullptr; S32 mLastMessageIndex; EInstantMessage mDialog; diff --git a/indra/newview/skins/default/xui/de/floater_im_session.xml b/indra/newview/skins/default/xui/de/floater_im_session.xml index b07b74bf4a..25b184ea32 100644 --- a/indra/newview/skins/default/xui/de/floater_im_session.xml +++ b/indra/newview/skins/default/xui/de/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml index 38d7f09445..7cafe7aec1 100644 --- a/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml +++ b/indra/newview/skins/default/xui/en/menu_conversation_log_view.xml @@ -51,5 +51,8 @@ + diff --git a/indra/newview/skins/default/xui/es/floater_im_session.xml b/indra/newview/skins/default/xui/es/floater_im_session.xml index e5f48e3fd5..0f389a91b2 100644 --- a/indra/newview/skins/default/xui/es/floater_im_session.xml +++ b/indra/newview/skins/default/xui/es/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/fr/floater_im_session.xml b/indra/newview/skins/default/xui/fr/floater_im_session.xml index 6d98f0a846..ff868f7fd8 100644 --- a/indra/newview/skins/default/xui/fr/floater_im_session.xml +++ b/indra/newview/skins/default/xui/fr/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/it/floater_im_session.xml b/indra/newview/skins/default/xui/it/floater_im_session.xml index 71f90accde..2baceea929 100644 --- a/indra/newview/skins/default/xui/it/floater_im_session.xml +++ b/indra/newview/skins/default/xui/it/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/ja/floater_im_session.xml b/indra/newview/skins/default/xui/ja/floater_im_session.xml index a2c116dbdc..667458d4b7 100644 --- a/indra/newview/skins/default/xui/ja/floater_im_session.xml +++ b/indra/newview/skins/default/xui/ja/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/pl/floater_im_session.xml b/indra/newview/skins/default/xui/pl/floater_im_session.xml index ee6e465ea3..38278a62ca 100644 --- a/indra/newview/skins/default/xui/pl/floater_im_session.xml +++ b/indra/newview/skins/default/xui/pl/floater_im_session.xml @@ -26,6 +26,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/pt/floater_im_session.xml b/indra/newview/skins/default/xui/pt/floater_im_session.xml index e592b14fa7..71299df191 100644 --- a/indra/newview/skins/default/xui/pt/floater_im_session.xml +++ b/indra/newview/skins/default/xui/pt/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/ru/floater_im_session.xml b/indra/newview/skins/default/xui/ru/floater_im_session.xml index d4ca04b88b..c38b43f31b 100644 --- a/indra/newview/skins/default/xui/ru/floater_im_session.xml +++ b/indra/newview/skins/default/xui/ru/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/tr/floater_im_session.xml b/indra/newview/skins/default/xui/tr/floater_im_session.xml index 52a10feeef..1392fff846 100644 --- a/indra/newview/skins/default/xui/tr/floater_im_session.xml +++ b/indra/newview/skins/default/xui/tr/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + diff --git a/indra/newview/skins/default/xui/zh/floater_im_session.xml b/indra/newview/skins/default/xui/zh/floater_im_session.xml index 864af2e592..bc6e241288 100644 --- a/indra/newview/skins/default/xui/zh/floater_im_session.xml +++ b/indra/newview/skins/default/xui/zh/floater_im_session.xml @@ -38,6 +38,11 @@ + + + + + -- cgit v1.3