16#ifndef OPENSWMMVIS_LAYERS_ANNOTATIONLAYER_H
17#define OPENSWMMVIS_LAYERS_ANNOTATIONLAYER_H
55 [[nodiscard]] QVector<AnnotationTextItem *>
annotations()
const {
return m_items; }
64 [[nodiscard]] QJsonArray
toJson()
const;
65 void fromJson(
const QJsonArray &arr);
71 {
return {{ tr(
"Annotations"), QString::number(m_items.size()) }}; }
86 void onItemPositionChanged();
93 QPointF toCanvas(
double x,
double y)
const;
100 QVector<AnnotationTextItem *> m_items;
101 QHash<QString, AnnotationGraphicsItem *> m_graphics;
102 QGraphicsScene *m_scene =
nullptr;
Definition annotationlayer.cpp:49
Data model for a single styled text annotation.
Definition annotationtextitem.h:34
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:26
Definition annotationlayer.h:30
QJsonArray toJson() const
Definition annotationlayer.cpp:278
void onCanvasCRSChanged(const SpatialReferenceSystem *newCanvasSRS) override
Called when the user changes the canvas CRS so layers can pre-compute any CRS-dependent transform cac...
Definition annotationlayer.cpp:357
~OpenSWMMVisAnnotationLayer() override
Definition annotationlayer.cpp:201
QVector< AnnotationTextItem * > annotations() const
Definition annotationlayer.h:55
void fromJson(const QJsonArray &arr)
Definition annotationlayer.cpp:286
void refreshScene(QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Smart scene refresh — updates existing items instead of destroying and recreating.
Definition annotationlayer.cpp:343
void populateScene(QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Creates / updates QGraphicsItems representing this layer in the scene.
Definition annotationlayer.cpp:317
bool removeAnnotation(const QString &id)
Definition annotationlayer.cpp:227
void depopulateScene(QGraphicsScene *scene) override
Removes all QGraphicsItems belonging to this layer from the scene.
Definition annotationlayer.cpp:329
AnnotationTextItem * takeAnnotation(const QString &id)
Definition annotationlayer.cpp:236
QString sourceDescription() const override
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / der...
Definition annotationlayer.h:69
bool addAnnotation(AnnotationTextItem *item)
Definition annotationlayer.cpp:208
AnnotationTextItem * annotation(const QString &id) const
Definition annotationlayer.cpp:254
AnnotationTextItem * annotationAtScenePos(const QPointF &scenePos) const
Definition annotationlayer.cpp:263
QVector< QPair< QString, QString > > extendedMetadata() const override
Ordered key→value pairs of TYPE-SPECIFIC metadata, rendered by the Metadata tab below the common bloc...
Definition annotationlayer.h:70
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
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
QGraphicsScene * scene
Definition inletdrawingview.cpp:78
Abstract base class for all map layers displayed in the MapCanvas.
QVector< int > parent
union-find
Definition pslgminsize.cpp:176