Commit Graph

47 Commits (95e44923920fbd57eaeec50ae696aee80405b457)

Author SHA1 Message Date
Andrey Kleshchev c2460e2dbd #4724 Fix performance problems with My Outfits 2025-09-24 16:43:24 +03:00
Andrey Lihatskiy ae93198735 Merge branch 'main' into marchcat/maint-c-restore
# Conflicts:
#	indra/llcommon/lldate.h
#	indra/newview/llappviewer.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llmaterialeditor.cpp
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llvoavatar.cpp
2025-04-15 19:31:20 +03:00
Rye d915cf17df Try to parallelize xcode builds further and add more headers to PCH to reduce build time 2025-03-12 18:37:27 +02:00
Andrey Kleshchev 0dcc912cec Merge main into inventory_favorites
# Conflicts:
#	indra/llui/llfolderviewmodel.h
#	indra/newview/llpanelwearing.cpp
#	indra/newview/llwearableitemslist.cpp
2024-06-10 19:25:02 +03:00
Andrey Kleshchev bd8438f708 viewer#1619 Fix outfits search pulling up results sometimes
Search forces a refresh - can search items that don't exist yet
Always notify parent of rect changes despite visibility (alterantively -
rearrange on open)
2024-06-07 12:07:40 +03:00
Andrey Lihatskiy 1b68f71348 #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed 2024-04-29 07:56:09 +03:00
Alexander Gavriliuk 45a1a94a35 SL-20432 Filtering My Outfits with big number of items freezes UI 2023-10-11 08:40:50 +02:00
Dave Parks 8d20480c5f SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton 2021-10-28 18:06:21 +00:00
andreykproductengine b7b98918eb MAINT-4950 Appearance panel performance improvements. 2016-09-26 21:29:20 +03:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Richard Linden 697d2e720b renamed TimeBlock to BlockTimerStatHandle 2013-10-15 20:24:42 -07:00
Richard Linden cbe397ad13 changed fast timer over to using macro
another attempt to move mem stat into base class
2013-09-05 14:04:13 -07:00
Richard Linden e340009fc5 second phase summer cleaning
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-08-09 17:11:19 -07:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Tofu Linden e416840f85 Backed out changeset c3d41f18ce2b
back-out the back-out for this branch.  yay.
2010-08-24 19:22:00 +01:00
Tofu Linden 98cc236503 Backed out changeset a62bf7c0af21
Backing out this merge that I pushed (prematurely) to the wrong place.
2010-08-24 18:44:39 +01:00
Tofu Linden 6ba23344c9 merge heads. whew. 2010-08-24 18:37:53 +01:00
Oz Linden 06b0d72efa Change license from GPL to LGPL (version 2.1) 2010-08-13 07:24:57 -04:00
Richard Linden 15247f0869 Backed out changeset: 58571b4e704b 2010-07-27 14:22:14 -07:00
Dessie Linden 5d85dad85f Reverted changeset 2bb10eae42bf 2010-07-15 12:31:08 -07:00
Vadim Savchuk ba1123e3e4 Manual merge from default branch
Resolved conflicts in llpaneloutfitedit.cpp

--HG--
branch : product-engine
2010-07-13 18:54:16 +03:00
Richard Linden 1f79bee86e EXT-8237 FIX Opening up Edit Outfit- Add More->Shirt causes FPS to drop from 60fps to 18fps for a really long time
EXT-8235 FIX HUGE long delay when reopening and/or closing edit outfit sidepanel if "Add More..." is active
EXT-7695 FIX UI lockup after add wearable, right click av -> Change Outfit

reviewed by Vir
2010-07-09 14:26:56 -07:00
Paul Guslisty 5285a7fa7e EXT-7565 FIXED Would be nice to preserve selection while switching between folder/list view modes
- Created callback called 'SaveSelecton' (which preserves selection while switching between folder/list view modes) for folder/list view modes buttons in LLPanelOutfitEdit.

- Added 'scrollToShowFirstSelectedItem' method in the LLFlatListView which scrools and shows the first selected item in case multiselection.

- It's possible to set selection for flat list view items before list is build. The result is that any items will be selected. To get rid of it:
   1. Overrided LLFlatListView::selectItemByValue method in LLInventoryItemsList so that if list is not created yet, items ids are saved to the vector.
   2. Added 'LLInventoryItemsList::updateSelection()' method which selects items with ids from that vector when list is created.

