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
filespage.h
Go to the documentation of this file.
1
15#ifndef FILESPAGE_H
16#define FILESPAGE_H
17
19
20class QCheckBox;
21class QComboBox;
22class QGroupBox;
23class QLineEdit;
24class QPushButton;
25class QRadioButton;
26class QTableView;
27class QVBoxLayout;
28
29// These carry the member types verbatim from the monolith, so the page needs
30// their full declarations rather than forward declarations.
31#include "ui/dialogs/climatologydialog.h" // openswmmvis::ui::RelativePathPicker
32#include "ui/dialogs/hotstartsavesmodel.h" // HotstartSavesModel + its delegate
36#include "ui/dialogs/simulationoptionsdialog.h" // ProcessComponentsModel
37
38namespace openswmmvis::ui
39{
40
42{
43 Q_OBJECT
44
45public:
46 explicit FilesPage(SimOptionsContext &ctx, QWidget *parent = nullptr);
47
48 [[nodiscard]] QString title() const override;
49 void read() override;
50 int write() override;
51 bool validate(QString *warn) override;
52
53 void applyCapabilities() override;
54
55private slots:
56 void browseForReportFile();
57 void browseForOutputFile();
58 void onHotstartSaveAddRow();
59 void onHotstartSaveBrowseRow();
60 void onHotstartSaveRemoveRow();
61 void onHotstartSaveMoveRowUp();
62 void onHotstartSaveMoveRowDown();
63 void onSingleContainerToggled(bool on);
64
65private:
66 void buildUi();
67 void tagWidgets();
68 void buildReportContentsGroup(QVBoxLayout *parentLayout, QWidget *parent);
69 void moveHotstartSaveRow(int from, int to);
70 void updateSingleContainerEnabled();
71
72 void readReportContentsFromEngine();
73 int writeReportContentsToEngine();
74 void readPluginsFromEngine();
75 int writePluginsToEngine();
76 void readProcessComponentsFromEngine();
77 int writeProcessComponentsToEngine();
78 void readWriterCombosFromEngine();
79 int writeWriterCombosToEngine();
80 void readOutputPathsFromSettings();
81 void writeOutputPathsToSettings();
82 void readFilesSectionFromEngine();
83 int writeFilesSectionToEngine();
84 bool validateFilesTab(QString *warn);
85
86 QPushButton *m_componentsAddBtn = nullptr;
87 ProcessComponentIdDelegate *m_componentsIdDel = nullptr;
88 ProcessComponentsModel *m_componentsModel = nullptr;
89 PathBrowseDelegate *m_componentsPathDel = nullptr;
90 QPushButton *m_componentsRemoveBtn = nullptr;
91 QTableView *m_componentsView = nullptr;
92 QPushButton *m_hotstartSavesAddBtn = nullptr;
93 QPushButton *m_hotstartSavesBrowseBtn = nullptr;
94 QPushButton *m_hotstartSavesDownBtn = nullptr;
95 HotstartSavesDateTimeDelegate *m_hotstartSavesDtDel = nullptr;
96 HotstartSavesModel *m_hotstartSavesModel = nullptr;
97 PathBrowseDelegate *m_hotstartSavesPathDel = nullptr;
98 QPushButton *m_hotstartSavesRemoveBtn = nullptr;
99 QPushButton *m_hotstartSavesUpBtn = nullptr;
100 QTableView *m_hotstartSavesView = nullptr;
101 openswmmvis::ui::RelativePathPicker *m_hotstartUseEdit = nullptr;
102 openswmmvis::ui::RelativePathPicker *m_inflowsPathEdit = nullptr;
103 QComboBox *m_inputWriterCombo = nullptr;
104 openswmmvis::ui::RelativePathPicker *m_outflowsPathEdit = nullptr;
105 QLineEdit *m_outputFilePathEdit = nullptr;
106 QComboBox *m_outputWriterCombo = nullptr;
107 QPushButton *m_pluginsAddBtn = nullptr;
108 PluginsTableModel *m_pluginsModel = nullptr;
109 PathBrowseDelegate *m_pluginsPathDel = nullptr;
110 QPushButton *m_pluginsRemoveBtn = nullptr;
111 QTableView *m_pluginsView = nullptr;
112 QComboBox *m_rainfallModeCombo = nullptr;
113 openswmmvis::ui::RelativePathPicker *m_rainfallPathEdit = nullptr;
114 QComboBox *m_rdiiModeCombo = nullptr;
115 openswmmvis::ui::RelativePathPicker *m_rdiiPathEdit = nullptr;
116 QLineEdit *m_reportFilePathEdit = nullptr;
117 QComboBox *m_reportWriterCombo = nullptr;
118 QCheckBox *m_rptAveragesBox = nullptr;
119 QCheckBox *m_rptContinuityBox = nullptr;
120 QCheckBox *m_rptControlsBox = nullptr;
121 QCheckBox *m_rptDisabledBox = nullptr;
122 QCheckBox *m_rptFlowstatsBox = nullptr;
123 QCheckBox *m_rptInputBox = nullptr;
124 QRadioButton *m_rptLinkAllRadio = nullptr;
125 QLineEdit *m_rptLinkListEdit = nullptr;
126 QRadioButton *m_rptLinkNoneRadio = nullptr;
127 QRadioButton *m_rptLinkSomeRadio = nullptr;
128 QRadioButton *m_rptNodeAllRadio = nullptr;
129 QLineEdit *m_rptNodeListEdit = nullptr;
130 QRadioButton *m_rptNodeNoneRadio = nullptr;
131 QRadioButton *m_rptNodeSomeRadio = nullptr;
132 QRadioButton *m_rptSubcatchAllRadio = nullptr;
133 QLineEdit *m_rptSubcatchListEdit = nullptr;
134 QRadioButton *m_rptSubcatchNoneRadio = nullptr;
135 QRadioButton *m_rptSubcatchSomeRadio = nullptr;
136 QComboBox *m_runoffModeCombo = nullptr;
137 openswmmvis::ui::RelativePathPicker *m_runoffPathEdit = nullptr;
138 QCheckBox *m_signedHeadsCheck = nullptr;
139 QCheckBox *m_singleContainerBox = nullptr;
140 class QGroupBox *m_writersGroup = nullptr;
141};
142
143} // namespace openswmmvis::ui
144
145#endif // FILESPAGE_H
Delegate for the Datetime column. Editor is a QDateTimeEdit whose minimum date-time renders as the sp...
Definition hotstartsavesmodel.h:73
Row schema: {path relative to the .inp dir, OLE-Automation datetime sentinel}. An oaDate of 0....
Definition hotstartsavesmodel.h:30
Definition pathbrowsedelegate.h:24
Definition pluginstablemodel.h:21
Combo editor over the built-in catalogue, editable for free-form ids.
Definition processcomponentsmodel.h:85
Definition processcomponentsmodel.h:31
Definition filespage.h:42
QString title() const override
Sidebar row text, already tr()'d.
Definition filespage.cpp:92
bool validate(QString *warn) override
Validation run before Apply/OK; false pops warn and stops.
Definition filespage.cpp:171
int write() override
widgets → engine via ctx_.writeIfChanged; returns the sum.
Definition filespage.cpp:107
void read() override
engine → widgets. Block signals while setting.
Definition filespage.cpp:97
void applyCapabilities() override
One-shot per-widget disable/tooltip from ctx_.caps().
Definition filespage.cpp:139
A QLineEdit + browse-button widget that normalises display paths against a project anchor.
Definition relativepathpicker.h:50
Definition simoptionscontext.h:31
Definition simoptionspage.h:25
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176