summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPepper <3782201+rohvani@users.noreply.github.com>2026-10-09 14:58:46 -0400
committerGitHub <noreply@github.com>2026-10-09 14:58:46 -0400
commit083db782e29434ab17963fcac76b0ec3cd93b9d0 (patch)
treed082659eb2cc049d0a62527f2793a600ee9ded9f
parent7935d5cd40b8fe200ea0dd3014604a18b925a72d (diff)
parent69e9dfd9ca57279fab2c84b1a0c7e650f0c785a5 (diff)
Merge pull request #6427 from secondlife/pepper/code-review-comments
Fix chat history menu and loading indicator updates
-rw-r--r--indra/newview/llfloaterconversationlog.cpp2
-rw-r--r--indra/newview/llfloaterimsession.cpp14
-rw-r--r--indra/newview/llfloaterimsession.h1
-rw-r--r--indra/newview/skins/default/xui/de/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/en/menu_conversation_log_view.xml3
-rw-r--r--indra/newview/skins/default/xui/es/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/it/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/floater_im_session.xml5
-rw-r--r--indra/newview/skins/default/xui/zh/floater_im_session.xml5
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>