From 0445a88235a2654f76c3a8154b68d94bf637cd5e Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 5 Dec 2013 00:17:33 +0100 Subject: [PATCH] FIRE-12418: Proposed fix for recent items not being properly filtered until filters get reset --- indra/newview/llinventoryfilter.cpp | 56 ++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 2ce1be4195..2624eb0f8e 100755 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -1141,15 +1141,53 @@ void LLInventoryFilter::fromParams(const Params& params) return; } - setFilterObjectTypes(params.filter_ops.types); - setFilterCategoryTypes(params.filter_ops.category_types); - setFilterWearableTypes(params.filter_ops.wearable_types); - setDateRange(params.filter_ops.date_range.min_date, params.filter_ops.date_range.max_date); - setHoursAgo(params.filter_ops.hours_ago); - setShowFolderState(params.filter_ops.show_folder_state); - setFilterPermissions(params.filter_ops.permissions); - setFilterSubString(params.substring); - setDateRangeLastLogoff(params.since_logoff); + // FIRE-12418: Only apply filter params if they are really provided + //setFilterObjectTypes(params.filter_ops.types); + //setFilterCategoryTypes(params.filter_ops.category_types); + //setFilterWearableTypes(params.filter_ops.wearable_types); + //setDateRange(params.filter_ops.date_range.min_date, params.filter_ops.date_range.max_date); + //setHoursAgo(params.filter_ops.hours_ago); + //setShowFolderState(params.filter_ops.show_folder_state); + //setFilterPermissions(params.filter_ops.permissions); + //setFilterSubString(params.substring); + //setDateRangeLastLogoff(params.since_logoff); + if (params.filter_ops.types.isProvided()) + { + setFilterObjectTypes(params.filter_ops.types); + } + if (params.filter_ops.category_types.isProvided()) + { + setFilterCategoryTypes(params.filter_ops.category_types); + } + if (params.filter_ops.wearable_types.isProvided()) + { + setFilterWearableTypes(params.filter_ops.wearable_types); + } + if (params.filter_ops.date_range.min_date.isProvided() && params.filter_ops.date_range.max_date.isProvided()) + { + setDateRange(params.filter_ops.date_range.min_date, params.filter_ops.date_range.max_date); + } + if (params.filter_ops.hours_ago.isProvided()) + { + setHoursAgo(params.filter_ops.hours_ago); + } + if (params.filter_ops.show_folder_state.isProvided()) + { + setShowFolderState(params.filter_ops.show_folder_state); + } + if (params.filter_ops.permissions.isProvided()) + { + setFilterPermissions(params.filter_ops.permissions); + } + if (params.substring.isProvided()) + { + setFilterSubString(params.substring); + } + if (params.since_logoff.isProvided()) + { + setDateRangeLastLogoff(params.since_logoff); + } + // } U64 LLInventoryFilter::getFilterObjectTypes() const