diff options
Diffstat (limited to 'indra/newview/llfolderview.cpp')
-rw-r--r-- | indra/newview/llfolderview.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index d50c54b938..79e3315115 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -4645,7 +4645,7 @@ void LLInventoryFilter::setDateRangeLastLogoff(BOOL sl) BOOL LLInventoryFilter::isSinceLogoff() { - return mFilterOps.mMinDate == mLastLogoff && mFilterOps.mMaxDate == U32_MAX; + return (mFilterOps.mMinDate == mLastLogoff) && (mFilterOps.mMaxDate == U32_MAX); } void LLInventoryFilter::setHoursAgo(U32 hours) @@ -4946,28 +4946,48 @@ void LLInventoryFilter::toLLSD(LLSD& data) data["permissions"] = (LLSD::Integer)getFilterPermissions(); data["substring"] = (LLSD::String)getFilterSubString(); data["sort_order"] = (LLSD::Integer)getSortOrder(); + data["since_logoff"] = (LLSD::Boolean)isSinceLogoff(); } void LLInventoryFilter::fromLLSD(LLSD& data) { if(data.has("filter_types")) + { setFilterTypes((U32)data["filter_types"].asInteger()); + } if(data.has("min_date") && data.has("max_date")) + { setDateRange((U32)data["min_date"].asInteger(), (U32)data["max_date"].asInteger()); + } if(data.has("hours_ago")) + { setHoursAgo((U32)data["hours_ago"].asInteger()); + } if(data.has("show_folder_state")) + { setShowFolderState((EFolderShow)data["show_folder_state"].asInteger()); + } if(data.has("permissions")) + { setFilterPermissions((PermissionMask)data["permissions"].asInteger()); + } if(data.has("substring")) + { setFilterSubString(LLString(data["substring"].asString())); + } if(data.has("sort_order")) + { setSortOrder((U32)data["sort_order"].asInteger()); + } + + if(data.has("since_logoff")) + { + setDateRangeLastLogoff((bool)data["since_logoff"].asBoolean()); + } } |