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
transectundocommands.h
Go to the documentation of this file.
1
25#ifndef OPENSWMMVIS_TRANSECT_TRANSECTUNDOCOMMANDS_H
26#define OPENSWMMVIS_TRANSECT_TRANSECTUNDOCOMMANDS_H
27
29
30#include <QString>
31#include <QUndoCommand>
32#include <QVector>
33
34namespace openswmmvis::transect {
35
36class TransectRegistry;
37
38// ─── Scalar (group) writes ──────────────────────────────────────────────────
39
41class SetRoughnessCommand : public QUndoCommand
42{
43public:
45 double nLeft, double nRight, double nChannel,
46 QUndoCommand *parent = nullptr);
47 void undo() override;
48 void redo() override;
49
50private:
51 TransectProvider *m_provider;
52 double m_oldNL, m_oldNR, m_oldNCh;
53 double m_newNL, m_newNR, m_newNCh;
54};
55
57class SetBankStationsCommand : public QUndoCommand
58{
59public:
61 double xLeft, double xRight,
62 QUndoCommand *parent = nullptr);
63 void undo() override;
64 void redo() override;
65
66private:
67 TransectProvider *m_provider;
68 double m_oldL, m_oldR;
69 double m_newL, m_newR;
70};
71
73class SetEncroachmentStationsCommand : public QUndoCommand
74{
75public:
77 double xLeft, double xRight,
78 QUndoCommand *parent = nullptr);
79 void undo() override;
80 void redo() override;
81
82private:
83 TransectProvider *m_provider;
84 double m_oldL, m_oldR;
85 double m_newL, m_newR;
86};
87
89class SetModifiersCommand : public QUndoCommand
90{
91public:
93 double xFactor, double yFactor, double lengthFactor,
94 QUndoCommand *parent = nullptr);
95 void undo() override;
96 void redo() override;
97
98private:
99 TransectProvider *m_provider;
100 double m_oldXF, m_oldYF, m_oldLF;
101 double m_newXF, m_newYF, m_newLF;
102};
103
105class SetCommentsCommand : public QUndoCommand
106{
107public:
109 QString newComments,
110 QUndoCommand *parent = nullptr);
111 void undo() override;
112 void redo() override;
113
114private:
115 TransectProvider *m_provider;
116 QString m_oldComments;
117 QString m_newComments;
118};
119
120// ─── Station-list edits ─────────────────────────────────────────────────────
121
123class MoveStationPointCommand : public QUndoCommand
124{
125public:
127 int index,
128 double oldStation, double oldElev,
129 double newStation, double newElev,
130 QUndoCommand *parent = nullptr);
131 void undo() override;
132 void redo() override;
133
134private:
135 TransectProvider *m_provider;
136 int m_index;
137 double m_oldStation, m_oldElev;
138 double m_newStation, m_newElev;
139};
140
143class InsertStationCommand : public QUndoCommand
144{
145public:
147 double station, double elevation,
148 QUndoCommand *parent = nullptr);
149 void undo() override;
150 void redo() override;
151
152 int insertedIndex() const noexcept { return m_insertedIndex; }
153
154private:
155 TransectProvider *m_provider;
156 double m_station;
157 double m_elevation;
158 int m_insertedIndex = -1;
159};
160
163class DeleteStationsCommand : public QUndoCommand
164{
165public:
167 QVector<int> indices,
168 QUndoCommand *parent = nullptr);
169 void undo() override;
170 void redo() override;
171
172private:
173 TransectProvider *m_provider;
174 QVector<TransectPoint> m_removed;
175};
176
177// ─── Identity ───────────────────────────────────────────────────────────────
178
180class RenameTransectCommand : public QUndoCommand
181{
182public:
184 TransectProvider *provider,
185 QString newName,
186 QUndoCommand *parent = nullptr);
187 void undo() override;
188 void redo() override;
189
190private:
191 TransectRegistry *m_registry;
192 TransectProvider *m_provider;
193 QString m_oldName;
194 QString m_newName;
195};
196
197} // namespace openswmmvis::transect
198
199#endif // OPENSWMMVIS_TRANSECT_TRANSECTUNDOCOMMANDS_H
Remove one or more rows by index. Stores the removed (station, elevation) pairs so undo can reinstate...
Definition transectundocommands.h:164
void undo() override
Definition transectundocommands.cpp:225
void redo() override
Definition transectundocommands.cpp:206
Insert a single (station, elevation). Redo re-inserts; undo removes it. Stores the inserted index aft...
Definition transectundocommands.h:144
void undo() override
Definition transectundocommands.cpp:181
void redo() override
Definition transectundocommands.cpp:175
int insertedIndex() const noexcept
Definition transectundocommands.h:152
Single-point move (station + elevation). Used by chart drag-end.
Definition transectundocommands.h:124
void undo() override
Definition transectundocommands.cpp:158
void redo() override
Definition transectundocommands.cpp:148
Rename via the registry (uniqueness enforced by the registry).
Definition transectundocommands.h:181
void undo() override
Definition transectundocommands.cpp:252
void redo() override
Definition transectundocommands.cpp:247
Bank stations (xLeft, xRight).
Definition transectundocommands.h:58
void undo() override
Definition transectundocommands.cpp:59
void redo() override
Definition transectundocommands.cpp:55
Free-form rich-text comments.
Definition transectundocommands.h:106
void undo() override
Definition transectundocommands.cpp:127
void redo() override
Definition transectundocommands.cpp:123
Encroachment stations (BQ-TR-02 Reading B).
Definition transectundocommands.h:74
void undo() override
Definition transectundocommands.cpp:81
void redo() override
Definition transectundocommands.cpp:77
Modifier triple (xFactor, yFactor, lengthFactor).
Definition transectundocommands.h:90
void redo() override
Definition transectundocommands.cpp:101
void undo() override
Definition transectundocommands.cpp:105
Atomic Manning's-n triple write.
Definition transectundocommands.h:42
void undo() override
Definition transectundocommands.cpp:36
void redo() override
Definition transectundocommands.cpp:32
Definition transectprovider.h:42
Definition transectregistry.h:25
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
Definition transectprovider.h:33
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Slice BQ Phase 6.7.4 — MVC model for a single SWMM transect.