Automated merge with ssh://hg.lindenlab.com/q/viewer-release/
commit
20e87c224b
|
|
@ -207,8 +207,9 @@ public:
|
|||
};
|
||||
|
||||
|
||||
LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy():
|
||||
mFireCount(0)
|
||||
LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy(bool update_base_outfit_ordering):
|
||||
mFireCount(0),
|
||||
mUpdateBaseOrder(update_base_outfit_ordering)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -218,7 +219,7 @@ LLUpdateAppearanceOnDestroy::~LLUpdateAppearanceOnDestroy()
|
|||
|
||||
if (!LLApp::isExiting())
|
||||
{
|
||||
LLAppearanceMgr::instance().updateAppearanceFromCOF();
|
||||
LLAppearanceMgr::instance().updateAppearanceFromCOF(mUpdateBaseOrder);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1436,7 +1437,7 @@ void LLAppearanceMgr::updateCOF(const LLUUID& category, bool append)
|
|||
|
||||
// Create links to new COF contents.
|
||||
llinfos << "creating LLUpdateAppearanceOnDestroy" << llendl;
|
||||
LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
|
||||
LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy(!append);
|
||||
|
||||
#ifndef LL_RELEASE_FOR_DOWNLOAD
|
||||
llinfos << "Linking body items" << llendl;
|
||||
|
|
@ -1617,7 +1618,7 @@ void LLAppearanceMgr::enforceItemCountLimits()
|
|||
}
|
||||
}
|
||||
|
||||
void LLAppearanceMgr::updateAppearanceFromCOF()
|
||||
void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
|
||||
{
|
||||
if (mIsInUpdateAppearanceFromCOF)
|
||||
{
|
||||
|
|
@ -1631,7 +1632,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF()
|
|||
|
||||
//checking integrity of the COF in terms of ordering of wearables,
|
||||
//checking and updating links' descriptions of wearables in the COF (before analyzed for "dirty" state)
|
||||
updateClothingOrderingInfo();
|
||||
updateClothingOrderingInfo(LLUUID::null, update_base_outfit_ordering);
|
||||
|
||||
// Remove duplicate or excess wearables. Should normally be enforced at the UI level, but
|
||||
// this should catch anything that gets through.
|
||||
|
|
@ -2336,11 +2337,19 @@ struct WearablesOrderComparator
|
|||
U32 mControlSize;
|
||||
};
|
||||
|
||||
void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id)
|
||||
void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id, bool update_base_outfit_ordering)
|
||||
{
|
||||
if (cat_id.isNull())
|
||||
{
|
||||
cat_id = getCOF();
|
||||
if (update_base_outfit_ordering)
|
||||
{
|
||||
const LLUUID base_outfit_id = getBaseOutfitUUID();
|
||||
if (base_outfit_id.notNull())
|
||||
{
|
||||
updateClothingOrderingInfo(base_outfit_id,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// COF is processed if cat_id is not specified
|
||||
|
|
@ -2373,6 +2382,7 @@ void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id)
|
|||
item->setComplete(TRUE);
|
||||
item->updateServer(FALSE);
|
||||
gInventory.updateItem(item);
|
||||
|
||||
inventory_changed = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
|
|||
public:
|
||||
typedef std::vector<LLInventoryModel::item_array_t> wearables_by_type_t;
|
||||
|
||||
void updateAppearanceFromCOF();
|
||||
void updateAppearanceFromCOF(bool update_base_outfit_ordering = false);
|
||||
bool needToSaveCOF();
|
||||
void updateCOF(const LLUUID& category, bool append = false);
|
||||
void wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append);
|
||||
|
|
@ -171,7 +171,7 @@ public:
|
|||
|
||||
//Check ordering information on wearables stored in links' descriptions and update if it is invalid
|
||||
// COF is processed if cat_id is not specified
|
||||
void updateClothingOrderingInfo(LLUUID cat_id = LLUUID::null);
|
||||
void updateClothingOrderingInfo(LLUUID cat_id = LLUUID::null, bool update_base_outfit_ordering = false);
|
||||
|
||||
bool isOutfitLocked() { return mOutfitLocked; }
|
||||
|
||||
|
|
@ -226,12 +226,13 @@ public:
|
|||
class LLUpdateAppearanceOnDestroy: public LLInventoryCallback
|
||||
{
|
||||
public:
|
||||
LLUpdateAppearanceOnDestroy();
|
||||
LLUpdateAppearanceOnDestroy(bool update_base_outfit_ordering = false);
|
||||
virtual ~LLUpdateAppearanceOnDestroy();
|
||||
/* virtual */ void fire(const LLUUID& inv_item);
|
||||
|
||||
private:
|
||||
U32 mFireCount;
|
||||
bool mUpdateBaseOrder;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue