From bbe9b636b5f78e4fe6d1a4da56a4a66ffef407d1 Mon Sep 17 00:00:00 2001
From: Mike Antipov <mantipov@productengine.com>
Date: Wed, 7 Apr 2010 18:33:05 +0300
Subject: [PATCH] Fixed major bug EXT-6661 (chat log paths reset back to
 default)  * Removed unused InstantMessageLogFolder  * Restored initializing
 logic of InstantMessageLogPath value from 1.23 to share setting between
 viewers.  * Restored unused in 2.0 "LogChatTimestamp" and "LogChatIM"
 settings to avoid removing of them in 2.0  * Restored default value of the
 "Save local chat log" setting from 1.23 & replaced with 2.0 own setting
 (LogNearbyChat was: LogChat)

Reviewed by Igor Borovkov & Kent Quirk at https://codereview.productengine.com/secondlife/r/193/
(transplanted from 43297b92c1bb7487dab6610bea61acac4c355878)
---
 .../app_settings/settings_per_account.xml     | 56 ++++++++++++++-----
 indra/newview/llfloaterpreference.cpp         |  6 +-
 indra/newview/llnearbychat.cpp                |  2 +-
 indra/newview/llstartup.cpp                   |  9 ++-
 .../xui/en/panel_preferences_privacy.xml      |  2 +-
 5 files changed, 51 insertions(+), 24 deletions(-)

diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index af5fa4f3889..3ce32a05b0d 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -22,17 +22,6 @@
         <key>Value</key>
             <string>|TOKEN COPY BusyModeResponse|</string>
         </map>
-    <key>InstantMessageLogFolder</key>
-        <map>
-        <key>Comment</key>
-            <string>Top level folder to your log files.</string>
-        <key>Persist</key>
-            <integer>1</integer>
-        <key>Type</key>
-            <string>String</string>
-        <key>Value</key>
-            <string />
-        </map>				
     <key>InstantMessageLogPath</key>
         <map>
         <key>Comment</key>
@@ -55,10 +44,10 @@
         <key>Value</key>
             <integer>0</integer>
         </map>
-    <key>LogChat</key>
+    <key>LogNearbyChat</key>
         <map>
         <key>Comment</key>
-            <string>Log Chat</string>
+            <string>Log Nearby Chat messages to a file. Is used instead of LogChat but with the "1" default value.</string>
         <key>Persist</key>
             <integer>1</integer>
         <key>Type</key>
@@ -110,5 +99,46 @@
         <key>Value</key>
             <integer>1</integer>
         </map>
+
+    <!-- Settings below are for back compatibility only.
+    They are not used in current viewer anymore. But they can't be removed to avoid
+    influence on previous versions of the viewer in case of settings are not used or default value
+    should be changed. See EXT-6661. -->
+
+    <!-- 1.23 settings -->
+    <key>LogChat</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <key>LogChatIM</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Incoming Instant Messages with Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <key>LogChatTimestamp</key>
+        <map>
+        <key>Comment</key>
+            <string>Log Timestamp of Chat</string>
+        <key>Persist</key>
+            <integer>1</integer>
+        <key>Type</key>
+            <string>Boolean</string>
+        <key>Value</key>
+            <integer>0</integer>
+        </map>
+    <!-- End of back compatibility settings -->
     </map>
 </llsd>
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 1172064b59d..1491484ba9a 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1093,10 +1093,8 @@ void LLFloaterPreference::onClickLogPath()
 	{
 		return; //Canceled!
 	}
-	std::string chat_log_dir = picker.getDirName();
-	std::string chat_log_top_folder= gDirUtilp->getBaseFileName(chat_log_dir);
-	gSavedPerAccountSettings.setString("InstantMessageLogPath",chat_log_dir);
-	gSavedPerAccountSettings.setString("InstantMessageLogFolder",chat_log_top_folder);
+
+	gSavedPerAccountSettings.setString("InstantMessageLogPath", picker.getDirName());
 }
 
 void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email)
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index c8d5d782b74..5d72827a7ac 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -207,7 +207,7 @@ void	LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
 		return;
 	}
 
-	if (gSavedPerAccountSettings.getBOOL("LogChat")) 
+	if (gSavedPerAccountSettings.getBOOL("LogNearbyChat"))
 	{
 		LLLogChat::saveHistory("chat", chat.mFromName, chat.mFromID, chat.mText);
 	}
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index d4d6a74f0c6..1c439d9d145 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -886,13 +886,12 @@ bool idle_startup()
 		}
 
 		//Default the path if one isn't set.
-		if (gSavedPerAccountSettings.getString("InstantMessageLogFolder").empty())
+		// *NOTE: unable to check variable differ from "InstantMessageLogPath" because it was
+		// provided in pre 2.0 viewer. See EXT-6661
+		if (gSavedPerAccountSettings.getString("InstantMessageLogPath").empty())
 		{
 			gDirUtilp->setChatLogsDir(gDirUtilp->getOSUserAppDir());
-			std::string chat_log_dir = gDirUtilp->getChatLogsDir();
-			std::string chat_log_top_folder=gDirUtilp->getBaseFileName(chat_log_dir);
-			gSavedPerAccountSettings.setString("InstantMessageLogPath",chat_log_dir);
-			gSavedPerAccountSettings.setString("InstantMessageLogFolder",chat_log_top_folder);
+			gSavedPerAccountSettings.setString("InstantMessageLogPath", gDirUtilp->getChatLogsDir());
 		}
 		else
 		{
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
index 3d7f3924046..fca9b4bca15 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
@@ -84,7 +84,7 @@
     </text>
     <check_box
 	 enabled="false"
-     control_name="LogChat"
+     control_name="LogNearbyChat"
      height="16"
      label="Save nearby chat logs on my computer"
      layout="topleft"
-- 
GitLab