Skip to content

Commit

Permalink
#5231: Move FilterSystem to core module
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed May 7, 2020
1 parent bb57ea1 commit 97b0d43
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 53 deletions.
30 changes: 19 additions & 11 deletions include/ifilter.h
Expand Up @@ -75,6 +75,12 @@ const char* const MODULE_FILTERSYSTEM = "FilterSystem";
// Forward declaration
class Entity;

namespace filters
{

const char* const SELECT_OBJECTS_BY_FILTER_CMD = "SelectObjectsByFilter";
const char* const DESELECT_OBJECTS_BY_FILTER_CMD = "DeselectObjectsByFilter";

/**
* \brief
* Interface for the FilterSystem
Expand All @@ -87,12 +93,12 @@ class IFilterSystem :
{
public:

// Signal emitted when the state of filters has changed,
// Signal emitted when the state of filters has changed,
// filters have been added or removed, or when rules have been altered
virtual sigc::signal<void> filterConfigChangedSignal() const = 0;
virtual sigc::signal<void> filterConfigChangedSignal() const = 0;

// Signal emitted when filters are added, removed or renamed
virtual sigc::signal<void> filterCollectionChangedSignal() const = 0;
virtual sigc::signal<void> filterCollectionChangedSignal() const = 0;

/**
* greebo: Updates all the "Filtered" status of all Instances
Expand All @@ -106,13 +112,13 @@ class IFilterSystem :
*/
virtual void updateSubgraph(const scene::INodePtr& root) = 0;

/**
/**
* Visit the available filters, passing each filter's text name to the visitor.
*
* @param visitor
* Function object called with the filter name as argument.
*/
virtual void forEachFilter(const std::function<void(const std::string& name)>& func) = 0;
virtual void forEachFilter(const std::function<void(const std::string & name)>& func) = 0;

/** Set the state of the named filter.
*
Expand All @@ -130,7 +136,7 @@ class IFilterSystem :
*/
virtual bool getFilterState(const std::string& filter) = 0;

/**
/**
* Activates or deactivates all known filters.
*/
virtual void setAllFilterStates(bool state) = 0;
Expand Down Expand Up @@ -166,7 +172,7 @@ class IFilterSystem :
* @returns
* true if the entity is visible, false otherwise.
*/
virtual bool isEntityVisible(const FilterRule::Type type, const Entity& entity) = 0;
virtual bool isEntityVisible(const FilterRule::Type type, const Entity& entity) = 0;

// ===== API for Filter management and editing =====

Expand Down Expand Up @@ -206,15 +212,17 @@ class IFilterSystem :
* This applies to non-read-only filters only.
*
* @returns: TRUE on success, FALSE if filter not found or read-only.
*/
*/
virtual bool setFilterRules(const std::string& filter, const FilterRules& ruleSet) = 0;
};

inline IFilterSystem& GlobalFilterSystem()
}

