diff options
| author | pepper <3782201+rohvani@users.noreply.github.com> | 2026-10-09 10:44:00 -0400 |
|---|---|---|
| committer | pepper <3782201+rohvani@users.noreply.github.com> | 2026-10-09 10:44:00 -0400 |
| commit | 69e9dfd9ca57279fab2c84b1a0c7e650f0c785a5 (patch) | |
| tree | 4947989ef41b8b0302dd0a24cc06ef3646fd1733 | |
| parent | db59a05ae2b69b87175ac1da5f87a532f47fce1a (diff) | |
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.
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<LLTextBox>("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<bool> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Chat übersetzen" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Laden..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <on_click function="CallLog.Action" parameter="view_nearby_chat_history" /> + <on_enable + function="CallLog.Enable" + parameter="view_nearby_chat_history" /> </menu_item_call> </toggleable_menu> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Traducir el chat" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Cargando..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Traduire le chat" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Chargement..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Traduci chat" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Caricamento in corso..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="チャットを翻訳" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="読み込み中…"/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Tłumacz czat" name="translate_chat_checkbox" /> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Wczytywanie..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Traduzir conversa" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Carregando..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Переводить чат" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Загрузка..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="Sohbeti çevir" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="Yükleniyor..."/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> 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 @@ <layout_panel name="translate_chat_checkbox_lp"> <check_box label="翻譯聊天內容" name="translate_chat_checkbox"/> </layout_panel> + <layout_panel name="chat_holder"> + <panel name="chat_service_loading"> + <text name="chat_service_loading_text" value="載入中…"/> + </panel> + </layout_panel> </layout_stack> </layout_panel> </layout_stack> |
