From cfbc2028ef31f4e4b2a70775f2c330f57108396a Mon Sep 17 00:00:00 2001
From: andreykproductengine <akleshchev@productengine.com>
Date: Mon, 14 Nov 2016 20:13:18 +0200
Subject: [PATCH] MAINT-6920 More information in About Second Life floater

---
 indra/llvfs/llvfs.cpp                         | 11 +++++++++
 indra/llvfs/llvfs.h                           |  1 +
 indra/newview/llappviewer.cpp                 | 24 ++++++++++++++++++-
 .../newview/skins/default/xui/en/strings.xml  | 15 ++++++++++--
 4 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/indra/llvfs/llvfs.cpp b/indra/llvfs/llvfs.cpp
index 1cc0e819db5..db0eac70318 100644
--- a/indra/llvfs/llvfs.cpp
+++ b/indra/llvfs/llvfs.cpp
@@ -2114,6 +2114,17 @@ void LLVFS::dumpFiles()
 	LL_INFOS() << "Extracted " << files_extracted << " files out of " << mFileBlocks.size() << LL_ENDL;
 }
 
+time_t LLVFS::creationTime()
+{
+    llstat data_file_stat;
+    int errors = LLFile::stat(mDataFilename, &data_file_stat);
+    if (0 == errors)
+    {
+        return data_file_stat.st_ctime;
+    }
+    return 0;
+}
+
 //============================================================================
 // protected
 //============================================================================
diff --git a/indra/llvfs/llvfs.h b/indra/llvfs/llvfs.h
index 39f31a221b9..dca5ff4ad5f 100644
--- a/indra/llvfs/llvfs.h
+++ b/indra/llvfs/llvfs.h
@@ -127,6 +127,7 @@ class LLVFS
 	void dumpStatistics();
 	void listFiles();
 	void dumpFiles();
+	time_t creationTime();
 
 protected:
 	void removeFileBlock(LLVFSFileBlock *fileblock);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index dac1da6ad1d..c3a298cd3ac 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3352,6 +3352,26 @@ LLSD LLAppViewer::getViewerInfo() const
 
 	info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION));
 
+    // Settings
+
+    LLRect window_rect = gViewerWindow->getWindowRectRaw();
+    info["WINDOW_WIDTH"] = window_rect.getWidth();
+    info["WINDOW_HEIGHT"] = window_rect.getHeight();
+    info["FONT_SIZE_ADJUSTMENT"] = gSavedSettings.getF32("FontScreenDPI");
+    info["UI_SCALE"] = gSavedSettings.getF32("UIScaleFactor");
+    info["DRAW_DISTANCE"] = gSavedSettings.getF32("RenderFarClip");
+    info["NET_BANDWITH"] = gSavedSettings.getF32("ThrottleBandwidthKBPS");
+    info["LOD_FACTOR"] = gSavedSettings.getF32("RenderVolumeLODFactor");
+    info["RENDER_QUALITY"] = (F32)gSavedSettings.getU32("RenderQualityPerformance");
+    info["GPU_SHADERS"] = gSavedSettings.getBOOL("RenderDeferred") ? "Enabled" : "Disabled";
+    info["TEXTURE_MEMORY"] = gSavedSettings.getS32("TextureMemory");
+
+    LLSD substitution;
+    substitution["datetime"] = (S32)(gVFS ? gVFS->creationTime() : 0);
+    info["VFS_TIME"] = LLTrans::getString("AboutTime", substitution);
+
+	// Libraries
+
 	info["J2C_VERSION"] = LLImageJ2C::getEngineInfo();
 	bool want_fullname = true;
 	info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD();
@@ -3471,7 +3491,9 @@ std::string LLAppViewer::getViewerInfoString() const
 	{
 		support << "\n" << LLTrans::getString("AboutDriver", args);
 	}
-	support << "\n" << LLTrans::getString("AboutLibs", args);
+	support << "\n" << LLTrans::getString("AboutOGL", args);
+	support << "\n\n" << LLTrans::getString("AboutSettings", args);
+	support << "\n\n" << LLTrans::getString("AboutLibs", args);
 	if (info.has("COMPILER"))
 	{
 		support << "\n" << LLTrans::getString("AboutCompiler", args);
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 23379ff777a..0cfa2470327 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -45,9 +45,20 @@ Graphics Card Vendor: [GRAPHICS_CARD_VENDOR]
 Graphics Card: [GRAPHICS_CARD]
 	</string>
 	<string name="AboutDriver">Windows Graphics Driver Version: [GRAPHICS_DRIVER_VERSION]</string>
+	<string name="AboutOGL">OpenGL Version: [OPENGL_VERSION]</string>
+	<string name="AboutSettings">
+Window size: [WINDOW_WIDTH]x[WINDOW_HEIGHT]
+Font Size Adjustment: [FONT_SIZE_ADJUSTMENT]pt
+UI Scaling: [UI_SCALE]
+Draw distance: [DRAW_DISTANCE]m
+Bandwidth: [NET_BANDWITH]kbit/s
+LOD factor: [LOD_FACTOR]
+Render quality: [RENDER_QUALITY] / 7
+Advanced Lighting Model: [GPU_SHADERS]
+Texture memory: [TEXTURE_MEMORY]MB
+VFS (cache) creation time: [VFS_TIME]
+	</string>
 	<string name="AboutLibs">
-OpenGL Version: [OPENGL_VERSION]
-
 J2C Decoder Version: [J2C_VERSION]
 Audio Driver Version: [AUDIO_DRIVER_VERSION]
 LLCEFLib/CEF Version: [LLCEFLIB_VERSION]
-- 
GitLab