summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llfloaterpreference.cpp28
-rw-r--r--indra/newview/llfloaterpreference.h1
2 files changed, 21 insertions, 8 deletions
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 3d8d0e15ec..b3e3a0678b 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -647,8 +647,12 @@ void LLFloaterPreference::cancel()
pPathfindingConsole->onRegionBoundaryCross();
}
- std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
- updateLogLocation(dir_name);
+ if(mInstantMessageLogPathChanged)
+ {
+ std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+ updateLogLocation(dir_name);
+ mInstantMessageLogPathChanged = false;
+ }
}
void LLFloaterPreference::onOpen(const LLSD& key)
@@ -1436,19 +1440,27 @@ void LLFloaterPreference::setAllIgnored()
void LLFloaterPreference::onClickLogPath()
{
- std::string proposed_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+ std::string original_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+ std::string proposed_name(original_name);
+ mInstantMessageLogPathChanged = false;
LLDirPicker& picker = LLDirPicker::instance();
+ //Launches a directory picker and waits for feedback
if (!picker.getDir(&proposed_name ) )
{
return; //Canceled!
}
- std::string dir_name = picker.getDirName();
- gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
-
- // enable/disable 'Delete transcripts button
- updateDeleteTranscriptsButton();
+ //Path changed
+ if(original_name != proposed_name)
+ {
+ std::string dir_name = picker.getDirName();
+ gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
+ mInstantMessageLogPathChanged = true;
+
+ // 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..c72346c3b6 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -186,6 +186,7 @@ private:
bool mGotPersonalInfo;
bool mOriginalIMViaEmail;
bool mLanguageChanged;
+ bool mInstantMessageLogPathChanged;
bool mAvatarDataInitialized;
bool mOriginalHideOnlineStatus;