EXT-8283 FIX, EXT-8360 FIX - original fixes got broken, presumably during some merge
parent
cf58852a5e
commit
e6d5cc3bd1
|
|
@ -396,7 +396,11 @@ void LLCOFWearables::refresh()
|
|||
return;
|
||||
}
|
||||
|
||||
if (mCOFVersion == catp->getVersion()) return;
|
||||
// BAP - this check has to be removed because an item name change does not
|
||||
// change cat version - ie, checking version is not a complete way
|
||||
// of finding out whether anything has changed in this category.
|
||||
//if (mCOFVersion == catp->getVersion()) return;
|
||||
|
||||
mCOFVersion = catp->getVersion();
|
||||
|
||||
typedef std::vector<LLSD> values_vector_t;
|
||||
|
|
|
|||
|
|
@ -708,7 +708,7 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
|
|||
|
||||
const S32 current_num_known_descendents = cats->count() + items->count();
|
||||
|
||||
LLCategoryData cat_data = (*iter).second;
|
||||
LLCategoryData& cat_data = (*iter).second;
|
||||
|
||||
bool cat_changed = false;
|
||||
|
||||
|
|
@ -722,11 +722,17 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
|
|||
}
|
||||
|
||||
// If any item names have changed, update the name hash
|
||||
LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cat_id);
|
||||
if (cat_data.mItemNameHash != item_name_hash)
|
||||
// Only need to check if (a) name hash has not previously been
|
||||
// computed, or (b) a name has changed.
|
||||
if (!cat_data.mIsNameHashInitialized || (mask & LLInventoryObserver::LABEL))
|
||||
{
|
||||
cat_data.mItemNameHash = item_name_hash;
|
||||
cat_changed = true;
|
||||
LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cat_id);
|
||||
if (cat_data.mItemNameHash != item_name_hash)
|
||||
{
|
||||
cat_data.mIsNameHashInitialized = true;
|
||||
cat_data.mItemNameHash = item_name_hash;
|
||||
cat_changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
// If anything has changed above, fire the callback.
|
||||
|
|
@ -773,7 +779,8 @@ bool LLInventoryCategoriesObserver::addCategory(const LLUUID& cat_id, callback_t
|
|||
|
||||
if (can_be_added)
|
||||
{
|
||||
mCategoryMap.insert(category_map_value_t(cat_id, LLCategoryData(cb, version, current_num_known_descendents)));
|
||||
mCategoryMap.insert(category_map_value_t(
|
||||
cat_id,LLCategoryData(cat_id, cb, version, current_num_known_descendents)));
|
||||
}
|
||||
|
||||
return can_be_added;
|
||||
|
|
@ -783,3 +790,15 @@ void LLInventoryCategoriesObserver::removeCategory(const LLUUID& cat_id)
|
|||
{
|
||||
mCategoryMap.erase(cat_id);
|
||||
}
|
||||
|
||||
LLInventoryCategoriesObserver::LLCategoryData::LLCategoryData(
|
||||
const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents)
|
||||
|
||||
: mCatID(cat_id)
|
||||
, mCallback(cb)
|
||||
, mVersion(version)
|
||||
, mDescendentsCount(num_descendents)
|
||||
, mIsNameHashInitialized(false)
|
||||
{
|
||||
mItemNameHash.finalize();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -295,18 +295,14 @@ public:
|
|||
protected:
|
||||
struct LLCategoryData
|
||||
{
|
||||
LLCategoryData(callback_t cb, S32 version, S32 num_descendents)
|
||||
: mCallback(cb)
|
||||
, mVersion(version)
|
||||
, mDescendentsCount(num_descendents)
|
||||
{
|
||||
mItemNameHash.finalize();
|
||||
}
|
||||
LLCategoryData(const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents);
|
||||
|
||||
callback_t mCallback;
|
||||
S32 mVersion;
|
||||
S32 mDescendentsCount;
|
||||
LLMD5 mItemNameHash;
|
||||
bool mIsNameHashInitialized;
|
||||
LLUUID mCatID;
|
||||
};
|
||||
|
||||
typedef std::map<LLUUID, LLCategoryData> category_map_t;
|
||||
|
|
|
|||
|
|
@ -1100,7 +1100,11 @@ void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list)
|
|||
void LLPanelOutfitEdit::onCOFChanged()
|
||||
{
|
||||
//the panel is only updated when is visible to a user
|
||||
if (!isInVisibleChain()) return;
|
||||
|
||||
// BAP - this check has to be removed because otherwise item name
|
||||
// changes made when the panel is not visible will not be
|
||||
// propagated to the panel.
|
||||
// if (!isInVisibleChain()) return;
|
||||
|
||||
update();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue