diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-18 14:07:03 -0800 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-18 14:07:03 -0800 | 
| commit | 66f5f2b922e21a1b7618a4038a5f53e3de97e4df (patch) | |
| tree | dd81b3c4b9e3ec1b4d344af9325b019737f538f5 /indra/newview | |
| parent | 48123c536c8ae182b39440163d7002a07d126e0c (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.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llavatariconctrl.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/lllocationhistory.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llmutelist.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llurlhistory.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llurlwhitelist.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 2 | 
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; | 
