diff --git a/.gitignore b/.gitignore
index 5acd04bb91..9c08783dc2 100755
--- a/.gitignore
+++ b/.gitignore
@@ -111,8 +111,10 @@ indra/newview/pilot.xml
# Firestorm additions
indra/newview/exoflickrkeys.h
indra/newview/fsdiscordkey.h
+indra/tools/vstool/obj/*/*.cache
my_autobuild.xml
.vscode
+.vs
*.srctrlbm
*.srctrldb
*.srctrlprj
diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp
index 58266fc2d8..495ba2f40f 100644
--- a/indra/llui/llaccordionctrl.cpp
+++ b/indra/llui/llaccordionctrl.cpp
@@ -316,11 +316,7 @@ void LLAccordionCtrl::ctrlShiftVertical(LLView* panel, S32 delta)
//---------------------------------------------------------------------------------
-// If adding a lot of controls rapidly, calling arrange will cost a lot of times, as it's running through n! controls.
-// In that case we can avvoid calling arrange over and over and just call it once when finished.
-//void LLAccordionCtrl::addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab)
-void LLAccordionCtrl::addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab, bool aArrange)
-//
+void LLAccordionCtrl::addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab)
{
if (!accordion_tab)
return;
@@ -329,14 +325,7 @@ void LLAccordionCtrl::addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab, bool
mAccordionTabs.push_back(accordion_tab);
accordion_tab->setDropDownStateChangedCallback( boost::bind(&LLAccordionCtrl::onCollapseCtrlCloseOpen, this, (S16)(mAccordionTabs.size() - 1)) );
-
- // If adding a lot of controls rapidly, calling arrange will cost a lot of times, as it's running through n! controls.
- // In that case we can avvoid calling arrange over and over and just call it once when finished.
-
- // arrange();
- if( aArrange )
- arrange();
- //
+ arrange();
}
void LLAccordionCtrl::removeCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab)
diff --git a/indra/llui/llaccordionctrl.h b/indra/llui/llaccordionctrl.h
index c4d7c276e1..43a33a2b3c 100644
--- a/indra/llui/llaccordionctrl.h
+++ b/indra/llui/llaccordionctrl.h
@@ -103,11 +103,7 @@ public:
// Call reshape after changing splitter's size
virtual void reshape(S32 width, S32 height, bool called_from_parent = true);
- // If adding a lot of controls rapidly, calling arrange will cost a lot of times, as it's running through n! controls.
- // In that case we can avvoid calling arrange over and over and just call it once when finished.
- // void addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab);
- void addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab, bool aArrange = true /*Standard is true as to not mess with old code all over the place*/ );
- //
+ void addCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab);
void removeCollapsibleCtrl(LLAccordionCtrlTab* accordion_tab);
void arrange();
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index dddfeb0342..1000483070 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -27015,5 +27015,18 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
0
+ FSLargeOutfitsWarningInThisSession
+
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index 9b35bf425d..f81bc78ed0 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -220,11 +220,7 @@ void LLOutfitsList::updateAddedCategory(LLUUID cat_id)
// *TODO: LLUICtrlFactory::defaultBuilder does not use "display_children" from xml. Should be investigated.
tab->setDisplayChildren(false);
-
- // Calling this when there's a lot of outfits causes horrible perfomance and disconnects, due to arrange eating so many cpu cycles.
- //mAccordion->addCollapsibleCtrl(tab);
- mAccordion->addCollapsibleCtrl(tab, false);
- //
+ mAccordion->addCollapsibleCtrl(tab);
// Start observing the new outfit category.
LLWearableItemsList* list = tab->getChild("wearable_items_list");
@@ -1120,8 +1116,21 @@ void LLOutfitListBase::refreshList(const LLUUID& category_id)
}
// FIRE-6958/VWR-2862; Handle large amounts of outfits, write a least a warning into the logs.
- if (mRefreshListState.Added.size() > 128)
- LL_WARNS() << "Large amount of outfits found: " << mRefreshListState.Added.size() << " this may cause hangs and disconnects" << LL_ENDL;
+ S32 currentOutfitsAmount = (S32)mRefreshListState.Added.size();
+ constexpr S32 maxSuggestedOutfits = 200;
+ if (currentOutfitsAmount > maxSuggestedOutfits)
+ {
+ LL_WARNS() << "Large amount of outfits found: " << currentOutfitsAmount << " this may cause hangs and disconnects" << LL_ENDL;
+ static LLCachedControl fsLargeOutfitsWarningInThisSession(gSavedSettings, "FSLargeOutfitsWarningInThisSession");
+ if (!fsLargeOutfitsWarningInThisSession)
+ {
+ gSavedSettings.setBOOL("FSLargeOutfitsWarningInThisSession", true);
+ LLSD args;
+ args["AMOUNT"] = currentOutfitsAmount;
+ args["MAX"] = maxSuggestedOutfits;
+ LLNotificationsUtil::add("FSLargeOutfitsWarningInThisSession", args);
+ }
+ }
//
// FIRE-12939: Add outfit count to outfits list
@@ -1157,7 +1166,18 @@ void LLOutfitListBase::onIdleRefreshList()
return;
}
- const F64 MAX_TIME = 0.05f;
+ // Scale MAX_TIME with FPS to avoid overloading the viewer with function calls at low frame rates
+ // const F64 MAX_TIME = 0.05f;
+ F64 MAX_TIME = 0.05f;
+ constexpr F64 min_time = 0.001f;
+ constexpr F64 threshold_fps = 30.0;
+ const auto current_fps = LLTrace::get_frame_recording().getPeriodMedianPerSec(LLStatViewer::FPS, 1);
+ if (current_fps < threshold_fps)
+ {
+ MAX_TIME = min_time + (current_fps / threshold_fps) * (MAX_TIME - min_time);
+ }
+ //
+
F64 curent_time = LLTimer::getTotalSeconds();
const F64 end_time = curent_time + MAX_TIME;
@@ -1174,9 +1194,6 @@ void LLOutfitListBase::onIdleRefreshList()
mRefreshListState.Added.clear();
mRefreshListState.AddedIterator = mRefreshListState.Added.end();
- // We called mAccordion->addCollapsibleCtrl with false as second paramter and did not let it arrange itself each time. Do this here after all is said and done.
- arrange();
-
// Handle removed tabs.
while (mRefreshListState.RemovedIterator < mRefreshListState.Removed.end())
{
@@ -1200,8 +1217,8 @@ void LLOutfitListBase::onIdleRefreshList()
// Links aren't supposed to be allowed here, check only cats
if (cat)
- {
- std::string name = cat->getName();
+ {
+ std::string name = cat->getName();
updateChangedCategoryName(cat, name);
}
diff --git a/indra/newview/skins/ansastorm/xui/ja/floater_camera.xml b/indra/newview/skins/ansastorm/xui/ja/floater_camera.xml
index 9f078e0221..150e59e293 100644
--- a/indra/newview/skins/ansastorm/xui/ja/floater_camera.xml
+++ b/indra/newview/skins/ansastorm/xui/ja/floater_camera.xml
@@ -29,6 +29,7 @@
+
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 30c9866dc1..838632e864 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -5900,6 +5900,10 @@ https://wiki.firestormviewer.org/antivirus_whitelisting
Bestehende Pose „[POSE_NAME]“ überschreiben?
+
+ Eine große Anzahl an Outfits wurde erkannt: [AMOUNT]. Dies kann zu einem Blockieren des Viewers oder zu Verbindungsabbrüchen führen. Ziehen Sie eine Reduzierung der Outfits für eine bessere Performance in Betracht (unter [MAX]).
+
+
Login-Anfrage wurde von Primfeed abgelehnt.
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 11a0065887..f689719e9f 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -14775,6 +14775,18 @@ https://wiki.firestormviewer.org/antivirus_whitelisting
yestext="Okay"/>
+
+
+ A large number of outfits were detected: [AMOUNT]. This may cause viewer hangs or disconnects. Consider reducing the number of outfits for better performance (below [MAX]).
+
+
+
テレポート経路:
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_beacons.xml b/indra/newview/skins/default/xui/ja/floater_beacons.xml
index ffb8ee5dd3..0279bb4be5 100644
--- a/indra/newview/skins/default/xui/ja/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/ja/floater_beacons.xml
@@ -5,10 +5,11 @@
表示:
+
-
+
幅:
diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml
index 326d6da209..b06b27137c 100644
--- a/indra/newview/skins/default/xui/ja/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ja/floater_camera.xml
@@ -19,9 +19,10 @@
+
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_fs_camera_small.xml b/indra/newview/skins/default/xui/ja/floater_fs_camera_small.xml
index 9d81d1891d..f9d93435a2 100644
--- a/indra/newview/skins/default/xui/ja/floater_fs_camera_small.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fs_camera_small.xml
@@ -39,31 +39,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/indra/newview/skins/default/xui/ja/floater_fs_export.xml b/indra/newview/skins/default/xui/ja/floater_fs_export.xml
index c837924a8d..0487793d6c 100644
--- a/indra/newview/skins/default/xui/ja/floater_fs_export.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fs_export.xml
@@ -4,16 +4,16 @@
[OBJECT]をハードディスクにバックアップ…
- [OBJECT]のバックアップ‐情報を集めています…
+ [OBJECT]のバックアップ-情報を集めています…
- [OBJECT]のバックアップ‐インベントリを取得しています…
+ [OBJECT]のバックアップ-インベントリを取得しています…
- [OBJECT]のバックアップ‐アセットを取得しています…
+ [OBJECT]のバックアップ-アセットを取得しています…
- [OBJECT]のバックアップ‐テクスチャを取得しています…
+ [OBJECT]のバックアップ-テクスチャを取得しています…
diff --git a/indra/newview/skins/default/xui/ja/floater_fs_group.xml b/indra/newview/skins/default/xui/ja/floater_fs_group.xml
index f475514c37..d833afa207 100644
--- a/indra/newview/skins/default/xui/ja/floater_fs_group.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fs_group.xml
@@ -4,9 +4,9 @@
新しいグループを作成…
- グループのプロフィール‐読み込んでいます…
+ グループのプロフィール-読み込んでいます…
- グループのプロフィール‐[NAME]
+ グループのプロフィール-[NAME]
\ No newline at end of file
diff --git a/indra/newview/skins/default/xui/ja/floater_fs_money_tracker.xml b/indra/newview/skins/default/xui/ja/floater_fs_money_tracker.xml
index d08212c4a5..50800603ea 100644
--- a/indra/newview/skins/default/xui/ja/floater_fs_money_tracker.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fs_money_tracker.xml
@@ -6,7 +6,7 @@
- 支払ったL$ [PAID]‐受け取ったL$ [RECEIVED]
+ 支払ったL$ [PAID]-受け取ったL$ [RECEIVED]
diff --git a/indra/newview/skins/default/xui/ja/floater_fs_performance.xml b/indra/newview/skins/default/xui/ja/floater_fs_performance.xml
index a269e659a8..6d277eb441 100644
--- a/indra/newview/skins/default/xui/ja/floater_fs_performance.xml
+++ b/indra/newview/skins/default/xui/ja/floater_fs_performance.xml
@@ -1,7 +1,7 @@
- フレーム:[TOT_FRAME_TIME]㎳‐背景:[SCENERY_FRAME_PCT]% アバター:[AV_FRAME_PCT]% UI[UI_FRAME_PCT]% HUD:[HUDS_FRAME_PCT]% スワップ:[SWAP_FRAME_PCT]% タスク:[IDLE_FRAME_PCT]%
+ フレーム:[TOT_FRAME_TIME]㎳-背景:[SCENERY_FRAME_PCT]% アバター:[AV_FRAME_PCT]% UI[UI_FRAME_PCT]% HUD:[HUDS_FRAME_PCT]% スワップ:[SWAP_FRAME_PCT]% タスク:[IDLE_FRAME_PCT]%
ユーザによる制限@[FPSCAP]FPS
@@ -54,7 +54,7 @@
目標フレームレート(fps)
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
index 761b227018..03d7267f68 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml
@@ -29,7 +29,7 @@
- ‐または‐
+ -または-
diff --git a/indra/newview/skins/default/xui/ja/floater_model_preview.xml b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
index 3557f2a372..ecd9aaca66 100644
--- a/indra/newview/skins/default/xui/ja/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
@@ -4,7 +4,7 @@
物理と一緒にメッシュをアップロードします。
- エラー:DAEファイルに問題が見つかりました。‐詳細につきましてはログをご確認ください。
+ エラー:DAEファイルに問題が見つかりました。-詳細につきましてはログをご確認ください。
警告:バインドシェイプマトリックスは、標準のX軸正方向にはありません。
@@ -137,7 +137,7 @@
シーンを解析できませんでした。
- DAEファイルでエラーが見つかりました。‐ファイルが破損しているようです。
+ DAEファイルでエラーが見つかりました。-ファイルが破損しているようです。
コントローラーを確認できませんでした。
diff --git a/indra/newview/skins/default/xui/ja/floater_object_weights.xml b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
index 9894b2c8af..d3fe5fa6b6 100644
--- a/indra/newview/skins/default/xui/ja/floater_object_weights.xml
+++ b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
@@ -1,39 +1,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_particle_editor.xml b/indra/newview/skins/default/xui/ja/floater_particle_editor.xml
index e127984d18..65a9ab0961 100644
--- a/indra/newview/skins/default/xui/ja/floater_particle_editor.xml
+++ b/indra/newview/skins/default/xui/ja/floater_particle_editor.xml
@@ -56,10 +56,10 @@
-
-
+
+
-
+
終了グロー:
@@ -69,10 +69,10 @@
-
-
+
+
-
+
開始スケール:
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
index 4f48780a7d..2543716fbb 100644
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
@@ -22,19 +22,19 @@
このリージョンは経路探索に対応していません。
- ‐
+ -
- ‐
+ -
- ‐
+ -
- ‐
+ -
- ‐
+ -
[読み込んでいます]
diff --git a/indra/newview/skins/default/xui/ja/floater_phototools.xml b/indra/newview/skins/default/xui/ja/floater_phototools.xml
index 8a2a05972b..851cff4a65 100644
--- a/indra/newview/skins/default/xui/ja/floater_phototools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_phototools.xml
@@ -424,7 +424,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_phototools_camera.xml b/indra/newview/skins/default/xui/ja/floater_phototools_camera.xml
index a412f823a1..14a0ad21b7 100644
--- a/indra/newview/skins/default/xui/ja/floater_phototools_camera.xml
+++ b/indra/newview/skins/default/xui/ja/floater_phototools_camera.xml
@@ -22,17 +22,22 @@
- 前面ビュー
+ 前方ビュー
- 側面ビュー
+ サイドビュー
- 背面ビュー
+ 後方ビュー
+
+
+
+
+ 三人称ビュー
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
index 4d3e95e87d..45881e201c 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
@@ -43,7 +43,7 @@
ハードウェア
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
index 4cd503e7f4..971d178062 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
@@ -19,7 +19,7 @@
プレビュー
- ‐なし‐
+ -なし-
ジェスチャー:[NAME]
diff --git a/indra/newview/skins/default/xui/ja/floater_region_restarting.xml b/indra/newview/skins/default/xui/ja/floater_region_restarting.xml
index 8bec0e9de0..2fb74dff59 100644
--- a/indra/newview/skins/default/xui/ja/floater_region_restarting.xml
+++ b/indra/newview/skins/default/xui/ja/floater_region_restarting.xml
@@ -11,7 +11,7 @@
- 現在あなたがいるリージョン「‐最長リージョン名‐」は再起動しようとしています。
+ 現在あなたがいるリージョン「-最長リージョン名-」は再起動しようとしています。
このまま、この場所にいるとログアウトされます。
diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index ba22019769..a74a088b5e 100644
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -26,7 +26,7 @@
ボタンをクリックしてから、悪意のあるオブジェクトをクリック:
-
+
オブジェクト:
@@ -39,7 +39,7 @@
ヘンドレリット・ヴルプターテ、かまわしの長い名前
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index 642a4a1b58..18a8608db2 100644
--- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
@@ -33,7 +33,7 @@
販売先を特定の人物に限定するか、しないかを選択してください。
-
+
diff --git a/indra/newview/skins/default/xui/ja/floater_vj_local_mesh.xml b/indra/newview/skins/default/xui/ja/floater_vj_local_mesh.xml
index 497209c891..62f7775689 100644
--- a/indra/newview/skins/default/xui/ja/floater_vj_local_mesh.xml
+++ b/indra/newview/skins/default/xui/ja/floater_vj_local_mesh.xml
@@ -17,7 +17,7 @@
LODサフィックス:
-
+
現在
diff --git a/indra/newview/skins/default/xui/ja/menu_fs_poser_poses_btn.xml b/indra/newview/skins/default/xui/ja/menu_fs_poser_poses_btn.xml
index dc6a3a6738..c858f758a0 100644
--- a/indra/newview/skins/default/xui/ja/menu_fs_poser_poses_btn.xml
+++ b/indra/newview/skins/default/xui/ja/menu_fs_poser_poses_btn.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 14e2de2bad..3d6bfb0193 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -141,5 +141,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index 1296277368..05a7f74165 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -241,7 +241,7 @@
-
+
@@ -3268,7 +3268,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセ
[NAME_SLURL]があなたを自分の場所へのテレポートのオファーを出しました([POS_SLURL]):
[MESSAGE]
-<icon>[MATURITY_ICON]</icon>‐[MATURITY_STR]
+<icon>[MATURITY_ICON]</icon>-[MATURITY_STR]