Incoming changes from two different project repos left viewer-development with
LLInventoryModel::removeItem() and removeCategory() plus free functions
remove_item() and remove_category() in llinventoryfunctions.cpp.
remove_category() was actually the better implementation; migrated its body
into LLInventoryModel::removeCategory(). Clearly the previous state of affairs
-- with LLInventoryModel::removeItem() plus a remove_category() free function
in a very different source file -- fooled two different developers into
overlooking the other of the pair. Unfortunately we each added different
"missing" functions, leaving us with a complete set of four.
Fix existing references to remove_item() and remove_category() free functions.
- Added xml for a new floater Appearance and registred it in the floaterreg
- Removed side tray dependencies
- Added static helper method: LLFloaterSidePanelContainer::getPanel
EXP-841 PROGRESS -- Create outbox sync button with basic enable/disable logic and animation
EXP-866 PROGRESS -- Create inbox observer to dynamically update inbox item count and badge value
EXP-872 PROGRESS -- Hide inbox and outbox unless applicable
Inbox expansion time is now saved as setting variable "LastInventoryInboxExpand".
New outbox sync button art.
Observers for items and categories are now implemented in the LLSidepanelInventory but the exact
method of use is still to be determined.
Functions are in place to show and hide the inbox and outbox panels but the logic around the
decision is TBD.
The resize bar for the inbox/outbox is now disabled when both inbox and outbox are collapsed.
Reviewed by Leyla.
Added confirmation dialog before deleting outfit from context menu and gear menu button of My Appearance -> My Outfits
- Deleted method that shows confirmation dialog in LLPanelOutfitsInventory. Moved it to the LLOutfitsList. Now confirmation dialog called before calling LLOutfitsList::removeSelected.
- Replaced native methods of deleting outfit in gear menu and context menu with LLOutfitsList::removeSelected.
- 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
canTakeOffSelected() - checking whether selected item(s) can be taken off
hasItemSelected() - checking whether any item selected
getSelectedItemsUUIDs() - returns selected items ids
- Fixed LLOutfitsList COF changes handler to update worn status of items removed from COF. Now they are updated based on the differences in original items' ids in COF.
- Fixed 'My Outfits' items worn status check to update depending on whether the item is linked in COF or not.
This is a kind of workaround to fix updating attachments' worn status because LLAppearanceMgr::updateAppearanceFromCOF is triggered erlier than new attachment links are fetched. When dumpItemArray(obj_items,"asset_dump: obj_item") is called from LLAppearanceMgr::updateAppearanceFromCOF, all attachment links have empty asset ids.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/859/.
--HG--
branch : product-engine
Reason: avatar appearance was not updated if the last selected item was an attachment.
Fix: make sure appearance is updated afterwards, regardless of items types.
Reviewed by Nyx at https://codereview.productengine.com/secondlife/r/848/
--HG--
branch : product-engine
- Removed "tab_stop" from outfit tabs to prevent passing focus to a tab chosen by default from LLUICtrl::focusFirstItem(). Besides the order of passing focus between outfit tabs by pressing "Tab" was undetermined.
- Had to remove const from the return of LLAccordionCtrl::getSelectedTab() to use the returned pointer for setting focus.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/846/.
--HG--
branch : product-engine
Changed the condition to enable the "Wear" button in My Outfits and the corresponding item in the outfit context menu.
They now get enabled for any outfit that isn't the base outfit and contains non-worn wearables.
By the way, did a minor cleanup: moved an LLAgentWearables.isCOFChangeInProgress() call to LLAppearanceMgr::getCanAddToCOF() to avoid code duplication.
Reviewed by Sergey Litovchuk at https://codereview.productengine.com/secondlife/r/832/
--HG--
branch : product-engine
Reason:
When you click on a clothing link in COF, LLAppearanceMgr::wearItemOnAvatar() removes
all COF links of the clicked wearable type -- thus invalidating all previously
obtained LLViewerInventoryItems for those links -- and then passes such an
invalid item (item_to_wear) to addCOFItemLink() which of course crashes.
Fix:
1. Handle this case in wearItemOnAvatar(): don't try wearing COF items.
2. Disable the Wear button in the inventory SP when a COF item is selected.
3. Fixed get_can_item_be_worn() to return FALSE for items which are in COF or have links in COF.
Reviewed by Nyx at https://codereview.productengine.com/secondlife/r/811/
--HG--
branch : product-engine
Details:
1 Updated condition is item can be worn considering situation when item is copied in COF but is not worn.
2 Avoided code duplication in method LLOutfitsList::canWearSelected()
reviewed by Vadim Savchuk and Neal Orman at https://codereview.productengine.com/secondlife/r/785/
--HG--
branch : product-engine
- Fixed condition for enabling the Wear button in My Outfits.
- The button was always enabled when when COF change completes, I fixed that as well.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/800/
--HG--
branch : product-engine
- Added method to accordion which allows to set color of its header's title and used it when highliting selected outfit.
- Set alias for emphasis color in colors.xml to let selected outfit color be easily changed via xml in case such decision is made(because leaving it green doesn't seem a very good idea).
- Also added alias for accordion header text color to avoid breaking of this fix if in header_text_color from accordion_tab.xml.
--HG--
branch : product-engine
- Added menu item 'Wear - Add to Current Outfit' (menu_outfit_gear.xml).
- Added menu item handler onAdd().
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/657/
--HG--
branch : product-engine
- Added wearSelectedItems() method to LLOutfitsList which wears all items selected in outfit lists (if possible- adds, else replaces).
It is called when clicking wear if there is selection of individual items(LLOutfitsList::hasItemSelected() returns true). Otherwise
whole outfit is worn.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/638
--HG--
branch : product-engine
Added additional check to avoid deselcting of items when filter is applied and made a couple of renames according to Mike's comments in review at https://codereview.productengine.com/secondlife/r/648/
--HG--
branch : product-engine
- Added availability to force showing unmatched items to LLFlatListViewEx
- Applied it to wearable items lists in LLOutfitsList
- Changed condition for outfit accordion tab showing (because now all items are visible, so checking their number doesn't help).
Used here check for a flag added in this fix, which tells whether last applied filter found any matches in the list.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/648/
--HG--
branch : product-engine
- Added common interface for My Outfits and Wearing tabs.
- Changed LLPanelOutfitsInventory to use common interface for My Outfits and Wearing tabs.
- Removed dependency on outfits side panel from inventory bridge context menus.
- Removed unused LLShowCreatedOutfit class from llagentwearables.cpp.
- Restored opening newly created outfit in My Outfits tab.
- Fixed worn items indication for Wearing tab items.
Revieved by Neal Orman at https://codereview.productengine.com/secondlife/r/604/.
--HG--
branch : product-engine
* Empty string is replaced with "Changing outfits" while changing COF;
* Fixed title to show "No Outfit" after an outfit from the Inventory is worn;
* Fixed bug with visible indicator after an empty folder is DnD from the Inventory "Clothing"
* Updated context and Gear "Wear..." menu items to take into account "isCOFChangeInProgress" state in on_enable callbacks
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/625/
--HG--
branch : product-engine
- Added bool mItemSelected variable and getter for it to determine if the selection inside outfit exists, and used it when determining whether to enable "Trash" button in My Outfits.
Reviewed by Vadim Savchuk and Neal Orman at https://codereview.productengine.com/secondlife/r/600/
--HG--
branch : product-engine