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
timeserieseditchartview.h File Reference

Slice BQ Phase 6.7.3.5 — interactive Qt Charts view for editing one TimeseriesProvider directly on the plot. More...

#include "ui/widgets/interactivechartview.h"
#include <QPoint>
#include <QPointer>
#include <QVector>
Include dependency graph for timeserieseditchartview.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::ui::TimeseriesEditChartView
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::plot
 
namespace  openswmmvis::timeseries
 
namespace  openswmmvis::ui
 

Detailed Description

Slice BQ Phase 6.7.3.5 — interactive Qt Charts view for editing one TimeseriesProvider directly on the plot.

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

Subclasses InteractiveChartView (Slice AT.2) so Pan / Zoom / Wheel modes are inherited unchanged. Adds an orthogonal EditMode axis on top of the base Mode enum:

  • None — base Select/Pan/Zoom behaviour only.
  • EditPoints — hit-test on scatter overlay; drag Y to change value (X locked, preserving monotonicity); Shift-drag rubber-band to select multiple; drag selection to translate values uniformly.
  • RotatePoints — stub in this cut; lands with on-canvas handle + side-panel numeric entry in a follow-up.
  • ScalePoints — stub in this cut; same follow-up.

Right-click context menu (Insert here / Delete selected / Clear selection)

  • Snap-to-time-step toggle round out the surface.

MVC contract (per [[feedback_mvc_synchronized_uis]]): the chart is one of N views on the bound TimeseriesProvider. All mutations route through QUndoCommand subclasses pushed to the optional undo stack; live drag uses setValueLive to avoid per-frame undo churn. The view subscribes to the provider's signals so edits made elsewhere (table, property panel) refresh the chart automatically — no polling.