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
sublayerstyle.h File Reference

QObject base class for per-sublayer style property bags. More...

#include <QJsonObject>
#include <QObject>
Include dependency graph for sublayerstyle.h:
This graph shows which files directly or indirectly include this file:

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
 

Detailed Description

QObject base class for per-sublayer style property bags.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later
    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, …).