View Issue Details

IDProjectCategoryView StatusLast Update
0005525DarkRadiantGUIpublic18.01.2026 08:04
ReporterDragofer Assigned Toorbweaver  
PrioritynormalSeverityminorReproducibilityN/A
Status confirmedResolutionopen 
Product Version2.11.0 
Summary0005525: Toggle multiple filters at once
Description[Split off from 0000590]

Fidcal has suggested adding the ability to toggle multiple filters at once in pre-determined combinations ("favourites"). I think this is a worthwhile idea, since there are many filters that need to be enabled before a map can be meaningfully navigated by eye:
- caulk, clip, paths, visportals, nodraw, collision, shadow, trigger

Sometimes they all need to be disabled, such as when moving a section of the map or when one wants to see all components of a prefab, and it's inconvenient to re-enable them all individually. Making a combination out of them that can be enabled or disabled with one click would be a decent small QoL feature.

As greebo suggested, one could just make one giant filter that filters out all the above things. But I don't see how one would then disable individual filters.
TagsNo tags attached.

Relationships

related to 0000590 closed Would like to add filters for "Portal Sky" and "No Draw Solid". Also, would like a "favourites" setting, and an "Inverse" 

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: master 579040b6

02.07.2025 18:43

orbweaver


Details Diff
0005525: update to a new, flatter filter icon Affected Issues
0005525
mod - install/bitmaps/iconFilter16.png Diff File

DarkRadiant: master a836b384

02.07.2025 19:03

orbweaver


Details Diff
0005525: implement operator== for FilterRule Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master f51287c7

08.07.2025 19:43

orbweaver


Details Diff
0005525: add FilterRule::getTypeString()

This new method replaces two almost-duplicate code blocks which map
filter types to string representations: one for the filter editor UI,
and another for serialising the custom filters to XML.
Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiant/ui/filters/editor/FilterEditor.cpp Diff File
mod - radiant/ui/filters/editor/FilterEditor.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master ac26547c

15.07.2025 18:33

orbweaver


Details Diff
0005525: FilterRule now initialised with filters::Query variant

Replace the two Create methods and the two private constructors with a
single public constructor which accepts a filters::Query variant. Each
of the variant's subtypes corresponds to one of the filter types, and
contains the necessary parameters for that type.

Currently this only affects the construction parameters, not the
internal storage. FilterRule is still exposing the same set of
individual member variables containing the filter parameters, since
these are used elsewhere.
Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiant/ui/filters/editor/FilterEditor.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master 225db35d

23.07.2025 18:34

orbweaver


Details Diff
0005525: remove type parameter from IFilterSystem::isEntityVisible

The only user of this method was calling twice, once with ECLASS and
again with SPAWNARG. This two-stage check is now moved into the method
itself.
Affected Issues
0005525
mod - include/ientity.h Diff File
mod - include/ifilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/filters/InstanceUpdateWalker.h Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master b4059e27

30.07.2025 18:22

orbweaver


Details Diff
0005525: remove type parameter from SceneFilter::isEntityVisible

Move the two-stage check for ECLASS and SPAWNARG down into the method
implementation so that it doesn't have to be repeated at each call site.
Affected Issues
0005525
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/SetObjectSelectionByFilterWalker.h Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master 074f2711

04.08.2025 18:29

orbweaver


Details Diff
0005525: SceneFilter can be constructed from xml::Node

Move the parsing code from BasicFilterSystem into a new SceneFilter
constructor, allowing it to be unit tested more easily.
Affected Issues
0005525
mod - libs/scene/CMakeLists.txt Diff File
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/filters/SetObjectSelectionByFilterWalker.h Diff File
mod - test/Filters.cpp Diff File

DarkRadiant: master 61b177e1

12.08.2025 18:33

orbweaver


Details Diff
0005525: saving filters to XML is now handled by SceneFilter

A new method saveToNode contains the code for serialising filter objects
to XML, which was previously in BasicFilterSystem. As a result, this
code can now be unit tested.
Affected Issues
0005525
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

Issue History

Date Modified Username Field Change
05.02.2021 13:16 Dragofer New Issue
05.02.2021 13:16 Dragofer Relationship added related to 0000590
05.02.2021 13:28 Dragofer Description Updated
01.07.2025 19:02 orbweaver Assigned To => orbweaver
01.07.2025 19:02 orbweaver Status new => confirmed
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master 579040b6
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master a836b384
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master f51287c7
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master ac26547c
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master 225db35d
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master b4059e27
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master 074f2711
18.01.2026 08:04 orbweaver Changeset attached => DarkRadiant master 61b177e1