connections. Convert background and foreground fetches, both
items and folders/inventory and library, to use new HTTP.
Non-fetch inventory operations continue to use LLHTTPClient
(at least for now). Error handling and retry on fetches wasn't
100% previously and that's still the case. I'll rip through
this again to clean that up. Cleaned up logging in much of
the inventory code with consistent labels on logging events
and correct macros (removed deprecation warnings).
This started as an attempt to get libcurl to do pipelining
on POSTs and PUTs. Discovered that this is going to be
very difficult to support in general in libcurl. May
look at that again in the future.
consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders
EXP-929 FIX -- First Direct Delivery item purchased while logged in: Received Items folder visible in inventory and item not visible in Received items panel - no badge count update
* Inbox and Outbox inventory panels now live in their own XML files and are hot loaded into place when appropriate, like when the "Received Items" folder is first created, for example.
* The Inbox and Outbox panels now show relevant default messages when the folders are empty or do not exist
* Added LLInventoryCategoryAddedObserver, a new inventory observer type to observe added folders
* Hacked LLInventoryPanel to properly set up inbox and outbox inventory views for the "Received Items" folder and the "Merchant Outbox" folder that aren't created with the proper system folder type
* Changed inventory badge count computation to use LLFolderView rather than the inventory directly
* Applied various focus, selection and other inbox fixes to the outbox
Reviewed by Richard.
The problem was caused by an outdated message name stored in LLInventoryObserver::mMessageName and not updated properly in LLInventoryModel::notifyObservers().
The message name used in LLInventoryAddedObserver::changed() was the name of the message most recently passed by LLInventoryModel::notifyObservers(), instead of the name of the latest actually received message. Using the most recent message name in this case fixed the problem.
Reason: LLInventoryFetchItemsObserver is used to fetch necessary gesture items. Its logic was based on count of "inventory changed" events. In case of there was too many requests stored item UUIDSs are be removed from queue by mistake - notification can be triggered because some other item is renamed.
This issue can appear wherever LLInventoryFetchItemsObserver is used.
Fix: improved logic to make decision to give up fetching items.
For now it bases on period while waiting items to arrive from server and a number of attempts to repeate waiting.
This is a constants of the LLInventoryFetchItemsObserver (10 times by 10 seconds)
Tested with test case in JIRA (total count of inventory items - 13,888).
Most likely that was a reason of inventory loss (EXT-7503).
Reviewed by Brad Payne at https://codereview.productengine.com/secondlife/r/507/
--HG--
branch : product-engine
* Moved initialization (with start fetch) of the LLFilteredWearableListManager into LLPanelOutfitEdit::onOpen
* LLFilteredWearableListManager::changed now ignores non-related inventory changes (CALLING_CARD, GESTURE, SORT)
Tried to fix an issue with empty Gesture list on startup with clean inventory cache.
Reason: logic is based on count of "inventory changed" events. In case of there was too many requests requested items can be removed from queue by mistake.
* Increased a number of the "change()" method calls to wait fetched items.
Unfortunately this only works if My Inventory category does not have too many children. An does not work if it has 2000+ items
Logic to remove item from the incompleted list should be based on timer and number of attempts.
Also add some debug information about fetching inventory category and its content to log.
Reviewed by Brad Payne at https://codereview.productengine.com/secondlife/r/456/
--HG--
branch : product-engine
- HandleDragAndDrop() method was overridden in the LLPanelOutfitEdit class to handle drag and drop operations of the Clothing, Body Parts and Attachments.
- In panel_outfit_edit.xml parameter allow_multi_select was set to true to allow multiple selections.
- Added class LLCOFDragAndDropObserver to implement the drag and drop.
- Class LLInventoryMoveFromWorldObserver renamed to LLInventoryAddItemByAssetObserver.
Drag and drop reimplemented using functionality of the LLInventoryAddItemByAssetObserver.
Reviewed by Neal Orman and Mike Antipov at https://codereview.productengine.com/secondlife/r/373/
--HG--
branch : product-engine
llui:
- Added accordion tab title setter.
- Added setters for accordion tab focus changes callbacks.
newview:
- Fixed observer used for outfit items collecting. Added checking number of fetched items.
- Added outfit selection and enabled "replace outfit" and "add to outfit" commands for selected outfit.
Reviewed by Mike Antipov https://codereview.productengine.com/secondlife/r/332/
--HG--
branch : product-engine