Reason: An inventory observer (LLFilteredWearableListManager) tried to use
a deleted collect functor (LLFilterItem::collector in LLPanelOutfitEdit::mListViewItemTypes).
Fix: De-register (and delete) the observer when the collector gets deleted.
- 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
Added checking when item in COF list selected: IF (FolderListView is shown) THEN (don't switch to the FlatListView AND set proper filter for FlatListView).
Reviewed by Vadim Savchuk
- After wearable removed from COF list, check: whether any outfit of the same wearable type as removed left in COF. If left then select it.
- Added method selectClothing(LLWearableType::EType) to the LLCOFWearables that selects first clothing from COF of specified WearableType
Reviewed by Vadim Savchuk
- Modified LLWearableItemTypeNameComparator so that it can be more reusable and adjustable
- Set LLWearableItemTypeNameComparator for WearableItemsList ('List view' of 'Add More' panel) due to sort clothings by name
- Modified and applied patch form https://codereview.productengine.com/secondlife/r/620/diff/2/#index_header. This patch was discarded because specification was changed
Restored diff after bad merge at 13817
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/765/
--HG--
branch : product-engine
- Added selected item type (in flat list view) as criterion when determining filter type in 'Add More' panel
- Fixed LLAccordionCtrl::getSelectedTab() method. When 'selection_enabled = false' for LLAccordionCtrlTab, LLAccordionCtrl::getSelectedTab() returned NULL, even if some accordion tab was selected. Now it's OK. Method returns currently selected LLAccordionCtrlTab.
Recovered from bad merge in 13811
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/790/
--HG--
branch : product-engine
- Replaced pointers passed to 'Add More' gear menu with LLHandle.
- Removed storing 'Add More' panel sort order from settings because the order is changed each time the panel opens.
- Replaced creating items comparator in LLPanelOutfitEdit::postBuild() with a static comparator in llwearableitemslist.cpp.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/826/.
--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
- Added selected item type (in flat list view) as criterion when determining filter type in 'Add More' panel
- Fixed LLAccordionCtrl::getSelectedTab() method. When 'selection_enabled = false' for LLAccordionCtrlTab, LLAccordionCtrl::getSelectedTab() returned NULL, even if some accordion tab was selected. Now it's OK. Method returns currently selected LLAccordionCtrlTab.
Reviewed by Mike Antipov, Neal Orman and Richard Nelson at https://codereview.productengine.com/secondlife/r/790/
--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
Added missed (during bad merge 14077:5b5cc4a8642d) code to the llpanloutfitedit(.h/.cpp):
recover LLPanelOutfitEdit::updateWearablesPanelVerbButtons() and LLPanelOutfitEdit::saveListSelection() methods
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/817/
--HG--
branch : product-engine
Now accordion on panels 'Edit Outfit', 'Editing Shape', 'Editing Hair', 'Editing Eyes', 'Editing Skin', 'Group Profile' and 'Place Profile' are reset when the panels are closed and then opened again.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/782/
--HG--
branch : product-engine
- Modified LLWearableItemTypeNameComparator so that it can be more reusable and adjustable
- Set LLWearableItemTypeNameComparator for WearableItemsList ('List view' of 'Add More' panel) due to sort clothings by name
- Modified and applied patch form https://codereview.productengine.com/secondlife/r/620/diff/2/#index_header. This patch was discarded because specification was changed
Reviewed by Mike Antipov and Vadim Savchuk at https://codereview.productengine.com/secondlife/r/765/
--HG--
branch : product-engine