viewer#945 Some worn items are missing from Avatar floater's Outfits tab

# Conflicts:
#	indra/newview/lloutfitslist.cpp
master
Andrey Kleshchev 2024-03-13 22:15:56 +02:00 committed by Andrey Lihatskiy
parent 065eddb8bf
commit 0e26d7717d
3 changed files with 19 additions and 4 deletions

View File

@ -1385,8 +1385,6 @@ void AISUpdate::parseCategory(const LLSD& category_map, S32 depth)
&& curr_cat->getVersion() > LLViewerInventoryCategory::VERSION_UNKNOWN
&& version > curr_cat->getVersion())
{
// Potentially should new_cat->setVersion(unknown) here,
// but might be waiting for a callback that would increment
LL_DEBUGS("Inventory") << "Category " << category_id
<< " is stale. Known version: " << curr_cat->getVersion()
<< " server version: " << version << LL_ENDL;

View File

@ -30,6 +30,7 @@
#include "llaisapi.h"
#include "llagent.h"
#include "llappviewer.h"
#include "llappearancemgr.h"
#include "llcallbacklist.h"
#include "llinventorymodel.h"
#include "llinventorypanel.h"
@ -470,6 +471,22 @@ void LLInventoryModelBackgroundFetch::fetchCOF(nullary_func_t callback)
callback();
LLUUID cat_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
LLInventoryModelBackgroundFetch::getInstance()->onAISFolderCalback(cat_id, id, FT_DEFAULT);
if (id.notNull())
{
// COF might have fetched base outfit folder through a link, but it hasn't
// fetched base outfit's content, which doesn't nessesary match COF,
// so make sure it's up to date
LLUUID baseoutfit_id = LLAppearanceMgr::getInstance()->getBaseOutfitUUID();
if (baseoutfit_id.notNull())
{
LLViewerInventoryCategory* cat = gInventory.getCategory(baseoutfit_id);
if (!cat || cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
{
LLInventoryModelBackgroundFetch::getInstance()->fetchFolderAndLinks(baseoutfit_id, no_op);
}
}
}
});
// start idle loop to track completion

View File

@ -924,8 +924,8 @@ void LLOutfitListBase::onIdleRefreshList()
if (cat)
{
std::string name = cat->getName();
updateChangedCategoryName(cat, name);
}
updateChangedCategoryName(cat, name);
}
curent_time = LLTimer::getTotalSeconds();
if (curent_time >= end_time)