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
lidcontroleditordialog.h
Go to the documentation of this file.
1
17#ifndef OPENSWMMVIS_UI_DIALOGS_LIDCONTROLEDITORDIALOG_H
18#define OPENSWMMVIS_UI_DIALOGS_LIDCONTROLEDITORDIALOG_H
19
20#include <QDialog>
21#include <QPointer>
22
23class QComboBox;
24class QDoubleSpinBox;
25class QLineEdit;
26class QListView;
27class QPushButton;
28class QSplitter;
29class QTabWidget;
30
31class SWMMModelLayer;
32
33namespace openswmmvis::lid {
34class LidControlProvider;
35class LidControlRegistry;
36}
37
38namespace openswmmvis::sectionview { class SectionPreviewWidget; }
39
40namespace openswmmvis::ui {
41
42class LidControlListModel;
43
44class LidControlEditorDialog : public QDialog
45{
46 Q_OBJECT
47public:
48 enum class Mode { Edit, CreateNew };
49 Q_ENUM(Mode)
50
52 SWMMModelLayer *layer,
53 QWidget *parent = nullptr);
55
58 SWMMModelLayer *layer,
59 QWidget *parent = nullptr);
60
61 Mode mode() const noexcept { return m_mode; }
63
64 QListView *listView() const noexcept { return m_listView; }
65 LidControlListModel *listModel() const noexcept { return m_listModel; }
66 QLineEdit *nameEdit() const noexcept { return m_nameEdit; }
67
68 void invokeNew();
69
70private slots:
71 void onListSelectionChanged_();
72 void onAddClicked_();
73 void onDeleteClicked_();
74 void onNameEdited_();
75 void onFieldEdited_();
76 void onProviderRenamed_(openswmmvis::lid::LidControlProvider *p,
77 const QString &prev, const QString &now);
78
79private:
80 void buildUi_();
81 void bindProvider_(openswmmvis::lid::LidControlProvider *p);
82
86 void refreshLayerDiagram_();
87 void selectProviderInList_(openswmmvis::lid::LidControlProvider *p);
88 QString suggestUniqueName_() const;
89
90 QPointer<openswmmvis::lid::LidControlRegistry> m_registry;
91 QPointer<SWMMModelLayer> m_layer;
92 QPointer<openswmmvis::lid::LidControlProvider> m_current;
93 Mode m_mode = Mode::Edit;
94
95 QSplitter *m_splitter = nullptr;
96
100 QTabWidget *m_tabs = nullptr;
101
102 QListView *m_listView = nullptr;
103 LidControlListModel *m_listModel = nullptr;
104 QPushButton *m_addBtn = nullptr;
105 QPushButton *m_delBtn = nullptr;
106
107 QLineEdit *m_nameEdit = nullptr;
108 QComboBox *m_typeCombo = nullptr;
109
110 // Surface.
111 QDoubleSpinBox *m_surfStorage = nullptr, *m_surfRough = nullptr, *m_surfSlope = nullptr;
112 // Soil.
113 QDoubleSpinBox *m_soilThick = nullptr, *m_soilPoro = nullptr, *m_soilFc = nullptr,
114 *m_soilWp = nullptr, *m_soilKsat = nullptr, *m_soilKslope = nullptr;
115 // Storage.
116 QDoubleSpinBox *m_storThick = nullptr, *m_storVoid = nullptr, *m_storKsat = nullptr;
117 // Drain.
118 QDoubleSpinBox *m_drainCoeff = nullptr, *m_drainExpon = nullptr, *m_drainOffset = nullptr;
119
120 bool m_suppressFieldSync = false;
121};
122
123} // namespace openswmmvis::ui
124
125#endif // OPENSWMMVIS_UI_DIALOGS_LIDCONTROLEDITORDIALOG_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition lidcontrolprovider.h:26
Definition lidcontrolregistry.h:26
Definition sectionpreviewwidget.h:31
Definition lidcontroleditordialog.h:45
QLineEdit * nameEdit() const noexcept
Definition lidcontroleditordialog.h:66
void invokeNew()
Definition lidcontroleditordialog.cpp:425
Mode mode() const noexcept
Definition lidcontroleditordialog.h:61
Mode
Definition lidcontroleditordialog.h:48
openswmmvis::lid::LidControlProvider * currentProvider() const noexcept
Definition lidcontroleditordialog.cpp:74
LidControlListModel * listModel() const noexcept
Definition lidcontroleditordialog.h:65
static LidControlEditorDialog * createNew(openswmmvis::lid::LidControlRegistry *registry, SWMMModelLayer *layer, QWidget *parent=nullptr)
Definition lidcontroleditordialog.cpp:430
QListView * listView() const noexcept
Definition lidcontroleditordialog.h:64
Definition lidcontrollistmodel.h:22
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition lidcontrolprovider.h:23
Definition aquifereditordialog.h:41
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176