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
importmapping.h
Go to the documentation of this file.
1
11#ifndef OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPING_H
12#define OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPING_H
13
15
16#include <QJsonObject>
17#include <QString>
18#include <QVariant>
19#include <QVector>
20
21#include <optional>
22
23namespace openswmmvis::import {
24
28 QString targetKey;
29 QString sourceField;
30 QVariant defaultValue;
31
32 [[nodiscard]] bool isBound() const
33 { return !sourceField.isEmpty() || defaultValue.isValid(); }
34};
35
39 QVector<AttributeBinding> bindings;
40
41 // ---- link endpoint resolution (priority order: fields → snap →
42 // auto-create; see the planner) --------------------------------
43 bool endpointsFromFields = false;
44 bool endpointsSnap = true;
45 double snapToleranceMapUnits = 1.0;
46 bool autoCreateJunctions = false;
47 QString autoNodePrefix = QStringLiteral("J_");
48
49 // ---- conflict policy against existing objects ---------------------
50 enum class Conflict { Skip = 0, Update = 1 };
52 bool updateAttributes = true;
53 bool updateGeometry = false;
54
55 // ---- source-side filter -------------------------------------------
57
58 [[nodiscard]] const AttributeBinding *binding(const QString &targetKey) const;
61 AttributeBinding &ensureBinding(const QString &targetKey);
62
66 [[nodiscard]] QJsonObject toJson() const;
67
71 [[nodiscard]] static std::optional<ImportMapping>
72 fromJson(const QJsonObject &j, QString *errorOut = nullptr);
73};
74
75} // namespace openswmmvis::import
76
77#endif // OPENSWMMVIS_UI_DIALOGS_IMPORT_IMPORTMAPPING_H
Definition featurelayerimporter.h:39
TargetKind
Definition importtargetregistry.h:32
Definition importmapping.h:27
QString targetKey
TargetAttribute::key.
Definition importmapping.h:28
bool isBound() const
Definition importmapping.h:32
QString sourceField
OGR field name; empty = unmapped.
Definition importmapping.h:29
QVariant defaultValue
used when sourceField is empty or the cell is null
Definition importmapping.h:30
Definition importmapping.h:37
AttributeBinding & ensureBinding(const QString &targetKey)
Definition importmapping.cpp:21
QString autoNodePrefix
Definition importmapping.h:47
bool updateGeometry
meaningful when conflict == Update
Definition importmapping.h:53
Conflict conflict
Definition importmapping.h:51
static std::optional< ImportMapping > fromJson(const QJsonObject &j, QString *errorOut=nullptr)
Definition importmapping.cpp:69
QVector< AttributeBinding > bindings
Definition importmapping.h:39
Conflict
Definition importmapping.h:50
bool selectedFeaturesOnly
Definition importmapping.h:56
bool autoCreateJunctions
Definition importmapping.h:46
const AttributeBinding * binding(const QString &targetKey) const
Definition importmapping.cpp:14
TargetKind kind
Definition importmapping.h:38
bool endpointsFromFields
Definition importmapping.h:43
bool endpointsSnap
Definition importmapping.h:44
bool updateAttributes
meaningful when conflict == Update
Definition importmapping.h:52
double snapToleranceMapUnits
model-layer CRS units
Definition importmapping.h:45
QJsonObject toJson() const
Definition importmapping.cpp:29