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
tabulardatalayer.h
Go to the documentation of this file.
1
17#ifndef TABULARDATALAYER_H
18#define TABULARDATALAYER_H
19
21
22#include <QString>
23#include <QStringList>
24#include <QVariantMap>
25#include <QVector>
26
28{
29 Q_OBJECT
30public:
31 explicit TabularDataLayer(const QString &name = "Untitled Table",
32 OpenSWMMVisWorkspace *parent = nullptr);
34
38 [[nodiscard]] QString sourcePath() const;
39
40 [[nodiscard]] QString sourceDescription() const override
41 { const QString p = sourcePath(); return p.isEmpty() ? tr("(in-memory)") : p; }
42
44 [[nodiscard]] QStringList columnHeaders() const { return m_headers; }
45
47 [[nodiscard]] QVector<QVariantMap> rows() const { return m_rows; }
48
50 [[nodiscard]] int rowCount() const { return m_rows.size(); }
51
54 [[nodiscard]] QVariantMap row(int idx) const;
55
56 // ----- Loaders --------------------------------------------------------
57
63 bool loadDelimited(const QString &path, QChar delimiter,
64 QString *errorOut = nullptr);
65
69 bool loadFromFile(const QString &path, QString *errorOut = nullptr);
70
71 // ----- OpenSWMMVisLayer overrides -------------------------------------
72
74 void render(QPainter *painter,
75 const MapExtent &extent,
76 const QSize &imageSize,
77 const SpatialReferenceSystem *srs) override
78 {
79 Q_UNUSED(painter); Q_UNUSED(extent);
80 Q_UNUSED(imageSize); Q_UNUSED(srs);
81 }
82
86 void populateScene(QGraphicsScene *scene,
87 const MapExtent &canvasExtent,
88 const SpatialReferenceSystem *canvasSRS) override
89 {
90 Q_UNUSED(scene); Q_UNUSED(canvasExtent); Q_UNUSED(canvasSRS);
91 }
92
93signals:
96 void dataLoaded();
97
98private:
99 QString m_sourcePath;
100 QStringList m_headers;
101 QVector<QVariantMap> m_rows;
102};
103
104#endif // TABULARDATALAYER_H
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:26
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:116
QString name() const
Returns the user-visible name of this layer.
Definition openswmmvislayer.cpp:62
SpatialReferenceSystem * srs() const
Returns the spatial reference system for this layer, or nullptr if the layer has no known CRS.
Definition openswmmvislayer.cpp:201
MapExtent extent() const
Returns the layer extent in the layer's own CRS.
Definition openswmmvislayer.cpp:252
Top-level project container managing sessions, the SWMM model layer, and persistence paths for one SW...
Definition openswmmvisworkspace.h:42
Represents a coordinate reference system backed by a GDAL OGRSpatialReference.
Definition spatialreferencesystem.h:28
Definition tabulardatalayer.h:28
QVariantMap row(int idx) const
Definition tabulardatalayer.cpp:29
bool loadDelimited(const QString &path, QChar delimiter, QString *errorOut=nullptr)
Definition tabulardatalayer.cpp:117
QString sourcePath() const
Definition tabulardatalayer.cpp:22
QVector< QVariantMap > rows() const
Definition tabulardatalayer.h:47
void render(QPainter *painter, const MapExtent &extent, const QSize &imageSize, const SpatialReferenceSystem *srs) override
Definition tabulardatalayer.h:74
bool loadFromFile(const QString &path, QString *errorOut=nullptr)
Definition tabulardatalayer.cpp:162
~TabularDataLayer() override
QStringList columnHeaders() const
Definition tabulardatalayer.h:44
QString sourceDescription() const override
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / der...
Definition tabulardatalayer.h:40
void populateScene(QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Definition tabulardatalayer.h:86
int rowCount() const
Definition tabulardatalayer.h:50
QGraphicsScene * scene
Definition inletdrawingview.cpp:78
ArrowPlacement p
Definition linesymbollayer.cpp:27
Abstract base class for all map layers displayed in the MapCanvas.
int path
Definition pslgminsize.cpp:234
QVector< int > parent
union-find
Definition pslgminsize.cpp:176