summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2013-02-25 11:41:22 -0800
committerGilbert Gonzales <gilbert@lindenlab.com>2013-02-25 11:41:22 -0800
commitc70a951abd0993c85aa96a930a54ff89c93cd03a (patch)
tree5788d7a7a0e7cdbf8f16bc8583347b9bdc12d980
parentfbf7217b49101faad3a4e910d8c88150c39e73d6 (diff)
CHUI-778: Pushing a quick fix that only pertains to CHUI-778 so we can close out this issue.
-rwxr-xr-xindra/newview/llfloaterpreference.cpp32
-rw-r--r--indra/newview/llfloaterpreference.h1
2 files changed, 24 insertions, 9 deletions
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 3d8d0e15ec..688d453789 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -646,9 +646,6 @@ void LLFloaterPreference::cancel()
LLFloaterPathfindingConsole* pPathfindingConsole = pathfindingConsoleHandle.get();
pPathfindingConsole->onRegionBoundaryCross();
}
-
- std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
- updateLogLocation(dir_name);
}
void LLFloaterPreference::onOpen(const LLSD& key)
@@ -798,6 +795,14 @@ void LLFloaterPreference::onBtnOK()
apply();
closeFloater(false);
+ //Conversation transcript and log path changed so reload conversations based on new location
+ if(mPriorInstantMessageLogPath.length())
+ {
+ std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+ updateLogLocation(dir_name);
+ mPriorInstantMessageLogPath.clear();
+ }
+
LLUIColorTable::instance().saveUserSettings();
gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE);
}
@@ -1436,19 +1441,28 @@ void LLFloaterPreference::setAllIgnored()
void LLFloaterPreference::onClickLogPath()
{
- std::string proposed_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
-
+ std::string proposed_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+ mPriorInstantMessageLogPath.clear();
+
LLDirPicker& picker = LLDirPicker::instance();
+ //Launches a directory picker and waits for feedback
if (!picker.getDir(&proposed_name ) )
{
return; //Canceled!
}
+ //Gets the path from the directory picker
std::string dir_name = picker.getDirName();
- gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
-
- // enable/disable 'Delete transcripts button
- updateDeleteTranscriptsButton();
+
+ //Path changed
+ if(proposed_name != dir_name)
+ {
+ gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
+ mPriorInstantMessageLogPath = proposed_name;
+
+ // enable/disable 'Delete transcripts button
+ updateDeleteTranscriptsButton();
+ }
}
void LLFloaterPreference::updateLogLocation(const std::string& dir_name)
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index dbd87f74a1..31c1e2d9e5 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -187,6 +187,7 @@ private:
bool mOriginalIMViaEmail;
bool mLanguageChanged;
bool mAvatarDataInitialized;
+ std::string mPriorInstantMessageLogPath;
bool mOriginalHideOnlineStatus;
std::string mDirectoryVisibility;