inline filters::IFilterSystem& GlobalFilterSystem()
{
// Cache the reference locally
static IFilterSystem& _filterSystem(
*std::static_pointer_cast<IFilterSystem>(
static filters::IFilterSystem& _filterSystem(
*std::static_pointer_cast<filters::IFilterSystem>(
module::GlobalModuleRegistry().getModule(MODULE_FILTERSYSTEM)
)
);
Expand Down
3 changes: 0 additions & 3 deletions radiant/Makefile.am
Expand Up @@ -105,9 +105,6 @@ darkradiant_SOURCES = main.cpp \
eventmanager/Statement.cpp \
eventmanager/Toggle.cpp \
eventmanager/WidgetToggle.cpp \
filters/BasicFilterSystem.cpp \
filters/XMLFilter.cpp \
filters/XmlFilterEventAdapter.cpp \
fonts/FontLoader.cpp \
fonts/GlyphInfo.cpp \
fonts/GlyphSet.cpp \
Expand Down
1 change: 0 additions & 1 deletion radiant/ui/filters/FilterOrthoContextMenuItem.cpp
Expand Up @@ -2,7 +2,6 @@

#include "ifilter.h"
#include "icommandsystem.h"
#include "filters/BasicFilterSystem.h"

namespace ui
{
Expand Down
3 changes: 3 additions & 0 deletions radiantcore/Makefile.am
Expand Up @@ -34,6 +34,9 @@ libradiantcore_la_LDFLAGS = -module -avoid-version \
libradiantcore_la_SOURCES = Radiant.cpp \
commandsystem/CommandSystem.cpp \
filetypes/FileTypeRegistry.cpp \
filters/BasicFilterSystem.cpp \
filters/XMLFilter.cpp \
filters/XmlFilterEventAdapter.cpp \
grid/GridManager.cpp \
imagefile/dds.cpp \
imagefile/ddslib.cpp \
Expand Down
File renamed without changes.
Expand Up @@ -16,9 +16,6 @@
namespace filters
{

const char* const SELECT_OBJECTS_BY_FILTER_CMD = "SelectObjectsByFilter";
const char* const DESELECT_OBJECTS_BY_FILTER_CMD = "DeselectObjectsByFilter";

/** FilterSystem implementation class.
*/
class BasicFilterSystem :
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 0 additions & 8 deletions tools/msvc/DarkRadiant.vcxproj
Expand Up @@ -239,9 +239,6 @@
<ClCompile Include="..\..\radiant\eventmanager\Statement.cpp" />
<ClCompile Include="..\..\radiant\eventmanager\Toggle.cpp" />
<ClCompile Include="..\..\radiant\eventmanager\WidgetToggle.cpp" />
<ClCompile Include="..\..\radiant\filters\BasicFilterSystem.cpp" />
<ClCompile Include="..\..\radiant\filters\XMLFilter.cpp" />
<ClCompile Include="..\..\radiant\filters\XmlFilterEventAdapter.cpp" />
<ClCompile Include="..\..\radiant\fonts\FontLoader.cpp" />
<ClCompile Include="..\..\radiant\fonts\FontManager.cpp" />
<ClCompile Include="..\..\radiant\fonts\GlyphInfo.cpp" />
Expand Down Expand Up @@ -1055,11 +1052,6 @@
<ClInclude Include="..\..\radiant\eventmanager\Statement.h" />
<ClInclude Include="..\..\radiant\eventmanager\Toggle.h" />
<ClInclude Include="..\..\radiant\eventmanager\WidgetToggle.h" />
<ClInclude Include="..\..\radiant\filters\BasicFilterSystem.h" />
<ClInclude Include="..\..\radiant\filters\InstanceUpdateWalker.h" />
<ClInclude Include="..\..\radiant\filters\SetObjectSelectionByFilterWalker.h" />
<ClInclude Include="..\..\radiant\filters\XMLFilter.h" />
<ClInclude Include="..\..\radiant\filters\XmlFilterEventAdapter.h" />
<ClInclude Include="..\..\radiant\fonts\FontInfo.h" />
<ClInclude Include="..\..\radiant\fonts\FontLoader.h" />
<ClInclude Include="..\..\radiant\fonts\FontManager.h" />
Expand Down
27 changes: 0 additions & 27 deletions tools/msvc/DarkRadiant.vcxproj.filters
Expand Up @@ -209,9 +209,6 @@
<Filter Include="src\uimanager\menu">
<UniqueIdentifier>{31b14db3-7897-48b1-8771-d4e0eac5cb07}</UniqueIdentifier>
</Filter>
<Filter Include="src\filters">
<UniqueIdentifier>{c4c126b2-0502-4871-a86e-41d84399cfc0}</UniqueIdentifier>
</Filter>
<Filter Include="src\eclassmgr">
<UniqueIdentifier>{78e18785-008a-4455-b7c5-0a7d7391fec9}</UniqueIdentifier>
</Filter>
Expand Down Expand Up @@ -1024,12 +1021,6 @@
<ClCompile Include="..\..\radiant\uimanager\menu\MenuSeparator.cpp">
<Filter>src\uimanager\menu</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\filters\BasicFilterSystem.cpp">
<Filter>src\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\filters\XMLFilter.cpp">
<Filter>src\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\eclassmgr\Doom3EntityClass.cpp">
<Filter>src\eclassmgr</Filter>
</ClCompile>
Expand Down Expand Up @@ -1447,9 +1438,6 @@
<ClCompile Include="..\..\radiant\ui\filters\FilterMenu.cpp">
<Filter>src\ui\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\filters\XmlFilterEventAdapter.cpp">
<Filter>src\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiant\model\ModelScalePreserver.cpp">
<Filter>src\model</Filter>
</ClCompile>
Expand Down Expand Up @@ -2415,15 +2403,6 @@
<ClInclude Include="..\..\radiant\uimanager\menu\MenuSeparator.h">
<Filter>src\uimanager\menu</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\filters\BasicFilterSystem.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\filters\InstanceUpdateWalker.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\filters\XMLFilter.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\eclassmgr\Doom3EntityClass.h">
<Filter>src\eclassmgr</Filter>
</ClInclude>
Expand Down Expand Up @@ -2874,9 +2853,6 @@
<ClInclude Include="..\..\radiant\layers\LayerManager.h">
<Filter>src\layers</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\filters\SetObjectSelectionByFilterWalker.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\ui\filters\FilterOrthoContextMenuItem.h">
<Filter>src\ui\filters</Filter>
</ClInclude>
Expand All @@ -2886,9 +2862,6 @@
<ClInclude Include="..\..\radiant\ui\filters\FilterMenu.h">
<Filter>src\ui\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\filters\XmlFilterEventAdapter.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiant\model\ModelScalePreserver.h">
<Filter>src\model</Filter>
</ClInclude>
Expand Down
8 changes: 8 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj
Expand Up @@ -20,6 +20,9 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\radiantcore\filetypes\FileTypeRegistry.cpp" />
<ClCompile Include="..\..\radiantcore\filters\BasicFilterSystem.cpp" />
<ClCompile Include="..\..\radiantcore\filters\XMLFilter.cpp" />
<ClCompile Include="..\..\radiantcore\filters\XmlFilterEventAdapter.cpp" />
<ClCompile Include="..\..\radiantcore\grid\GridManager.cpp" />
<ClCompile Include="..\..\radiantcore\imagefile\dds.cpp" />
<ClCompile Include="..\..\radiantcore\imagefile\DDSImage.cpp" />
Expand Down Expand Up @@ -60,6 +63,11 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\radiantcore\filetypes\FileTypeRegistry.h" />
<ClInclude Include="..\..\radiantcore\filters\BasicFilterSystem.h" />
<ClInclude Include="..\..\radiantcore\filters\InstanceUpdateWalker.h" />
<ClInclude Include="..\..\radiantcore\filters\SetObjectSelectionByFilterWalker.h" />
<ClInclude Include="..\..\radiantcore\filters\XMLFilter.h" />
<ClInclude Include="..\..\radiantcore\filters\XmlFilterEventAdapter.h" />
<ClInclude Include="..\..\radiantcore\grid\GridItem.h" />
<ClInclude Include="..\..\radiantcore\grid\GridManager.h" />
<ClInclude Include="..\..\radiantcore\imagefile\dds.h" />
Expand Down
27 changes: 27 additions & 0 deletions tools/msvc/DarkRadiantCore.vcxproj.filters
Expand Up @@ -50,6 +50,9 @@
<Filter Include="src\grid">
<UniqueIdentifier>{79fa6073-1042-4501-9f3f-34c689eaf391}</UniqueIdentifier>
</Filter>
<Filter Include="src\filters">
<UniqueIdentifier>{09da2d20-769e-49aa-8c54-c90486c4c883}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\radiantcore\modulesystem\ModuleLoader.cpp">
Expand Down Expand Up @@ -166,6 +169,15 @@
<ClCompile Include="..\..\radiantcore\grid\GridManager.cpp">
<Filter>src\grid</Filter>
</ClCompile>
<ClCompile Include="..\..\radiantcore\filters\BasicFilterSystem.cpp">
<Filter>src\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiantcore\filters\XMLFilter.cpp">
<Filter>src\filters</Filter>
</ClCompile>
<ClCompile Include="..\..\radiantcore\filters\XmlFilterEventAdapter.cpp">
<Filter>src\filters</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\radiantcore\modulesystem\ModuleLoader.h">
Expand Down Expand Up @@ -363,5 +375,20 @@
<ClInclude Include="..\..\radiantcore\grid\GridManager.h">
<Filter>src\grid</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\filters\BasicFilterSystem.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\filters\InstanceUpdateWalker.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\filters\SetObjectSelectionByFilterWalker.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\filters\XMLFilter.h">
<Filter>src\filters</Filter>
</ClInclude>
<ClInclude Include="..\..\radiantcore\filters\XmlFilterEventAdapter.h">
<Filter>src\filters</Filter>
</ClInclude>
</ItemGroup>
</Project>

0 comments on commit 97b0d43

Please sign in to comment.