summaryrefslogtreecommitdiff
path: root/indra/llui/llflatlistview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/llflatlistview.cpp')
-rw-r--r--indra/llui/llflatlistview.cpp21
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