FIRE-30096: Re-enable display of attachment mismatch state appearance list (it's expected behavior attachments will be displayed in red for a brief amount of time during attach/detach due to the two distinct sub-processes involved)

master
Ansariel 2020-09-27 21:56:13 +02:00
parent 408a893939
commit 668df7c69c
4 changed files with 40 additions and 7 deletions

View File

@ -4672,7 +4672,9 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id)
LLAttachmentsMgr::instance().onAttachmentArrived(item_id);
mAttachmentsChangeSignal();
// <FS:Ansariel> Better attachment list
//mAttachmentsChangeSignal();
mAttachmentsChangeSignal(item_id);
}
void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id)
@ -4694,7 +4696,9 @@ void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id)
//LL_INFOS() << "no link changes, inv link not enabled" << LL_ENDL;
}
mAttachmentsChangeSignal();
// <FS:Ansariel> Better attachment list
//mAttachmentsChangeSignal();
mAttachmentsChangeSignal(item_id);
}
BOOL LLAppearanceMgr::getIsInCOF(const LLUUID& obj_id) const

View File

@ -249,8 +249,12 @@ public:
void setAppearanceServiceURL(const std::string& url) { mAppearanceServiceURL = url; }
std::string getAppearanceServiceURL() const;
typedef boost::function<void ()> attachments_changed_callback_t;
typedef boost::signals2::signal<void ()> attachments_changed_signal_t;
// <FS:Ansariel> Better attachment list
//typedef boost::function<void ()> attachments_changed_callback_t;
//typedef boost::signals2::signal<void ()> attachments_changed_signal_t;
typedef boost::function<void (const LLUUID& item_id)> attachments_changed_callback_t;
typedef boost::signals2::signal<void (const LLUUID& item_id)> attachments_changed_signal_t;
// </FS:Ansariel>
boost::signals2::connection setAttachmentsChangedCallback(attachments_changed_callback_t cb);
// [SL:KB] - Patch: Appearance-Misc

View File

@ -141,8 +141,7 @@ void LLPanelWearableOutfitItem::updateItem(const std::string& name,
// search_label += LLTrans::getString("worn");
// item_state = IS_WORN;
//}
//if (mWornIndicationEnabled && get_is_item_worn(mInventoryItemUUID)) // This doesn't work properly yet, so just check for CoF to prevent false warnings
if (mWornIndicationEnabled && LLAppearanceMgr::instance().isLinkedInCOF(mInventoryItemUUID))
if (mWornIndicationEnabled && get_is_item_worn(mInventoryItemUUID))
{
std::string attachment_point_name;
if (getType() != LLAssetType::AT_OBJECT || !isAgentAvatarValid()) // System layer or error condition, can't figure out attach point
@ -769,6 +768,7 @@ LLWearableItemsList::Params::Params()
LLWearableItemsList::LLWearableItemsList(const LLWearableItemsList::Params& p)
: LLInventoryItemsList(p)
, mAttachmentsChangedCallbackConnection() // <FS:Ansariel> Better attachment list
{
setSortOrder(E_SORT_BY_TYPE_LAYER, false);
mIsStandalone = p.standalone;
@ -784,11 +784,21 @@ LLWearableItemsList::LLWearableItemsList(const LLWearableItemsList::Params& p)
mShowComplexity = p.show_complexity;
mBodyPartsComplexity = 0;
// </FS:Ansariel>
// <FS:Ansariel> Better attachment list
mAttachmentsChangedCallbackConnection = LLAppearanceMgr::instance().setAttachmentsChangedCallback(boost::bind(&LLWearableItemsList::updateChangedItem, this, _1));
}
// virtual
LLWearableItemsList::~LLWearableItemsList()
{}
{
// <FS:Ansariel> Better attachment list
if (mAttachmentsChangedCallbackConnection.connected())
{
mAttachmentsChangedCallbackConnection.disconnect();
}
// </FS:Ansariel>
}
// virtual
LLPanel* LLWearableItemsList::createNewItem(LLViewerInventoryItem* item)
@ -881,6 +891,15 @@ void LLWearableItemsList::updateChangedItems(const uuid_vec_t& changed_items_uui
}
}
// <FS:Ansariel> Better attachment list
void LLWearableItemsList::updateChangedItem(const LLUUID& changed_item_uuid)
{
uuid_vec_t items;
items.push_back(changed_item_uuid);
updateChangedItems(items);
}
// </FS:Ansariel>
void LLWearableItemsList::onRightClick(S32 x, S32 y)
{
uuid_vec_t selected_uuids;

View File

@ -502,6 +502,9 @@ public:
*/
void updateChangedItems(const uuid_vec_t& changed_items_uuids);
// <FS:Ansariel> Better attachment list
void updateChangedItem(const LLUUID& changed_item_uuid);
bool isStandalone() const { return mIsStandalone; }
ESortOrder getSortOrder() const { return mSortOrder; }
@ -532,6 +535,9 @@ protected:
std::map<LLUUID, U32> mItemComplexityMap;
U32 mBodyPartsComplexity;
// </FS:Ansariel>
// <FS:Ansariel> Better attachment list
boost::signals2::connection mAttachmentsChangedCallbackConnection;
};
#endif //LL_LLWEARABLEITEMSLIST_H