diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 6620780b2735dd9aae3bd9b773c5520cb8f0f041..e8e347c82a1a90c7705360044f4683e80c684b88 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -2143,6 +2143,8 @@ void LLAgentWearables::updateServer() void LLAgentWearables::populateMyOutfitsFolder(void) { + llinfos << "BAP starting populate" << llendl; + LLLibraryOutfitsFetch* outfits = new LLLibraryOutfitsFetch(); // Get the complete information on the items in the inventory and diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index aad39854e432e037048d21192b339c6c84e23293..8a646bd626e452fd66fed3bbdc6aab6c28c712de 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1307,6 +1307,20 @@ void LLAppearanceManager::updateIsDirty() } } +void LLAppearanceManager::onFirstFullyVisible() +{ + // If this is the very first time the user has logged into viewer2+ (from a legacy viewer, or new account) + // then auto-populate outfits from the library into the My Outfits folder. + static bool check_populate_my_outfits = true; + if (check_populate_my_outfits && + (LLInventoryModel::getIsFirstTimeInViewer2() + || gSavedSettings.getBOOL("MyOutfitsAutofill"))) + { + gAgentWearables.populateMyOutfitsFolder(); + } + check_populate_my_outfits = false; +} + //#define DUMP_CAT_VERBOSE void LLAppearanceManager::dumpCat(const LLUUID& cat_id, const std::string& msg) diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 5fdff45735c37aeb4684c2ddb9ed8a30b0dba93e..28b51ee0f675b73ba32b2a12997ff3b90d1a3eea 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -113,6 +113,9 @@ class LLAppearanceManager: public LLSingleton<LLAppearanceManager> // should only be necessary to do on initial login. void updateIsDirty(); + // Called when self avatar is first fully visible. + void onFirstFullyVisible(); + protected: LLAppearanceManager(); ~LLAppearanceManager(); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 171b441b2b248ceadbb1ed71ee17a26f00faa532..cbcd9640dd54c3dd1557a95799d27bab5efa0365 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1891,17 +1891,6 @@ bool idle_startup() } } - // If this is the very first time the user has logged into viewer2+ (from a legacy viewer, or new account) - // then auto-populate outfits from the library into the My Outfits folder. - static bool check_populate_my_outfits = true; - if (check_populate_my_outfits && - (LLInventoryModel::getIsFirstTimeInViewer2() - || gSavedSettings.getBOOL("MyOutfitsAutofill"))) - { - gAgentWearables.populateMyOutfitsFolder(); - } - check_populate_my_outfits = false; - return TRUE; } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 9b91d5abfa08291fd5fe0bb456ca988b5c2b368a..bcf5cf3f6c3bc0f90f37b8251c7cae804dfef843 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2535,6 +2535,13 @@ void LLVOAvatar::idleUpdateLoadingEffect() if (isFullyLoaded() && isSelf()) { llwarns << "BAP self isFullyLoaded" << llendl; + + static bool first_fully_visible = true; + if (first_fully_visible) + { + first_fully_visible = false; + LLAppearanceManager::instance().onFirstFullyVisible(); + } } if (isFullyLoaded()) {