summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-01-18 14:07:03 -0800
committerTofu Linden <tofu.linden@lindenlab.com>2010-01-18 14:07:03 -0800
commit66f5f2b922e21a1b7618a4038a5f53e3de97e4df (patch)
treedd81b3c4b9e3ec1b4d344af9325b019737f538f5 /indra/newview
parent48123c536c8ae182b39440163d7002a07d126e0c (diff)
EXT-4470 Several bad assumptions that LL_PATH_PER_SL_ACCOUNT is always good (which it isn't until after login)
To be reviewed by Soft!
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llappviewer.cpp11
-rw-r--r--indra/newview/llavatariconctrl.cpp4
-rw-r--r--indra/newview/lllocationhistory.cpp6
-rw-r--r--indra/newview/llmutelist.cpp2
-rw-r--r--indra/newview/llpanelmaininventory.cpp6
-rw-r--r--indra/newview/llstartup.cpp6
-rw-r--r--indra/newview/llurlhistory.cpp2
-rw-r--r--indra/newview/llurlwhitelist.cpp6
-rw-r--r--indra/newview/llviewertexturelist.cpp2
9 files changed, 33 insertions, 12 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 4a61096ad8..704198aff5 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1480,8 +1480,15 @@ bool LLAppViewer::cleanup()
// PerAccountSettingsFile should be empty if no use has been logged on.
// *FIX:Mani This should get really saved in a "logoff" mode.
- gSavedPerAccountSettings.saveToFile(gSavedSettings.getString("PerAccountSettingsFile"), TRUE);
- llinfos << "Saved settings" << llendflush;
+ if (gSavedSettings.getString("PerAccountSettingsFile").empty())
+ {
+ llinfos << "Not saving per-account settings; don't know the account name yet." << llendl;
+ }
+ else
+ {
+ gSavedPerAccountSettings.saveToFile(gSavedSettings.getString("PerAccountSettingsFile"), TRUE);
+ llinfos << "Saved settings" << llendflush;
+ }
std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE);
// save all settings, even if equals defaults
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 42ae122ff9..87b8d807c4 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -64,7 +64,7 @@ void LLAvatarIconIDCache::load ()
llinfos << "Loading avatar icon id cache." << llendl;
// build filename for each user
- std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
+ std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, mFilename);
llifstream file(resolved_filename);
if (!file.is_open())
@@ -97,7 +97,7 @@ void LLAvatarIconIDCache::load ()
void LLAvatarIconIDCache::save ()
{
- std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
+ std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, mFilename);
// open a file for writing
llofstream file (resolved_filename);
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index d910dbf718..ae1b8f8540 100644
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
@@ -123,6 +123,12 @@ void LLLocationHistory::save() const
// build filename for each user
std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
+ if (resolved_filename.empty())
+ {
+ llinfos << "can't get path to location history filename - probably not logged in yet." << llendl;
+ return;
+ }
+
// open a file for writing
llofstream file (resolved_filename);
if (!file.is_open())
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index b520bc1c2d..af66b6e3de 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -258,7 +258,7 @@ LLMuteList::~LLMuteList()
{
// If we quit from the login screen we will not have an SL account
// name. Don't try to save, otherwise we'll dump a file in
- // C:\Program Files\SecondLife\ JC
+ // C:\Program Files\SecondLife\ or similar. JC
std::string user_dir = gDirUtilp->getLindenUserDir();
if (!user_dir.empty())
{
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index e74a39c85c..a5a61f0c7b 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -51,6 +51,8 @@
#include "llviewermenu.h"
#include "llviewertexturelist.h"
+const std::string FILTERS_FILENAME("filters.xml");
+
static LLRegisterPanelClassWrapper<LLPanelMainInventory> t_inventory("panel_main_inventory");
void on_file_loaded_for_save(BOOL success,
@@ -160,7 +162,7 @@ BOOL LLPanelMainInventory::postBuild()
// Now load the stored settings from disk, if available.
std::ostringstream filterSaveName;
- filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml");
+ filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, FILTERS_FILENAME);
llinfos << "LLPanelMainInventory::init: reading from " << filterSaveName << llendl;
llifstream file(filterSaveName.str());
LLSD savedFilterState;
@@ -230,7 +232,7 @@ LLPanelMainInventory::~LLPanelMainInventory( void )
}
std::ostringstream filterSaveName;
- filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "filters.xml");
+ filterSaveName << gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, FILTERS_FILENAME);
llofstream filtersFile(filterSaveName.str());
if(!LLSDSerialize::toPrettyXML(filterRoot, filtersFile))
{
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index fbc98b7691..ad88534a5d 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -920,9 +920,9 @@ bool idle_startup()
// create necessary directories
// *FIX: these mkdir's should error check
gDirUtilp->setLindenUserDir(gFirstname, gLastname);
- LLFile::mkdir(gDirUtilp->getLindenUserDir());
-
- // Set PerAccountSettingsFile to the default value.
+ LLFile::mkdir(gDirUtilp->getLindenUserDir());
+
+ // Set PerAccountSettingsFile to the default value.
gSavedSettings.setString("PerAccountSettingsFile",
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,
LLAppViewer::instance()->getSettingsFilename("Default", "PerAccount")));
diff --git a/indra/newview/llurlhistory.cpp b/indra/newview/llurlhistory.cpp
index e8b5aa7c74..08dd82ab86 100644
--- a/indra/newview/llurlhistory.cpp
+++ b/indra/newview/llurlhistory.cpp
@@ -77,7 +77,7 @@ bool LLURLHistory::saveFile(const std::string& filename)
std::string temp_str = gDirUtilp->getLindenUserDir();
if( temp_str.empty() )
{
- llwarns << "Can't save. No user directory set." << llendl;
+ llinfos << "Can't save URL history - no user directory set yet." << llendl;
return false;
}
diff --git a/indra/newview/llurlwhitelist.cpp b/indra/newview/llurlwhitelist.cpp
index da69039cf9..46bc9276c1 100644
--- a/indra/newview/llurlwhitelist.cpp
+++ b/indra/newview/llurlwhitelist.cpp
@@ -121,6 +121,12 @@ bool LLUrlWhiteList::save ()
// build filename for each user
std::string resolvedFilename = gDirUtilp->getExpandedFilename ( LL_PATH_PER_SL_ACCOUNT, mFilename );
+ if (resolvedFilename.empty())
+ {
+ llinfos << "No per-user dir for saving URL whitelist - presumably not logged in yet. Skipping." << llendl;
+ return false;
+ }
+
// open a file for writing
llofstream file ( resolvedFilename );
if ( file.is_open () )
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 8252b7df00..6bb547373c 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -178,7 +178,7 @@ static std::string get_texture_list_name()
void LLViewerTextureList::doPrefetchImages()
{
- if (LLAppViewer::instance()->getPurgeCache())
+ if (LLAppViewer::instance()->getPurgeCache())
{
// cache was purged, no point
return;