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
curveregistry.h
Go to the documentation of this file.
1
13#ifndef OPENSWMMVIS_CURVE_CURVEREGISTRY_H
14#define OPENSWMMVIS_CURVE_CURVEREGISTRY_H
15
16#include "curve/curveprovider.h"
17
18#include <QHash>
19#include <QObject>
20#include <QString>
21#include <QVector>
22
23namespace openswmmvis::curve {
24
25class CurveRegistry : public QObject
26{
27 Q_OBJECT
28
29public:
30 explicit CurveRegistry(QObject *parent = nullptr);
31 ~CurveRegistry() override;
32
33 QVector<CurveProvider *> providers() const { return m_providers; }
34 int providerCount() const noexcept { return m_providers.size(); }
35
36 CurveProvider *findByName(const QString &name) const;
37 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
38
41 CurveProvider *create(const QString &name, CurveType type);
42
43 void remove(CurveProvider *p);
44 bool rename(CurveProvider *p, const QString &newName);
45
48 int loadFromEngine(void *engineHandle);
49
52 int saveToEngine(void *engineHandle);
53
54signals:
58 const QString &prevName, const QString &newName);
59
60private:
61 QVector<CurveProvider *> m_providers;
62 QHash<QString, CurveProvider *> m_byLowerName;
65 void *m_engineHandle = nullptr;
66};
67
68} // namespace openswmmvis::curve
69
70#endif // OPENSWMMVIS_CURVE_CURVEREGISTRY_H
Definition curveprovider.h:56
Definition curveregistry.h:26
void providerRenamed(openswmmvis::curve::CurveProvider *provider, const QString &prevName, const QString &newName)
CurveProvider * findByName(const QString &name) const
Definition curveregistry.cpp:26
int saveToEngine(void *engineHandle)
Push every provider back to the engine via swmm_curve_add (if new) + swmm_table_clear + swmm_table_ad...
Definition curveregistry.cpp:123
bool rename(CurveProvider *p, const QString &newName)
Definition curveregistry.cpp:69
int providerCount() const noexcept
Definition curveregistry.h:34
void providerAboutToBeRemoved(openswmmvis::curve::CurveProvider *provider)
QVector< CurveProvider * > providers() const
Definition curveregistry.h:33
int loadFromEngine(void *engineHandle)
Populate from a live SWMM engine handle. Walks swmm_table_*, filters out TIMESERIES tables (type code...
Definition curveregistry.cpp:81
bool hasName(const QString &name) const
Definition curveregistry.h:37
void providerAdded(openswmmvis::curve::CurveProvider *provider)
CurveProvider * create(const QString &name, CurveType type)
Create + own a new provider with the given name + type.
Definition curveregistry.cpp:31
void remove(CurveProvider *p)
Definition curveregistry.cpp:49
Slice BQ Phase 6.7.1 — MVC model for a single SWMM curve.
enum OpenSWMM::Render::@788::Value::Type type
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition curveprovider.h:31
CurveType
Curve flavour. Numeric values match the engine's TableType (1..11) so static_cast<int>(type) is safe.
Definition curveprovider.h:35
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474