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

QObject Q_PROPERTY surface backing the InletEditorDialog middle-pane property tree (QPropertyModel). Mirrors TransectPropertyBag. More...

#include "inlet/inletprovider.h"
#include <QObject>
#include <QPointer>
#include <QString>
#include <functional>
Include dependency graph for inletpropertybag.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::ui::InletPropertyBag
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Detailed Description

QObject Q_PROPERTY surface backing the InletEditorDialog middle-pane property tree (QPropertyModel). Mirrors TransectPropertyBag.

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

Bidirectional wiring: on bind(), the bag pulls the current design from the bound InletProvider; a setter slot rebuilds the whole InletDesignData and either hands it to the dialog's commit handler (which wraps it in a SetInletParamsCommand) or, when no handler is installed, writes it straight to the provider. The provider's paramsChanged() refreshes the cache with pushes suppressed, breaking the feedback loop.

The four groups of the legacy tab-visibility table (Dinlet.pas:241-298) are encoded as Group flags; visibleGroups() answers which apply to the bound design's type and isPropertyVisible() folds in the two per-property exceptions (open fraction / splash-over velocity are GENERIC-grate only; the throat angle does not apply to a DROP CURB). The dialog hides the rows that answer false.

Exposed groups (the displayLabelFor() prefix drives the row labels):

Grate — grateType, grateLength, grateWidth, openFraction, splashVelocity Curb Opening — curbLength, curbHeight, throatAngle Slotted Drain — slotLength, slotWidth Custom — curveKind, curveId