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

Slice BQ Phase 6.7.3.1 — MVC model for a single Tseries. More...

#include <QDateTime>
#include <QObject>
#include <QString>
#include <QVector>
Include dependency graph for timeseriesprovider.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::timeseries::TimeseriesPoint
 One (time, value) sample. More...
 
class  openswmmvis::timeseries::TimeseriesProvider
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::timeseries
 

Detailed Description

Slice BQ Phase 6.7.3.1 — MVC model for a single Tseries.

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

One TimeseriesProvider per [TIMESERIES] object in the project. Owned by a project-scoped TimeseriesRegistry. Acts as the single source of truth for that Tseries: the editor dialog grid, the editor dialog plot, the Object Browser property pane, and any future scripting hook all subscribe to the provider's Qt signals (per [[feedback_mvc_synchronized_uis]]).

Storage invariant: in Inline / GeopackageObserved modes the point list is strictly ascending in time. Every public mutator validates the post- mutation state against this invariant and refuses any operation that would violate it — emitting mutationRejected(reason) so the caller can surface the rejection (drag-edit needs this so silent reorders don't lose user intent). Bulk operations are atomic: either all points are updated, or none are.

Mutations are intended to flow through QUndoCommand subclasses (Phase 6.7.3 — timeseriesundocommands.h); this class is undo-stack agnostic and exposes the raw apply* methods the commands call.