- A little refactoring: moved funcionality of updating WearablesPanel's verb buttons to the separate method called LLPanelOutfitEdit::updateWearablesPanelVerbButtons() to made code more readable and self-explanatory

Reviewed by Vadim Savchuk and Neal Orman at https://codereview.productengine.com/secondlife/r/579/

--HG--
branch : product-engine
2010-07-01 20:00:00 +03:00
Sergei Litovchuk a0258435eb EXT-7609 FIXED item title font size.
- Moved inventory list item panel to a separate file.
- Added xui customizable styles for wearable list items.

Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/551/.

--HG--
branch : product-engine
2010-06-19 00:03:44 +03:00
Vladimir Pchelko 451ee947d6 EXT-7751 FIXED Show tooltip condition was updated
Fix descrition:
Show tooltip, for long-named items (title text size > text box size) when mouse over text box rectangle.

Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/576/

--HG--
branch : product-engine
2010-06-17 21:30:22 +03:00
Sergei Litovchuk 8d2ddff47e EXT-7609 FIXED Added worn items indication with bold text.
Fixed updating worn items indication.

Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/551/.

--HG--
branch : product-engine
2010-06-17 17:42:09 +03:00
Tofu Linden ca21110135 grr, dos2unix again 2010-06-17 11:47:53 +01:00
Vladimir Pchelko b9a468aff6 EXT-7751 FIXED Sets title text for ToolTip and show ToolTip when title text > text boxsize
Reviewed by Vadim Savchuk and Mike Antipov at https://codereview.productengine.com/secondlife/r/576/

--HG--
branch : product-engine
2010-06-16 13:53:39 +03:00
Sergei Litovchuk ab399e0cd5 EXT-7609 FIXED Item name (worn) suffix made searchable.
- Wearable list items filter now searches sub-string in whole item title including (worn) suffix.
- Removed (worn) indication from items which don't need it in Edit Outfit. Only worn items can be edited there.
- Added null pointer checks for inventory item member of LLPanelInventoryListItemBase class and its descendants.

Reviewed by Vadim Savchuk https://codereview.productengine.com/secondlife/r/551/.

--HG--
branch : product-engine
2010-06-10 22:49:25 +03:00
Vadim Savchuk c757446ac7 Merge from default branch
--HG--
branch : product-engine
2010-06-11 14:10:13 +03:00
Sergei Litovchuk 0480e29597 EXT-7609 FIXED Added worn items indication in Appearance panel.
- Added (worn) suffix to indicate worn item of LLPanelInventoryListItemBase type (all flat list items in Appearance panel).
- Used LLOutfitObserver for updating (worn) suffix when user wears an item from My Outfits list.
- Added updating only items and links to items with specific UUIDs in LLWearableItemsList.

Reviewed by Vadim Savchuk https://codereview.productengine.com/secondlife/r/551/

--HG--
branch : product-engine
2010-06-10 15:42:23 +03:00
Loren Shih e414a91d7f EXT-7430 : Create art overlay for inventory icons that are links
Took out explicit _Link icons and replaced with overlay.
Removed links overlays from non-main-inventory-floater panels.
2010-06-09 17:09:42 -04:00
Andrew Dyukov 7902899df5 EXT-7511 FIXED Fixed problems in appearance UI
- Made slight changes in xml according to requirements.

- Added mForceNoLinksOnIcons bool member to LLPanelInventoryListItemBase. It is used in LLPanelWearableListItem to disable showing of link icons as
was requested in ticket.

- Created icon for divider 3 pixels high as asked by Erica in EXT-7233. To properly show and hide it made changes to LLCOFWearables::buildClothingListItem
which now not only showes separator but also reshapes panel depending on its visibility. Increased heights of body parts, dummy clothing and attachment items because
dividers are now 2 pxls higher and they always have dividers. Changed heights of buttons accordingly.

Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/502/

--HG--
branch : product-engine
2010-06-03 16:21:56 +03:00
Tofu Linden 3927d18327 CID-466
Checker: NULL_RETURNS
Function: LLInventoryItemsList::refresh()
File: /indra/newview/llinventoryitemslist.cpp
2010-05-28 12:31:43 +01:00
Sergei Litovchuk 336934c490 Fixed potential crash in LLInventoryItemsList - unsubscribed from callback in destructor.
Reviewed by Mike Antipov.

