SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
filefilterregistry.h File Reference

Builds Qt QFileDialog filter strings from engine plugins + GUI built-ins. More...

#include <QList>
#include <QObject>
#include <QString>
#include <QStringList>
#include <openswmm/plugin_sdk/IPluginComponentInfo.hpp>
Include dependency graph for filefilterregistry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::FileFilterRegistry
 Process-wide registry of file filters, populated from engine plugins + built-ins. More...
 
struct  openswmmvis::FileFilterRegistry::Entry
 One row in the registry. More...
 

Namespaces

namespace  openswmmvis
 

Enumerations

enum class  openswmmvis::FilterKind {
  openswmmvis::InputRead ,
  openswmmvis::ResultsRead ,
  openswmmvis::ResultsWrite ,
  openswmmvis::ReportWrite ,
  openswmmvis::StateRead ,
  openswmmvis::StateWrite ,
  openswmmvis::ProjectRead ,
  openswmmvis::ProjectWrite ,
  openswmmvis::VectorRead ,
  openswmmvis::RasterRead ,
  openswmmvis::TabularRead ,
  openswmmvis::MapExportWrite ,
  openswmmvis::ComponentConfigRead
}
 GUI-side filter category. Superset of openswmm::PluginRole. More...
 

Detailed Description

Builds Qt QFileDialog filter strings from engine plugins + GUI built-ins.

The engine SDK's plugin discovery (openswmm::discover_all_filters()) covers I/O that the engine itself performs — reading model input, writing time-series output, summary reports, hot-start state. The GUI also needs filters for things the engine never touches: project files (.oswp), GIS vector / raster layers, tabular observed-data files, and map exports (PNG / SVG / DXF / …).

This registry layers a GUI-side FilterKind enum over openswmm::PluginRole — engine-backed kinds proxy the engine discovery, GUI-only kinds come from a built-in static table. A back-compat overload accepts the engine PluginRole directly so older call sites keep compiling.

Singleton with an entriesChanged() signal so future enable / disable / add-plugin features (Slice AA-2) can mutate the table without reconstructing dialogs.

See also
<openswmm/plugin_sdk/PluginDiscovery.hpp>