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
landuseeditordialog.h
Go to the documentation of this file.
1
19#ifndef OPENSWMMVIS_UI_DIALOGS_LANDUSEEDITORDIALOG_H
20#define OPENSWMMVIS_UI_DIALOGS_LANDUSEEDITORDIALOG_H
21
22#include <QDialog>
23#include <QPointer>
24
25class QDoubleSpinBox;
26class QLineEdit;
27class QListView;
28class QPushButton;
29class QSplitter;
30class QTableView;
31class QTabWidget;
32
33class SWMMModelLayer;
34
35namespace openswmmvis::landuse {
36class LandUseProvider;
37class LandUseRegistry;
38}
39
40namespace openswmmvis::pollutant {
41class PollutantRegistry;
42}
43
44namespace openswmmvis::ui {
45
46class BuildupTableModel;
47class LandUseListModel;
48class WashoffTableModel;
49
50class LandUseEditorDialog : public QDialog
51{
52 Q_OBJECT
53public:
54 enum class Mode { Edit, CreateNew };
55 Q_ENUM(Mode)
56
58 SWMMModelLayer *layer,
59 QWidget *parent = nullptr);
61
64 SWMMModelLayer *layer,
65 QWidget *parent = nullptr);
66
67 static QString pickLandUse(
69 SWMMModelLayer *layer,
70 const QString &initialName,
71 QWidget *parent = nullptr);
72
73 Mode mode() const noexcept { return m_mode; }
75
76 QListView *listView() const noexcept { return m_listView; }
77 LandUseListModel *listModel() const noexcept { return m_listModel; }
78 QLineEdit *nameEdit() const noexcept { return m_nameEdit; }
79 BuildupTableModel *buildupModel() const noexcept { return m_buildupModel; }
80 WashoffTableModel *washoffModel() const noexcept { return m_washoffModel; }
81
82 void invokeNew();
83
88
89public slots:
92 void refreshPollutants();
93
94private slots:
95 void onListSelectionChanged_();
96 void onAddClicked_();
97 void onDeleteClicked_();
98 void onNameEdited_();
99 void onFieldEdited_();
100 void onProviderRenamed_(openswmmvis::landuse::LandUseProvider *p,
101 const QString &prev, const QString &now);
102
103private:
104 void buildUi_();
105 void bindProvider_(openswmmvis::landuse::LandUseProvider *p);
106 void selectProviderInList_(openswmmvis::landuse::LandUseProvider *p);
107 QString suggestUniqueName_() const;
108
109 QPointer<openswmmvis::landuse::LandUseRegistry> m_registry;
110 QPointer<SWMMModelLayer> m_layer;
111 QPointer<openswmmvis::landuse::LandUseProvider> m_current;
112 Mode m_mode = Mode::Edit;
113
114 QSplitter *m_splitter = nullptr;
115
116 QListView *m_listView = nullptr;
117 LandUseListModel *m_listModel = nullptr;
118 QPushButton *m_addBtn = nullptr;
119 QPushButton *m_delBtn = nullptr;
120
121 QLineEdit *m_nameEdit = nullptr;
122 QDoubleSpinBox *m_intervalSpin = nullptr;
123 QDoubleSpinBox *m_removalSpin = nullptr;
124
125 QTabWidget *m_tabs = nullptr;
126 QTableView *m_buildupView = nullptr;
127 QTableView *m_washoffView = nullptr;
128 BuildupTableModel *m_buildupModel = nullptr;
129 WashoffTableModel *m_washoffModel = nullptr;
130
131 bool m_suppressFieldSync = false;
132};
133
134} // namespace openswmmvis::ui
135
136#endif // OPENSWMMVIS_UI_DIALOGS_LANDUSEEDITORDIALOG_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition landuseprovider.h:23
Definition landuseregistry.h:24
Definition pollutantregistry.h:24
Definition qualityfunctiontablemodels.h:58
Definition landuseeditordialog.h:51
openswmmvis::landuse::LandUseProvider * currentProvider() const noexcept
Definition landuseeditordialog.cpp:85
LandUseListModel * listModel() const noexcept
Definition landuseeditordialog.h:77
Mode
Definition landuseeditordialog.h:54
QListView * listView() const noexcept
Definition landuseeditordialog.h:76
QLineEdit * nameEdit() const noexcept
Definition landuseeditordialog.h:78
void invokeNew()
Definition landuseeditordialog.cpp:331
Mode mode() const noexcept
Definition landuseeditordialog.h:73
void refreshPollutants()
Definition landuseeditordialog.cpp:233
void trackPollutantRegistry(openswmmvis::pollutant::PollutantRegistry *registry)
Definition landuseeditordialog.cpp:64
WashoffTableModel * washoffModel() const noexcept
Definition landuseeditordialog.h:80
BuildupTableModel * buildupModel() const noexcept
Definition landuseeditordialog.h:79
static LandUseEditorDialog * createNew(openswmmvis::landuse::LandUseRegistry *registry, SWMMModelLayer *layer, QWidget *parent=nullptr)
Definition landuseeditordialog.cpp:340
static QString pickLandUse(openswmmvis::landuse::LandUseRegistry *registry, SWMMModelLayer *layer, const QString &initialName, QWidget *parent=nullptr)
Definition landuseeditordialog.cpp:351
Definition landuselistmodel.h:22
Definition qualityfunctiontablemodels.h:80
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition landuseprovider.h:20
Definition pollutantprovider.h:26
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176