* Removed numerous places in the code that called findChild across the inventory panel unnecessarily.
* Conglomerated uses of inbox and outbox inventory panels to the sidepanel class so the pointers can be cached and functionality like selection handling can be done more efficiently.
* Optimized LLView::childHasKeyboardFocus() to work backwards up from the focus object rather than searching for children that may or may not turn out to have focus.
Reviewed by Richard.
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.
EXP-910 FIX -- Newness badge shown on suitcase inventory icon when InventoryDisplayInbox is set to False
EXP-895 FIX -- Selecting items in Marketplace Inbox does not change focus in inventory panel away from items selected in inventory panel
* Main inventory, outbox and inbox all clear the selection of the others when they gain focus
* The Fresh Item Count badge is no longer displayed on the inventory side tab button when the inbox is disabled
* The New Item Count text is no longer displayed. (we will enable it again when freshness is supported)
- LLMenuGL in menu button replaced by LLToggleableMenu that handles visibility change upon clicks inside specific button rect.
- Added visibility change signal to LLToggleableMenu to update menu button pressed state.
- Added using menu handle in LLMenuButton.
- Changed type of gear menu buttons from LLButton to LLMenuButton in all sidebar panels where gear menu button is used.
- Added setMenuPosition(), setMenu() and updateMenuOrigin() to the LLMenuButton.
- Moved actions common for displaying a context menu to LLMenuButton::toggleMenu().
- In all sidebar panels where LLButton was replaced with LLMenuButton the following steps were taken:
1. setting gearMenu and its position relative to the menuButton with LLMenuButton::setMenu()
2. setting mouse down callback for the menuButton if needed.
3. calculating the menu origin point with LLMenuButton::updateMenuOrigin() in mouse down callback
EXT-7721 FIXED Find All Links shouldn't appear when it can't be used
This required adding some minor infrastructure to support including/excluding links in search.
- LLPanelMainInventory::setUploadCostIfNeeded() - uncommented the line which enables retrieving of the upload cost price using LLGlobalEconomy class.
- Implemented LLUploadCostCalculator event handler in the llviewermenu.cpp (the fact that it should be implemented in this file was discussed with Mike Antipov).
- LLUploadCostCalculator::calculateCost() is implemented only for code readability: it's name is more descriptive than a code snippet placed directly in the constructor (LLPanelMainInventory::setUploadCostIfNeeded() works in similar way: it calculates cost_str only once).
- 'Select Linked Parts' menu was moved below 'Edit Linked Parts'.
- 'Upload' menu was added at the bottom, below 'Options' menu
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/425/
--HG--
branch : product-engine
- \"options_gear_btn\", \"trash_btn\" and \"add_btn\" now initialized using getChild of the main inventory panel (to avoid another break if the \"bottom_panel\"'s control class will be changed again from LLLayoutStack to something other, e. g. reverted back to LLPanel)
- mTrashButton member was added (which corresponds to \"trash_btn\" control) to optimize performance a little: LLPanelMainInventory::updateListCommands() updates \"trash_btn\"'s enabled state, so to avoid searching using getChild() again and again, a separate member was created.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/401/
--HG--
branch : product-engine
Implemented Recent Inventory Panel specific classes to create appropriate context menu for Folders in Recent Items Panel:
* Registered new LLInventoryRecentItemsPanel class
* Added appropriate Folder Bridge and Bridge Builder
Updated main inventory panel to not show "+" button on Recent Items tab
* Placed controls into Layout Stack.
* Change visibility of panel with "+" button while switching between tabs.
* also made bottom panel wider to be consistent with other side panels (see screenshots).
Reviewed by Loren Shih at https://codereview.productengine.com/secondlife/r/334/
--HG--
branch : product-engine
- added handling the drag add drop inventory items to resident picker
- added "Share" verb button to the inventory panel which opens resident picker
- added "Share" menu item to the individual inventory context menu which acts as verb button
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/215/
--HG--
branch : product-engine