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
sectionviewpanel.h
Go to the documentation of this file.
1
21#ifndef OPENSWMMVIS_UI_PANELS_SECTIONVIEWPANEL_H
22#define OPENSWMMVIS_UI_PANELS_SECTIONVIEWPANEL_H
23
24#include <QDockWidget>
25#include <QPointer>
26#include <QString>
27
28class QComboBox;
29class QLabel;
30class QToolButton;
31class SWMMModelLayer;
32
33namespace openswmmvis::sectionview { class SectionPreviewWidget; }
34
35namespace openswmmvis::ui {
36
41class SectionViewPanel : public QDockWidget
42{
43 Q_OBJECT
44
45public:
47 enum class Mode { Section, Profile };
48
49 explicit SectionViewPanel(QWidget *parent = nullptr);
51
54 void setProject(SWMMModelLayer *layer);
55
60 void showObject(int objectType, const QString &name);
61
63 void clearSelection();
64
65 [[nodiscard]] Mode mode() const noexcept { return m_mode; }
66 void setMode(Mode mode);
67
75 [[nodiscard]] double verticalExaggeration() const noexcept
76 { return m_mode == Mode::Profile ? m_profileVe : m_sectionVe; }
77 void setVerticalExaggeration(double ve);
78
79public slots:
82 void refresh();
83
86 void onObjectEditedExternally(const QString &name);
87
88private:
89 void buildUi();
90 void updateModeButtons();
93 void syncVeCombo();
94
95 QPointer<SWMMModelLayer> m_layer;
96
97 sectionview::SectionPreviewWidget *m_preview = nullptr;
98 QToolButton *m_sectionBtn = nullptr;
99 QToolButton *m_profileBtn = nullptr;
100 QLabel *m_veLabel = nullptr;
101 QComboBox *m_veCombo = nullptr;
102
110 double m_sectionVe = 1.0;
111 double m_profileVe = 10.0;
112
114 int m_objectType = 0;
115 QString m_objectName;
116 Mode m_mode = Mode::Section;
117};
118
119} // namespace openswmmvis::ui
120
121#endif // OPENSWMMVIS_UI_PANELS_SECTIONVIEWPANEL_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition sectionpreviewwidget.h:31
Right-dock vector section / profile view for the selected object.
Definition sectionviewpanel.h:42
void setMode(Mode mode)
Definition sectionviewpanel.cpp:153
double verticalExaggeration() const noexcept
Definition sectionviewpanel.h:75
void setProject(SWMMModelLayer *layer)
Definition sectionviewpanel.cpp:135
Mode
Definition sectionviewpanel.h:47
void onObjectEditedExternally(const QString &name)
Definition sectionviewpanel.cpp:231
void showObject(int objectType, const QString &name)
Definition sectionviewpanel.cpp:215
void setVerticalExaggeration(double ve)
Definition sectionviewpanel.cpp:184
Mode mode() const noexcept
Definition sectionviewpanel.h:65
void refresh()
Definition sectionviewpanel.cpp:239
void clearSelection()
Definition sectionviewpanel.cpp:207
Definition aquifereditordialog.h:41
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474