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 File Reference

Slice BQ Phase 6.7.4 — QUndoCommand subclasses for TransectProvider. More...

#include "transect/transectprovider.h"
#include <QString>
#include <QUndoCommand>
#include <QVector>
Include dependency graph for transectundocommands.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::transect::SetRoughnessCommand
 Atomic Manning's-n triple write. More...
 
class  openswmmvis::transect::SetBankStationsCommand
 Bank stations (xLeft, xRight). More...
 
class  openswmmvis::transect::SetEncroachmentStationsCommand
 Encroachment stations (BQ-TR-02 Reading B). More...
 
class  openswmmvis::transect::SetModifiersCommand
 Modifier triple (xFactor, yFactor, lengthFactor). More...
 
class  openswmmvis::transect::SetCommentsCommand
 Free-form rich-text comments. More...
 
class  openswmmvis::transect::MoveStationPointCommand
 Single-point move (station + elevation). Used by chart drag-end. More...
 
class  openswmmvis::transect::InsertStationCommand
 Insert a single (station, elevation). Redo re-inserts; undo removes it. Stores the inserted index after the first redo. More...
 
class  openswmmvis::transect::DeleteStationsCommand
 Remove one or more rows by index. Stores the removed (station, elevation) pairs so undo can reinstate them. More...
 
class  openswmmvis::transect::RenameTransectCommand
 Rename via the registry (uniqueness enforced by the registry). More...
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::transect
 

Detailed Description

Slice BQ Phase 6.7.4 — QUndoCommand subclasses for TransectProvider.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

Each command operates on one non-owning TransectProvider*. Commands are pushed onto the dialog's QUndoStack so a single Cmd-Z unwinds across the list, the property tree, the station-elevation grid, and the chart in lock-step (every view subscribes to the provider's signals and re-renders on apply).

Chart-drag batching follows the timeseries Phase 6.7.3.5 pattern:

  • mouse press → capture the original (station, elevation)
  • mouse move → setPointLive (no undo push, no monotonicity break)
  • mouse release → push one MoveStationPointCommand whose redo() is a no-op (state already current) and whose undo() restores the original position.

Each command emits no UI work directly — the provider's signals drive the redraw. That keeps the redo / undo paths perfectly symmetric and lets tests assert correctness without needing the dialog at all.