diff options
| author | Andrew Dyukov <adyukov@productengine.com> | 2010-06-24 01:52:26 +0300 |
|---|---|---|
| committer | Andrew Dyukov <adyukov@productengine.com> | 2010-06-24 01:52:26 +0300 |
| commit | 9aad53a4370b7647e4f907be7c3dc908906491b9 (patch) | |
| tree | c84cd35c01a96555de9b9df7887826bc293aeb53 /indra/llui/llflatlistview.cpp | |
| parent | 2583a4d6ea60aeefa1d21f578d6fbf1f2f68c72a (diff) | |
EXT-7158 FIXED Implemented showing of full outfit content if its name or any item(s) inside it match current filter.
- 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
Diffstat (limited to 'indra/llui/llflatlistview.cpp')
| -rw-r--r-- | indra/llui/llflatlistview.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index c7463e581c..f22b49f30f 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -1226,6 +1226,8 @@ LLFlatListViewEx::LLFlatListViewEx(const Params& p) : LLFlatListView(p) , mNoFilteredItemsMsg(p.no_filtered_items_msg) , mNoItemsMsg(p.no_items_msg) +, mForceShowingUnmatchedItems(false) +, mLastFilterSucceded(false) { } @@ -1250,6 +1252,16 @@ void LLFlatListViewEx::updateNoItemsMessage(const std::string& filter_string) } +bool LLFlatListViewEx::getForceShowingUnmatchedItems() +{ + return mForceShowingUnmatchedItems; +} + +void LLFlatListViewEx::setForceShowingUnmatchedItems(bool show) +{ + mForceShowingUnmatchedItems = show; +} + void LLFlatListViewEx::setFilterSubString(const std::string& filter_str) { if (0 != LLStringUtil::compareInsensitive(filter_str, mFilterSubString)) @@ -1273,6 +1285,7 @@ void LLFlatListViewEx::filterItems() item_panel_list_t items; getItems(items); + mLastFilterSucceded = false; for (item_panel_list_t::iterator iter = items.begin(), iter_end = items.end(); @@ -1283,13 +1296,14 @@ void LLFlatListViewEx::filterItems() // i.e. we don't hide items that don't support 'match_filter' action, separators etc. if (0 == pItem->notify(action)) { + mLastFilterSucceded = true; pItem->setVisible(true); } else { // TODO: implement (re)storing of current selection. selectItem(pItem, false); - pItem->setVisible(false); + pItem->setVisible(mForceShowingUnmatchedItems); } } @@ -1297,4 +1311,9 @@ void LLFlatListViewEx::filterItems() notifyParentItemsRectChanged(); } +bool LLFlatListViewEx::wasLasFilterSuccessfull() +{ + return mLastFilterSucceded; +} + //EOF |
