diff options
| author | Erik Kundiman <erik@megapahit.org> | 2026-10-13 06:52:16 +0800 |
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2026-10-13 06:52:16 +0800 |
| commit | c9cfb87ee117edd7cb007534d27ffa11f1c54dbc (patch) | |
| tree | c1f7108e3ff9f4a1a96feb7eb8348aedca9b2da7 | |
| parent | 5f5eb7be7badbf87ca2522fca43f37adfeeae549 (diff) | |
| parent | 083db782e29434ab17963fcac76b0ec3cd93b9d0 (diff) | |
Merge tag 'Second_Life_Release#083db782-26.5' into 26.5
15 files changed, 68 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/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp index 1698d6e914..1ba71d9c84 100644 --- a/indra/newview/llfloaterconversationpreview.cpp +++ b/indra/newview/llfloaterconversationpreview.cpp @@ -140,6 +140,8 @@ void LLFloaterConversationPreview::setPages(std::list<LLSD>* messages, const std // Publish the new page range together so draw() never renders stale bounds. mPageSpinner->setEnabled(true); mPageSpinner->setMaxValue((F32)(last_page+1)); + // Force forceSetValue() below to refresh the displayed text even if the value is unchanged + mPageSpinner->clear(); // Refresh the displayed page even while the editor has focus. mPageSpinner->forceSetValue((F32)(mCurrentPage+1)); mPageSpinner->resetDirty(); 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> |
