summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryitemslist.cpp
diff options
context:
space:
mode:
authorSergei Litovchuk <slitovchuk@productengine.com>2010-05-17 18:57:03 +0300
committerSergei Litovchuk <slitovchuk@productengine.com>2010-05-17 18:57:03 +0300
commitd8b989a87b94fd851404b42094e88c0a0c213ac8 (patch)
tree27ab803f2744eff49c944cc5a5b8291aa7465636 /indra/newview/llinventoryitemslist.cpp
parentfcea61df76ce69b438d26037df4bafc3380f129d (diff)
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
Diffstat (limited to 'indra/newview/llinventoryitemslist.cpp')
-rw-r--r--indra/newview/llinventoryitemslist.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index 2d1d401cd4..9b592e79af 100644
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
@@ -322,7 +322,7 @@ LLInventoryItemsList::Params::Params()
LLInventoryItemsList::LLInventoryItemsList(const LLInventoryItemsList::Params& p)
: LLFlatListViewEx(p)
, mNeedsRefresh(false)
-, mPrevVisibility(false)
+, mForceRefresh(false)
{
// TODO: mCommitOnSelectionChange is set to "false" in LLFlatListView
// but reset to true in all derived classes. This settings might need to
@@ -356,14 +356,13 @@ boost::signals2::connection LLInventoryItemsList::setRefreshCompleteCallback(con
void LLInventoryItemsList::doIdle()
{
- bool cur_visibility = getVisible();
- if(cur_visibility != mPrevVisibility || mNeedsRefresh)
+ if (!mNeedsRefresh) return;
+
+ if (isInVisibleChain() || mForceRefresh)
{
refresh();
mRefreshCompleteSignal(this, LLSD());
-
- mPrevVisibility = getVisible();
}
}
@@ -414,6 +413,7 @@ void LLInventoryItemsList::refresh()
bool needs_refresh = add_limit_exceeded;
setNeedsRefresh(needs_refresh);
+ setForceRefresh(needs_refresh);
}
void LLInventoryItemsList::computeDifference(