merge changes for storm-1145
commit
79dceafdfd
|
|
@ -286,8 +286,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
|
|||
mOriginalIMViaEmail(false),
|
||||
mLanguageChanged(false),
|
||||
mAvatarDataInitialized(false),
|
||||
mDoubleClickActionDirty(false),
|
||||
mFavoritesRecordMayExist(false)
|
||||
mDoubleClickActionDirty(false)
|
||||
{
|
||||
|
||||
//Build Floater is now Called from LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
|
||||
|
|
@ -565,34 +564,6 @@ void LLFloaterPreference::apply()
|
|||
updateDoubleClickSettings();
|
||||
mDoubleClickActionDirty = false;
|
||||
}
|
||||
|
||||
if (mFavoritesRecordMayExist && !gSavedPerAccountSettings.getBOOL("ShowFavoritesOnLogin"))
|
||||
{
|
||||
removeFavoritesRecordOfUser();
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPreference::removeFavoritesRecordOfUser()
|
||||
{
|
||||
mFavoritesRecordMayExist = false;
|
||||
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
|
||||
LLSD fav_llsd;
|
||||
llifstream file;
|
||||
file.open(filename);
|
||||
if (!file.is_open()) return;
|
||||
LLSDSerialize::fromXML(fav_llsd, file);
|
||||
|
||||
LLAvatarName av_name;
|
||||
LLAvatarNameCache::get( gAgentID, &av_name );
|
||||
if (fav_llsd.has(av_name.getLegacyName()))
|
||||
{
|
||||
fav_llsd.erase(av_name.getLegacyName());
|
||||
}
|
||||
|
||||
llofstream out_file;
|
||||
out_file.open(filename);
|
||||
LLSDSerialize::toPrettyXML(fav_llsd, out_file);
|
||||
|
||||
}
|
||||
|
||||
void LLFloaterPreference::cancel()
|
||||
|
|
@ -678,11 +649,6 @@ void LLFloaterPreference::onOpen(const LLSD& key)
|
|||
getChildView("maturity_desired_combobox")->setVisible( false);
|
||||
}
|
||||
|
||||
if (LLStartUp::getStartupState() == STATE_STARTED)
|
||||
{
|
||||
mFavoritesRecordMayExist = gSavedPerAccountSettings.getBOOL("ShowFavoritesOnLogin");
|
||||
}
|
||||
|
||||
// Forget previous language changes.
|
||||
mLanguageChanged = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -159,8 +159,6 @@ public:
|
|||
|
||||
void buildPopupLists();
|
||||
static void refreshSkin(void* data);
|
||||
// Remove record of current user's favorites from file on disk.
|
||||
void removeFavoritesRecordOfUser();
|
||||
private:
|
||||
static std::string sSkin;
|
||||
// set true if state of double-click action checkbox or radio-group was changed by user
|
||||
|
|
@ -172,8 +170,6 @@ private:
|
|||
bool mAvatarDataInitialized;
|
||||
|
||||
bool mOriginalHideOnlineStatus;
|
||||
// Record of current user's favorites may be stored in file on disk.
|
||||
bool mFavoritesRecordMayExist;
|
||||
std::string mDirectoryVisibility;
|
||||
|
||||
LLAvatarData mAvatarProperties;
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@ const S32 MAX_PASSWORD = 16;
|
|||
LLPanelLogin *LLPanelLogin::sInstance = NULL;
|
||||
BOOL LLPanelLogin::sCapslockDidNotification = FALSE;
|
||||
|
||||
// Helper for converting a user name into the canonical "Firstname Lastname" form.
|
||||
// For new accounts without a last name "Resident" is added as a last name.
|
||||
static std::string canonicalize_username(const std::string& name);
|
||||
|
||||
class LLLoginRefreshHandler : public LLCommandHandler
|
||||
{
|
||||
|
|
@ -302,7 +305,14 @@ void LLPanelLogin::addFavoritesToStartLocation()
|
|||
for (LLSD::map_const_iterator iter = fav_llsd.beginMap();
|
||||
iter != fav_llsd.endMap(); ++iter)
|
||||
{
|
||||
if(iter->first != getChild<LLComboBox>("username_combo")->getSimple()) continue;
|
||||
std::string user_defined_name = getChild<LLComboBox>("username_combo")->getSimple();
|
||||
|
||||
// The account name in stored_favorites.xml has Resident last name even if user has
|
||||
// a single word account name, so it can be compared case-insensitive with the
|
||||
// user defined "firstname lastname".
|
||||
S32 res = LLStringUtil::compareInsensitive(canonicalize_username(user_defined_name), iter->first);
|
||||
if (res != 0) continue;
|
||||
|
||||
combo->addSeparator();
|
||||
LLSD user_llsd = iter->second;
|
||||
for (LLSD::array_const_iterator iter1 = user_llsd.beginArray();
|
||||
|
|
@ -1186,3 +1196,28 @@ void LLPanelLogin::onModeChangeConfirm(const LLSD& original_value, const LLSD& n
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
std::string canonicalize_username(const std::string& name)
|
||||
{
|
||||
std::string cname = name;
|
||||
LLStringUtil::trim(cname);
|
||||
|
||||
// determine if the username is a first/last form or not.
|
||||
size_t separator_index = cname.find_first_of(" ._");
|
||||
std::string first = cname.substr(0, separator_index);
|
||||
std::string last;
|
||||
if (separator_index != cname.npos)
|
||||
{
|
||||
last = cname.substr(separator_index+1, cname.npos);
|
||||
LLStringUtil::trim(last);
|
||||
}
|
||||
else
|
||||
{
|
||||
// ...on Linden grids, single username users as considered to have
|
||||
// last name "Resident"
|
||||
last = "Resident";
|
||||
}
|
||||
|
||||
// Username in traditional "firstname lastname" form.
|
||||
return first + ' ' + last;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1450,6 +1450,9 @@ private:
|
|||
|
||||
void saveFavoritesSLURLs();
|
||||
|
||||
// Remove record of current user's favorites from file on disk.
|
||||
void removeFavoritesRecordOfUser();
|
||||
|
||||
void onLandmarkLoaded(const LLUUID& asset_id, LLLandmark* landmark);
|
||||
void storeFavoriteSLURL(const LLUUID& asset_id, std::string& slurl);
|
||||
|
||||
|
|
@ -1534,6 +1537,10 @@ void LLFavoritesOrderStorage::destroyClass()
|
|||
{
|
||||
LLFavoritesOrderStorage::instance().saveFavoritesSLURLs();
|
||||
}
|
||||
else
|
||||
{
|
||||
LLFavoritesOrderStorage::instance().removeFavoritesRecordOfUser();
|
||||
}
|
||||
}
|
||||
|
||||
void LLFavoritesOrderStorage::load()
|
||||
|
|
@ -1602,6 +1609,28 @@ void LLFavoritesOrderStorage::saveFavoritesSLURLs()
|
|||
LLSDSerialize::toPrettyXML(fav_llsd, file);
|
||||
}
|
||||
|
||||
void LLFavoritesOrderStorage::removeFavoritesRecordOfUser()
|
||||
{
|
||||
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
|
||||
LLSD fav_llsd;
|
||||
llifstream file;
|
||||
file.open(filename);
|
||||
if (!file.is_open()) return;
|
||||
LLSDSerialize::fromXML(fav_llsd, file);
|
||||
|
||||
LLAvatarName av_name;
|
||||
LLAvatarNameCache::get( gAgentID, &av_name );
|
||||
if (fav_llsd.has(av_name.getLegacyName()))
|
||||
{
|
||||
fav_llsd.erase(av_name.getLegacyName());
|
||||
}
|
||||
|
||||
llofstream out_file;
|
||||
out_file.open(filename);
|
||||
LLSDSerialize::toPrettyXML(fav_llsd, out_file);
|
||||
|
||||
}
|
||||
|
||||
void LLFavoritesOrderStorage::onLandmarkLoaded(const LLUUID& asset_id, LLLandmark* landmark)
|
||||
{
|
||||
if (!landmark) return;
|
||||
|
|
|
|||
Loading…
Reference in New Issue