--HG--
branch : product-engine
2010-05-21 17:28:29 +03:00
Sergei Litovchuk 09a58b804b EXT-7158 FIXED Moved lltextutil from newview to llui library.
Reviewed by Richard Nelson and Mike Antipov at https://codereview.productengine.com/secondlife/r/363/

--HG--
branch : product-engine
2010-05-19 01:20:39 +03:00
Sergei Litovchuk d8b989a87b EXT-7158 ADDITIONAL FIX Optimization and implementation fix
- Fixed issue with filter not applied to outfit newly added while filtering is active.
- Optimization of refreshing outfit list when filter is applied - list is not refreshed on every list visibility change.

Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/394/

--HG--
branch : product-engine
2010-05-17 18:57:03 +03:00
Sergei Litovchuk a968046282 EXT-7158 FIXED Implemented filter in "My Outfits" tab.
- Added accordion tab title highlighting setter and title getter.
- Added filtered tabs title highlighting.
- Tabs which don't pass filter are hidden.
- Added applying filter on list refresh event to avoid refreshing list on every filter change.
- Moved part of LLTextUtil to llui/lluitextutil to reuse code in llaccordionctrltab.
- Fixed passing list size to mRefreshCompleteSignal.
- Added list refresh callback to LLInventoryItemsList for checking tab visibility  without re-applying filter sub-string.

Committed to proceed with dependent tasks.
If there are any comments/suggestions related to text utils this part of code may be changed without requiring much effort.

Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/363/

--HG--
branch : product-engine
2010-05-13 19:31:50 +03:00
Loren Shih 35bf78478c EXT-7306 : FIXED : Add shortcut-style icons for inventory links
EXT-7312 : FIXED : INFRASTRUCTURE : Cleanup LLPanelObjectInventory

Fixed a few minor bugs with LLInventoryIcon being called with incorrect arguments.
Big cleanup of LLPanelobjectInventory to make better use of inheritance.
Added LLInventoryIcon class and did some major refactoring for how it determines inventory icons from item bridges.
2010-05-11 17:43:00 -04:00
Loren Shih 64da5083d0 EXT-7306 : FIXED : Add shortcut-style icons for inventory links
EXT-7295 : FIXED : INFRASTRUCTURE : Cleaned up Inventory Icon code

Inventory link icons were designed from scratch.
Added LLInventoryIcon class and did some major refactoring for how it determines inventory icons from item bridges.
2010-05-11 13:01:27 -04:00
Eugene Mutavchi d6edc4cd12 Implemented normal EXT-7002 (Inventory flat list needs optimization.):
- changed the LLInventoryItemsList::addNewItem() to add item to the list without immediately rearranging
 - implemented LLFlatListViewEx::setFilterSubString(), sets up new filter string and filters the list.
 - implemented LLFlatListViewEx::filterItems(), filters the list, rearranges and notifies parent about shape changes. The list items are filtered using the notify() functionality, without need in adding/removing them on each filter call. It sends 'match_filter' request to items and interprets the returned zero as sign of matched filter string, i.e. we don't hide items that don't support 'match_filter' action(separators etc).
 - filtring of LLOutfitsList.
 Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/342/

--HG--
branch : product-engine
2010-04-30 18:27:24 +03:00
Sergei Litovchuk 20d95dd523 (EXT-6722) Create modified inventory view for "my outfits" tab in top-level appearance sidebar (tier 2)
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
2010-04-29 20:11:58 +03:00
Dmitry Zaporozhan 02d6922727 Fixed EXT-7163(normal) - Create dummy inventory item panel (an item panel for unworn wearable types)
Added new wearable list item - LLPanelDummyClothingListItem for not worn wearable types, it displays grayed wearable type icon, grayed
title '<clothing type> not worn' and 'add' button.
Modified base class to be more flexible.
Moved init() to protected section.
Modified COF panel to use dummy item.

Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/335/

