![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
QObject base class for per-sublayer style property bags. More...
#include <QJsonObject>#include <QObject>Go to the source code of this file.
Classes | |
| class | OpenSWMM::Render::SublayerStyle |
| Base class for per-sublayer style property bags. More... | |
Namespaces | |
| namespace | OpenSWMM |
| namespace | OpenSWMM::Render |
QObject base class for per-sublayer style property bags.
Plan reference: RENDERING_OUTPUT_SUBLAYERS_PLAN.md §2 Decision 4
and §4.2 (each ISublayer exposes a SublayerStyle subclass via
style() returning a QObject*; the existing QPropertyModel
framework — PropertiesPanel / LegendPropertiesDialog — drives the
editor UI from the subclass's Q_PROPERTY declarations).
Style edits emit styleChanged() exactly once per property setter.
Listeners are the parent ISublayer (which schedules a QSG
re-upload) and the LegendDock (which refreshes the affected
swatch). This is the single source of truth required by
CLAUDE.md §5.1 (MVC — same data, multiple views, signal sync).
Q_CLASSINFO group convention: subclasses tag related properties
into named sections that the QPropertyModel dialog can collapse:
Q_CLASSINFO("group:lineWidthPx", "Symbology")
Q_CLASSINFO("group:colorRamp", "Classification")
Q_CLASSINFO("group:floodedColor", "Highlights")
Cross-slice: Slice S1 (sublayer foundation). Consumed by every
concrete style bag in S2 (e.g. ConduitLineStyle, NodeMarkerStyle,
DepthColorRampStyle, IsolineStyle, …).