diff options
| author | Jonathan Yap <jhwelch@gmail.com> | 2014-06-05 17:06:59 -0400 |
|---|---|---|
| committer | Jonathan Yap <jhwelch@gmail.com> | 2014-06-05 17:06:59 -0400 |
| commit | 4da7f68549f531a6bec3643727cc68fb29a00bfa (patch) | |
| tree | dbcf9af2e55788a68d7819c0d547ae775b47005a /indra/newview/llinventoryfilter.cpp | |
| parent | 644ca6a0f8a7759119814f88df93b8e838321a12 (diff) | |
VWR-25689 Support 'older than' when inventory filtering
Diffstat (limited to 'indra/newview/llinventoryfilter.cpp')
| -rwxr-xr-x | indra/newview/llinventoryfilter.cpp | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 000eee3317..25447da53b 100755 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -37,6 +37,7 @@ #include "llfolderview.h" #include "llinventorybridge.h" #include "llviewerfoldertype.h" +#include "llradiogroup.h" // linden library includes #include "llclipboard.h" @@ -51,6 +52,7 @@ LLInventoryFilter::FilterOps::FilterOps(const Params& p) mMinDate(p.date_range.min_date), mMaxDate(p.date_range.max_date), mHoursAgo(p.hours_ago), + mDateSearchDirection(p.date_search_direction), mShowFolderState(p.show_folder_state), mPermissions(p.permissions), mFilterTypes(p.types), @@ -209,6 +211,7 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent { const U16 HOURS_TO_SECONDS = 3600; time_t earliest = time_corrected() - mFilterOps.mHoursAgo * HOURS_TO_SECONDS; + if (mFilterOps.mMinDate > time_min() && mFilterOps.mMinDate < earliest) { earliest = mFilterOps.mMinDate; @@ -217,9 +220,20 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent { earliest = 0; } - if (listener->getCreationDate() < earliest || - listener->getCreationDate() > mFilterOps.mMaxDate) - return FALSE; + +llwarns << "DBG 3 " << mFilterOps.mDateSearchDirection << llendl; + if (1 == mFilterOps.mDateSearchDirection) + { + if (listener->getCreationDate() < earliest || + listener->getCreationDate() > mFilterOps.mMaxDate) + return FALSE; + } + else + { + if (listener->getCreationDate() > earliest || + listener->getCreationDate() > mFilterOps.mMaxDate) + return FALSE; + } } //////////////////////////////////////////////////////////////////////////////// @@ -635,6 +649,13 @@ void LLInventoryFilter::setHoursAgo(U32 hours) 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); + // Toggle for older than search + if (0 == mFilterOps.mDateSearchDirection) + { + less_restrictive = !less_restrictive; + more_restrictive = !more_restrictive; + } + mFilterOps.mHoursAgo = hours; mFilterOps.mMinDate = time_min(); mFilterOps.mMaxDate = time_max(); @@ -662,6 +683,16 @@ void LLInventoryFilter::setHoursAgo(U32 hours) } } +void LLInventoryFilter::setDateSearchDirection(U32 direction) +{ +llwarns << "DBG 2 " << direction << llendl; + if (direction != mFilterOps.mDateSearchDirection) + { + mFilterOps.mDateSearchDirection = direction; + setModified(FILTER_RESTART); + } +} + void LLInventoryFilter::setFilterLinks(U64 filter_links) { if (mFilterOps.mFilterLinks != filter_links) |