--HG--
branch : product-engine
2010-04-29 19:06:13 +03:00
Dmitry Zaporozhan e1cf84c9b6 Fixed EXT-6550(major) - Edit Outfit: Fix alignment of in-line edit button and put proper icon on it
Replaced LLPanelInventoryListItem with LLPanelInventoryListItem. This class is capable of showing widgets on left and right sides of panel.
Implemented LLPanelClothingListItem and LLPanelBodyPartListItem - makes use of new LLPanelInventoryListItem and is able to show buttons specified in tickets. Buttons are
shown on mouse_enter event and hidden on mouse_leave event. Buttons are - delete, move up, move down, lock, edit. It's item's user responsibility
to control buttons visibility.
Made LLInventoryItemsList::addNewItem virtual to allow inheritors create specific(non-default) items.

Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/325/

--HG--
branch : product-engine
2010-04-28 20:08:10 +03:00
Sergei Litovchuk fbfc851766 (EXT-6722) Create modified inventory view for "my outfits" tab in top-level appearance sidebar (tier 1)
llui:
- Setting container panel for accordion tab control to dynamically add tabs to accordions.
- Added method to dynamically remove accordion tabs.
- Added LLIconCtrl image setter.

newview:
- Class LLOutfitsList - a list of agents's outfits from "My Outfits" inventory category which represents each outfit by an accordion tab with a list of items inside it.
- Class LLWearableItemsList - a list of wearable items used in each accordion tab of "My Outfits" tab.
- Class LLInventoryItemsList - a base class for LLWearableItemsList that represents inventory items by panels in LLFlatListView.
- Class LLPanelInventoryItem - inventory item representation for a flat list. Item icon is set according to item type.
- Class LLInventoryCategoriesObserver - an observer used in LLOutfitsList for monitoring changes to "My Outfits" inventory category and updating outfits accordion tabs and list of items for each outfit.

Reviewed by Mike Antipov https://codereview.productengine.com/secondlife/r/285/

--HG--
branch : product-engine
2010-04-26 18:56:28 +03:00
Dmitry Zaporozhan b15e2beabf Implemented EXT-6724(normal task) - Implement flat list view of filtered inventory for "add wearables" panel of outfit editor
1. Modified LLInventoryItemsList - implemented delayed item construction. Items are added during draw, not more than 50 items will be added in single draw. This lets us reduce system overload during multiple panel construction.
2. Implemented LLFilteredWearableListManager to populate inventory flat list with data. This class filters entire inventory according to specified filter and populates specified inventory list with data.
3. Created LLCommonUtil::computeDifference() to avoid code copy-pasting(will use it in all appropriate places in next review request)

Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/301/

--HG--
branch : product-engine
2010-04-22 15:48:48 +03:00
Dmitry Zaporozhan 2ce7556e53 Implemented by SL EXT-6722(normal task) - Create modified inventory view for "my outfits" tab in top-level appearance sidebar (tier 1)
llui:
- Setting container panel for accordion tab control to dynamically add tabs to accordions.
- Added method to dynamically remove accordion tabs.
- Added LLIconCtrl image setter.

newview:
- Class LLOutfitsList - a list of agents's outfits from "My Outfits" inventory category which represents each outfit by an accordion tab with a list of items inside it.
- Class LLWearableItemsList - a list of wearable items used in each accordion tab of "My Outfits" tab.
- Class LLInventoryItemsList - a base class for LLWearableItemsList that represents inventory items by panels in LLFlatListView.
- Class LLPanelInventoryItem - inventory item representation for a flat list. Item icon is set according to item type.
- Class LLInventoryCategoriesObserver - an observer used in LLOutfitsList for monitoring changes to "My Outfits" inventory category and updating outfits accordion tabs and list of items for each outfit.

Known issues:
- Only first outfit tab is displayed in "My Outfits" until this tab is expanded.
- Bottom bar buttons and filter field not functioning for "My Outfits" tab since LLOutfitsList still doesn't support selection, filtering and sorting.
- "My Outfits" and "Wearing" tabs of "Appearance" side panel might need a common interface to use LLOutfitsList and LLinventoryPanel as tabs in LLPanelOutfitsInventory or "Wearing" tab should be replaces with LLOutfitsList class object i.e. a flat list.

On review - https://codereview.productengine.com/secondlife/r/285/

--HG--
branch : product-engine
2010-04-21 15:44:24 +03:00