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
snowpackeditordialog.h
Go to the documentation of this file.
1
13#ifndef OPENSWMMVIS_UI_DIALOGS_SNOWPACKEDITORDIALOG_H
14#define OPENSWMMVIS_UI_DIALOGS_SNOWPACKEDITORDIALOG_H
15
16#include <QDialog>
17#include <QPointer>
18#include <QVector>
19
20class QDoubleSpinBox;
21class QLineEdit;
22class QListView;
23class QPushButton;
24class QSplitter;
25
26class SWMMModelLayer;
27
28namespace openswmmvis::snowpack {
29class SnowpackProvider;
30class SnowpackRegistry;
31}
32
33namespace openswmmvis::ui {
34
35class SnowpackListModel;
36
37class SnowpackEditorDialog : public QDialog
38{
39 Q_OBJECT
40public:
41 enum class Mode { Edit, CreateNew };
42 Q_ENUM(Mode)
43
45 SWMMModelLayer *layer,
46 QWidget *parent = nullptr);
48
51 SWMMModelLayer *layer,
52 QWidget *parent = nullptr);
53
54 Mode mode() const noexcept { return m_mode; }
56
57 QListView *listView() const noexcept { return m_listView; }
58 SnowpackListModel *listModel() const noexcept { return m_listModel; }
59 QLineEdit *nameEdit() const noexcept { return m_nameEdit; }
60
61 void invokeNew();
62
63private slots:
64 void onListSelectionChanged_();
65 void onAddClicked_();
66 void onDeleteClicked_();
67 void onNameEdited_();
68 void onFieldEdited_();
69 void onRemovalSubcatchEdited_();
70 void onProviderRenamed_(openswmmvis::snowpack::SnowpackProvider *p,
71 const QString &prev, const QString &now);
72
73private:
74 void buildUi_();
75 void bindProvider_(openswmmvis::snowpack::SnowpackProvider *p);
76 void selectProviderInList_(openswmmvis::snowpack::SnowpackProvider *p);
77 QString suggestUniqueName_() const;
78
79 QPointer<openswmmvis::snowpack::SnowpackRegistry> m_registry;
80 QPointer<SWMMModelLayer> m_layer;
81 QPointer<openswmmvis::snowpack::SnowpackProvider> m_current;
82 Mode m_mode = Mode::Edit;
83
84 QSplitter *m_splitter = nullptr;
85
86 QListView *m_listView = nullptr;
87 SnowpackListModel *m_listModel = nullptr;
88 QPushButton *m_addBtn = nullptr;
89 QPushButton *m_delBtn = nullptr;
90 QLineEdit *m_nameEdit = nullptr;
91
92 QVector<QDoubleSpinBox*> m_spins;
93 QLineEdit *m_removalSubcatchEdit = nullptr;
94
95 bool m_suppressFieldSync = false;
96};
97
98} // namespace openswmmvis::ui
99
100#endif // OPENSWMMVIS_UI_DIALOGS_SNOWPACKEDITORDIALOG_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition snowpackprovider.h:25
Definition snowpackregistry.h:26
Definition snowpackeditordialog.h:38
static SnowpackEditorDialog * createNew(openswmmvis::snowpack::SnowpackRegistry *registry, SWMMModelLayer *layer, QWidget *parent=nullptr)
Definition snowpackeditordialog.cpp:317
QListView * listView() const noexcept
Definition snowpackeditordialog.h:57
openswmmvis::snowpack::SnowpackProvider * currentProvider() const noexcept
Definition snowpackeditordialog.cpp:104
Mode
Definition snowpackeditordialog.h:41
void invokeNew()
Definition snowpackeditordialog.cpp:312
SnowpackListModel * listModel() const noexcept
Definition snowpackeditordialog.h:58
Mode mode() const noexcept
Definition snowpackeditordialog.h:54
QLineEdit * nameEdit() const noexcept
Definition snowpackeditordialog.h:59
Definition snowpacklistmodel.h:22
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition snowpackprovider.h:22
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176