feat(statusbar): selection filtering by object type (FILTER pill)
Add a per-type selection filter to the scene: the FILTER pill opens a checklist of the entity types in the layout, and unchecking a type excludes it from interactive picking (click, box and lasso selection all honour it). The pill lights up while any type is filtered out. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
834780ec5d
commit
f7eac09b55
8 changed files with 219 additions and 0 deletions
|
|
@ -65,6 +65,8 @@ impl StatusBar {
|
|||
transparency_display: bool,
|
||||
// Whether the Quick Properties floating panel is enabled.
|
||||
quick_properties: bool,
|
||||
// True when the selection filter is excluding at least one type.
|
||||
selection_filter_active: bool,
|
||||
// Which pills the user has chosen to show on the bar.
|
||||
config: &'a StatusBarConfig,
|
||||
) -> Element<'a, Message> {
|
||||
|
|
@ -201,6 +203,16 @@ impl StatusBar {
|
|||
"Quick Properties\nFloating panel on selection",
|
||||
));
|
||||
}
|
||||
if vis(StatusPill::SelFilter) {
|
||||
right_status = right_status.push(tip(
|
||||
toggle_pill(
|
||||
"FILTER",
|
||||
selection_filter_active,
|
||||
Message::ToggleSelectionFilterPopup,
|
||||
),
|
||||
"Selection Filtering\nLimit which object types can be picked",
|
||||
));
|
||||
}
|
||||
if vis(StatusPill::Vp) && !vp_label.is_empty() {
|
||||
right_status = right_status.push(tip(
|
||||
status_pill(vp_label).into(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue