diff options
author | Sergei Litovchuk <slitovchuk@productengine.com> | 2010-05-17 18:57:03 +0300 |
---|---|---|
committer | Sergei Litovchuk <slitovchuk@productengine.com> | 2010-05-17 18:57:03 +0300 |
commit | d8b989a87b94fd851404b42094e88c0a0c213ac8 (patch) | |
tree | 27ab803f2744eff49c944cc5a5b8291aa7465636 /indra/newview/llinventoryitemslist.cpp | |
parent | fcea61df76ce69b438d26037df4bafc3380f129d (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.cpp | 10 |
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( |