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
hydraulicspage.h
Go to the documentation of this file.
1
21#ifndef HYDRAULICSPAGE_H
22#define HYDRAULICSPAGE_H
23
25
26class QCheckBox;
27class QComboBox;
28class QDoubleSpinBox;
29class QGroupBox;
30class QSpinBox;
31class QTabWidget;
32
33namespace openswmmvis::ui
34{
35
37{
38 Q_OBJECT
39
40public:
41 explicit HydraulicsPage(SimOptionsContext &ctx, QWidget *parent = nullptr);
42
43 [[nodiscard]] QString title() const override;
44 void read() override;
45 int write() override;
46 void applyCapabilities() override;
47 void refreshGates() override;
48
51
52 [[nodiscard]] QTabWidget *tabs() const { return m_tabs; }
54 [[nodiscard]] QString flowRouting() const;
56 void setMinimumStep(double seconds);
57
58private:
59 void buildUi();
60 void tagWidgets();
61
62 QTabWidget *m_tabs = nullptr;
63
64 QCheckBox *m_andersonAccelBox = nullptr;
65 QDoubleSpinBox *m_dpsAlphaSpin = nullptr;
66 QDoubleSpinBox *m_dpsCelerSpin = nullptr;
67 QDoubleSpinBox *m_dpsDecaySpin = nullptr;
68 QComboBox *m_forceMainCombo = nullptr;
69 QComboBox *m_fvBackendCombo = nullptr;
70 QDoubleSpinBox *m_fvCellLengthSpin = nullptr; // project length units; 0 = one cell/conduit
71 QSpinBox *m_fvCflCensusSpin = nullptr;
72 QDoubleSpinBox *m_fvCflSpin = nullptr;
73 QCheckBox *m_fvCompactionBox = nullptr;
74 class QGroupBox *m_fvGroup = nullptr;
75 QComboBox *m_fvLimiterCombo = nullptr; // 2nd order only
76 QCheckBox *m_fvLtsBox = nullptr;
77 QSpinBox *m_fvLtsTiersSpin = nullptr; // needs LTS on
78 QSpinBox *m_fvMinCellsSpin = nullptr;
79 QSpinBox *m_fvMinParallelSpin = nullptr;
80 QComboBox *m_fvOrderCombo = nullptr;
81 class QGroupBox *m_fvPerfGroup = nullptr;
82 QCheckBox *m_fvPressImplicitBox = nullptr; // FV_PRESSURIZED_IMPLICIT (experimental)
83 QComboBox *m_fvPressureClosureCombo = nullptr; // FV_PRESSURE_CLOSURE (SLOT|TPA)
84 QComboBox *m_fvRiemannCombo = nullptr;
85 QDoubleSpinBox *m_fvSlotCeleritySpin = nullptr; // project length units / s
86 QComboBox *m_fvStructCouplingCombo = nullptr;
87 QComboBox *m_fvTimeIntCombo = nullptr;
88 QDoubleSpinBox *m_headTolSpin = nullptr;
89 QComboBox *m_inertialDampCombo = nullptr;
90 QDoubleSpinBox *m_latFlowTolSpin = nullptr; // percent
91 QDoubleSpinBox *m_lengtheningSpin = nullptr;
92 QSpinBox *m_maxTrialsSpin = nullptr;
93 QDoubleSpinBox *m_minSlopeSpin = nullptr; // percent
94 QDoubleSpinBox *m_minStepSpin = nullptr; // MINIMUM_STEP (seconds)
95 QDoubleSpinBox *m_minSurfAreaSpin = nullptr;
96 QComboBox *m_nodeContinuityCombo = nullptr;
97 QComboBox *m_normalFlowCombo = nullptr;
98 QComboBox *m_routingCombo = nullptr;
99 QCheckBox *m_skipSteadyBox = nullptr;
100 QComboBox *m_surchargeCombo = nullptr;
101 QDoubleSpinBox *m_sysFlowTolSpin = nullptr; // percent
102 QDoubleSpinBox *m_tpaCeleritySpin = nullptr; // TPA_CELERITY (TPA only)
103 class QGroupBox *m_ufGroup = nullptr;
104 QDoubleSpinBox *m_ufK3Spin = nullptr; // UF_K3 (method != NONE only)
105 QComboBox *m_ufMethodCombo = nullptr; // UNSTEADY_FRICTION (NONE|VITKOVSKY)
106 QDoubleSpinBox *m_variableStepSpin = nullptr;};
107
108} // namespace openswmmvis::ui
109
110#endif // HYDRAULICSPAGE_H
Definition hydraulicspage.h:37
QTabWidget * tabs() const
Definition hydraulicspage.h:52
QString title() const override
Sidebar row text, already tr()'d.
Definition hydraulicspage.cpp:33
QString flowRouting() const
Current FLOW_ROUTING token (STEADY | KINWAVE | DYNWAVE | FV).
Definition hydraulicspage.cpp:38
void read() override
engine → widgets. Block signals while setting.
Definition hydraulicspage.cpp:517
void setMinimumStep(double seconds)
Used by the System / Performance fast preset.
Definition hydraulicspage.cpp:43
void applyCapabilities() override
One-shot per-widget disable/tooltip from ctx_.caps().
Definition hydraulicspage.cpp:742
void refreshGates() override
Intra-page widget gates (PLAN §4.3 "widget" rows).
Definition hydraulicspage.cpp:711
int write() override
widgets → engine via ctx_.writeIfChanged; returns the sum.
Definition hydraulicspage.cpp:616
Tab
Tab order, so the dialog can name gates without magic numbers.
Definition hydraulicspage.h:50
@ TabDynamicWave
Definition hydraulicspage.h:50
@ TabRouting
Definition hydraulicspage.h:50
@ TabUnsteadyFriction
Definition hydraulicspage.h:50
@ TabFiniteVolume
Definition hydraulicspage.h:50
Definition simoptionscontext.h:31
Definition simoptionspage.h:25
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176