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
aquifereditordialog.h
Go to the documentation of this file.
1
18#ifndef OPENSWMMVIS_UI_DIALOGS_AQUIFEREDITORDIALOG_H
19#define OPENSWMMVIS_UI_DIALOGS_AQUIFEREDITORDIALOG_H
20
21#include <QDialog>
22#include <QPointer>
23#include <QStringList>
24#include <QVector>
25
26class QComboBox;
27class QDoubleSpinBox;
28class QLabel;
29class QLineEdit;
30class QListView;
31class QPushButton;
32class QSplitter;
33
34class SWMMModelLayer;
35
36namespace openswmmvis::aquifer {
37class AquiferProvider;
38class AquiferRegistry;
39}
40
42
43namespace openswmmvis::ui {
44
45class AquiferListModel;
46
47class AquiferEditorDialog : public QDialog
48{
49 Q_OBJECT
50public:
51 enum class Mode { Edit, CreateNew };
52 Q_ENUM(Mode)
53
55 SWMMModelLayer *layer,
56 QWidget *parent = nullptr);
58
61 SWMMModelLayer *layer,
62 QWidget *parent = nullptr);
63
64 static QString pickAquifer(
66 SWMMModelLayer *layer,
67 const QString &initialName,
68 QWidget *parent = nullptr);
69
70 Mode mode() const noexcept { return m_mode; }
72
73 // ── Test hooks ──────────────────────────────────────────────────────────
74 QListView *listView() const noexcept { return m_listView; }
75 AquiferListModel *listModel() const noexcept { return m_listModel; }
76 QLineEdit *nameEdit() const noexcept { return m_nameEdit; }
78 QDoubleSpinBox *spinBox(int param) const noexcept;
79 QComboBox *evapPatternCombo() const noexcept { return m_patternCombo; }
80 QLabel *warningLabel() const noexcept { return m_statusLabel; }
82 { return m_diagram; }
84 QStringList validationWarnings() const;
85
86 void invokeNew();
87
88protected:
89 bool eventFilter(QObject *watched, QEvent *event) override;
90
91private slots:
92 void onListSelectionChanged_();
93 void onAddClicked_();
94 void onDeleteClicked_();
95 void onNameEdited_();
96 void onFieldEdited_();
97 void onPatternPickClicked_();
98 void onProviderRenamed_(openswmmvis::aquifer::AquiferProvider *p,
99 const QString &prev, const QString &now);
100
101private:
102 void buildUi_();
103 void bindProvider_(openswmmvis::aquifer::AquiferProvider *p);
104 void selectProviderInList_(openswmmvis::aquifer::AquiferProvider *p);
105 QString suggestUniqueName_() const;
106 void populatePatternCombo_(const QString &select);
107 void refreshDiagram_();
108 int activeParam_() const;
109
110 QPointer<openswmmvis::aquifer::AquiferRegistry> m_registry;
111 QPointer<SWMMModelLayer> m_layer;
112 QPointer<openswmmvis::aquifer::AquiferProvider> m_current;
113 Mode m_mode = Mode::Edit;
114
115 QSplitter *m_splitter = nullptr;
116
117 QListView *m_listView = nullptr;
118 AquiferListModel *m_listModel = nullptr;
119 QPushButton *m_addBtn = nullptr;
120 QPushButton *m_delBtn = nullptr;
121
122 QLineEdit *m_nameEdit = nullptr;
123 QVector<QDoubleSpinBox*> m_spins;
124 QComboBox *m_patternCombo = nullptr;
125 QPushButton *m_patternBtn = nullptr;
126 QLabel *m_statusLabel = nullptr;
127
129
130 bool m_suppressFieldSync = false;
131};
132
133} // namespace openswmmvis::ui
134
135#endif // OPENSWMMVIS_UI_DIALOGS_AQUIFEREDITORDIALOG_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition aquiferprovider.h:24
Definition aquiferregistry.h:27
Definition sectionpreviewwidget.h:31
Definition aquifereditordialog.h:48
QDoubleSpinBox * spinBox(int param) const noexcept
Definition aquifereditordialog.cpp:154
Mode mode() const noexcept
Definition aquifereditordialog.h:70
static QString pickAquifer(openswmmvis::aquifer::AquiferRegistry *registry, SWMMModelLayer *layer, const QString &initialName, QWidget *parent=nullptr)
Definition aquifereditordialog.cpp:560
Mode
Definition aquifereditordialog.h:51
openswmmvis::sectionview::SectionPreviewWidget * diagram() const noexcept
Definition aquifereditordialog.h:81
QLabel * warningLabel() const noexcept
Definition aquifereditordialog.h:80
void invokeNew()
Definition aquifereditordialog.cpp:540
QComboBox * evapPatternCombo() const noexcept
Definition aquifereditordialog.h:79
openswmmvis::aquifer::AquiferProvider * currentProvider() const noexcept
Definition aquifereditordialog.cpp:149
QListView * listView() const noexcept
Definition aquifereditordialog.h:74
AquiferListModel * listModel() const noexcept
Definition aquifereditordialog.h:75
QLineEdit * nameEdit() const noexcept
Definition aquifereditordialog.h:76
QStringList validationWarnings() const
Definition aquifereditordialog.cpp:461
bool eventFilter(QObject *watched, QEvent *event) override
Definition aquifereditordialog.cpp:300
static AquiferEditorDialog * createNew(openswmmvis::aquifer::AquiferRegistry *registry, SWMMModelLayer *layer, QWidget *parent=nullptr)
Definition aquifereditordialog.cpp:549
Definition aquiferlistmodel.h:22
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition aquiferprovider.h:21
Definition aquifereditordialog.h:41
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176