diff options
| author | Paul ProductEngine <pguslisty@productengine.com> | 2011-04-14 18:09:49 +0300 |
|---|---|---|
| committer | Paul ProductEngine <pguslisty@productengine.com> | 2011-04-14 18:09:49 +0300 |
| commit | 8785c7077633e8cfe46f4aea2d861bfa813d79b7 (patch) | |
| tree | 051e3f7d22b0342b8c600bda7f522437ece04e4f /indra/newview/llinventoryfilter.cpp | |
| parent | 88a7262340f2fc5085f4ac6600790518d01292d6 (diff) | |
STORM-898 Filter settings do not reset after unchecking 'Since Logoff' checkbox
- Corrected logic in inventory filter. Calculation of whether filter is more or less restrictive depending on time parameters was wrong.
Diffstat (limited to 'indra/newview/llinventoryfilter.cpp')
| -rw-r--r-- | indra/newview/llinventoryfilter.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index e22363c2f6..dee15a1efd 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -510,9 +510,15 @@ void LLInventoryFilter::setHoursAgo(U32 hours) { if (mFilterOps.mHoursAgo != hours) { + bool are_date_limits_valid = mFilterOps.mMinDate == time_min() && mFilterOps.mMaxDate == time_max(); + + bool is_increasing = hours > mFilterOps.mHoursAgo; + bool is_increasing_from_zero = is_increasing && !mFilterOps.mHoursAgo; + // *NOTE: need to cache last filter time, in case filter goes stale - BOOL less_restrictive = (mFilterOps.mMinDate == time_min() && mFilterOps.mMaxDate == time_max() && hours > mFilterOps.mHoursAgo); - BOOL more_restrictive = (mFilterOps.mMinDate == time_min() && mFilterOps.mMaxDate == time_max() && hours <= mFilterOps.mHoursAgo); + BOOL less_restrictive = (are_date_limits_valid && ((is_increasing && mFilterOps.mHoursAgo)) || !hours); + BOOL more_restrictive = (are_date_limits_valid && (!is_increasing && hours) || is_increasing_from_zero); + mFilterOps.mHoursAgo = hours; mFilterOps.mMinDate = time_min(); mFilterOps.mMaxDate = time_max(); |
