#1321 Area Search: one window, with the parcel's and region's land impact split by owner #1331
No reviewers
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream!1331
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "TheSlowly/Slipstream:area-search-parcel-li"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #1321: Area Search spread its filters over several tabs, and there was no easy way to see what is using a parcel's land impact.
SlipstreamAreaSearchState.Tested in-world. Unit tests cover the filters, the parcel summary and the region parcel map.
Area Search's filters were two lists of checkboxes ("Only list objects that are" and "Exclude objects that are") and its search was six separate fields. The new window has one Any / Only / Hide control per property and one search box with a field picker. This is the part with no viewer state, so it is unit-tested on its own. SLAreaSearchFilters holds a state per property (temporary, attachment, physical, phantom, locked, scripted, shared media, for sale, copy / modify / transfer, reflection probe, child prim), the sale price range (applied when For sale is Only) and the click-action filter in the existing combo's encoding. It saves to and reads from LLSD; missing or out-of-range values read back as the defaults (attachments and child prims hidden, the rest Any). SLAreaSearchText is the search box: a case-insensitive substring, or a regex that must match a whole field (case-insensitive), in one field or any of them. An invalid regex is refused and the previous query stays in force. tests/slareasearchfilter_test.cpp: 9 tests, all passing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Area Search had five sub-tabs. Its filters were split into "Only list" and "Exclude" checkboxes with an Apply button. The way to focus on one parcel was a checkbox on the third tab, and nothing listed until Search was pressed. It is now one window: a filter panel on the left and the list on the right. Left panel: - Look in: This parcel (the one you stand on, following you), Region, or Nearby (within N m, neighbouring regions included). Replaces "Current Parcel only", "Distance between" and "Neighboring Regions". - Search: one box with a field picker (All fields, Name, Description, Owner, Group, Creator, Last owner) and a regular-expression option. It applies as you type, after a short pause. An invalid regex keeps the previous search and greys the text, with the reason in its tooltip, instead of a popup per key. - Show: one Any / Only / Hide control each for temporary, attachments, physical, phantom, locked, scripted (new), shared media and for sale. - More filters: copy / modify / transfer, reflection probes, child prims, the sale price range (when For sale is Only) and the click action. Filters apply as they change, by re-listing from the cached object details. Only child prims and attachments decide what is fetched; newly eligible objects are fetched as they are seen. On a parcel the list sorts by land impact, largest first; elsewhere by distance. Land impact shows as the Build floater shows it. The Options tab's column checkboxes moved to a right-click on the list header. The Advanced tab's double-click extras (touch, buy, sit; the tab was hidden by default) moved to a gear menu by the Refresh button. The window's state is one LLSD setting, SlipstreamAreaSearchState, saved as it changes. The 25 old Area Search filter settings and FSAreaSearchAdvanced are gone. The default columns are LI, Name, Owner, Distance and Prims. "Filter My Objects" searches the owner field for your name until the owner filter in the next commit replaces it. Test-Plan: Open Area Search (Build menu or its toolbar button). It is one window with no tabs, listing the objects of the parcel you stand on, biggest LI first. Walk onto another parcel: the list follows. Pick Region, then Nearby, and change the metres: the list follows each, sorted by distance. Type in the search box: the list narrows shortly after you stop typing. Try each field in the picker. Tick Regular expression and type "(": the text greys out, its tooltip says why, and the previous search still applies. Set each Show row to Only and to Hide: the list follows at once. Open More filters and try the permissions, Child prims, the price range with For sale on Only, and a click action. Right-click the list header: tick and untick columns. In the gear menu, tick "Also touch on double-click", then double-click a scripted object: the camera goes to it and it is touched. Relog: the scope, filters, More filters and gear choices are as you left them. Busy region: toggle filters and type quickly; the viewer does not hitch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>On This parcel, Area Search now opens with what the parcel uses. Above the list is the parcel's name and area, "312 of 351 LI", and a bar split by owner. When the owner's parcels share a region-wide pool that differs from the parcel's own numbers, the pool is shown too. The header numbers are About Land's: the server's count, and max objects times the object bonus, capped at the region's limit. The window gets them with the read-only parcel lookup, so the land selection, the parcel highlight and About Land are untouched. It asks on open, on Refresh, when you walk onto another parcel, and at most every 5 s while objects appear on or vanish from the parcel, so the header follows rezzing and returns. The bar is drawn from the cached objects on the parcel: roots, not attachments, not temporary, whatever the search and filters show. The five largest owners get a colour each; the rest share "others". What the server counts beyond the objects loaded so far shows as "not loaded yet", then the free part. Clicking an owner's segment or legend entry lists only that owner's objects (group-owned objects under the group); clicking again lists everyone's. The owner filter works in every scope. "Filter My Objects" now sets it to you instead of typing your name into a search field, and "Show all owners" clears it. Owner names in the bar and the filter line are hidden under RLV @shownames like the list's. Also defines FSAreaSearch_Cost_Label ("L$ [COST]"): the Price column looked it up but it was never defined, so for-sale objects showed a missing-string marker. Test-Plan: Stand on a parcel with objects from more than one owner and open Area Search. Numbers match: once loading settles, "N of M LI" matches About Land > Objects ("Objects used on parcel" / "Parcel supports"). The bar's owner totals add up to N, less anything still marked "not loaded yet". Rez an object on the parcel, then delete it: within about 5 s the header follows. Click an owner in the bar or its legend: only their objects are listed, and a line above the list names them. Click again, or press "Show all owners": everyone's again. Right-click a row > Filter My Objects: only your objects, in any scope. Pick Region or Nearby: the summary goes away; This parcel brings it back. RLV names: under @shownames, owner names in the bar and the filter line are hidden. Lookup fails: on a very slow connection the header shows "..." and fills in later. For-sale objects show "L$ <price>" in the Price column. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>About Land > Objects only lists owners, with a total each, and only for the parcel's owner and managers. A List objects button now opens Area Search on the parcel About Land shows, biggest land impact first, for anyone. That works for any parcel in the region you are in. The button is disabled, with a tooltip saying why, for a parcel in another region, because the viewer only has the current region's objects. In Area Search the parcel appears as a fourth "Look in" choice, labelled with the parcel's name ("Parcel from About Land", greyed out, until one is picked). Its cells come from the parcel's own properties bitmap through the read-only lookup, so the pin outlives About Land closing, in-world clicks and the Edit action, all of which change the land selection. It stays put while you walk, and the summary above the list describes it. Picking another scope drops it. Leaving the region drops it too and goes back to This parcel. A pin is not remembered across sessions. Test-Plan: Open About Land on a neighbouring parcel in your region (click its land, then About Land) and press List objects on the Objects tab. Area Search opens with that parcel's name under Look in, lists only that parcel's objects biggest LI first, and the header matches About Land's "Objects used on parcel" and "Parcel supports". Close About Land, click around in-world and use Edit on a listed object: the list stays on that parcel. Walk around: it does not follow you. Pick This parcel: the list follows you again and the pinned choice greys out. Select a parcel across a region border in About Land: List objects is disabled, and its tooltip says only parcels in your region can be listed. Teleport while pinned: afterwards Area Search is back on This parcel. As a visitor on someone else's land, List objects works even though About Land's owner list says you cannot list objects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>