26#ifndef PROJECTSERIALIZER_H
27#define PROJECTSERIALIZER_H
56 static bool saveToFile(
const QString &oswpPath,
58 QString *errorOut =
nullptr);
63 static bool saveToFile(
const QString &oswpPath,
65 QString *errorOut =
nullptr);
78 QString *errorOut =
nullptr,
79 QStringList *warningsOut =
nullptr);
86 [[nodiscard]]
static inline QString
sidecarPathFor(
const QString &inpPath);
103 const QString &oswpFile);
110 const QString &oswpFile);
114 const QString &oswpFile);
115 static bool applySession(
const QJsonObject &sessionObj,
117 const QString &oswpFile,
118 QStringList *warningsOut =
nullptr);
120 static bool writeRootJson(
const QString &oswpPath,
121 const QVector<SWMMVisProjectWindow *> &windows,
125 const QString &oswpPath);
128 const QString &oswpPath,
129 QStringList *warningsOut =
nullptr);
136 const QString &oswpPath);
137 static void deserializeGisLayer(
const QJsonObject &obj,
139 const QString &oswpPath,
140 QStringList *warningsOut =
nullptr);
148 const QString &oswpFile)
150 if (
path.isEmpty())
return {};
151 const QFileInfo oswpFi(oswpFile);
152 const QDir oswpDir = oswpFi.absoluteDir();
153 const QString cleanedAbs = QDir::cleanPath(QFileInfo(
path).absoluteFilePath());
157 return oswpDir.relativeFilePath(cleanedAbs);
161 const QString &oswpFile)
163 if (stored.isEmpty())
return {};
164 if (QDir::isAbsolutePath(stored))
165 return QDir::cleanPath(stored);
166 const QFileInfo oswpFi(oswpFile);
167 const QDir oswpDir = oswpFi.absoluteDir();
168 return QDir::cleanPath(oswpDir.absoluteFilePath(stored));
173 if (inpPath.isEmpty())
return {};
174 const QFileInfo fi(inpPath);
175 return fi.absoluteDir().filePath(fi.completeBaseName() +
176 QStringLiteral(
".oswp"));
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:116
Definition projectserializer.h:41
static bool applyFromFile(const QString &oswpPath, SWMMVisProjectWindow *pw, QString *errorOut=nullptr, QStringList *warningsOut=nullptr)
Definition projectserializer.cpp:1176
static QString resolveStoredPath(const QString &stored, const QString &oswpFile)
Definition projectserializer.h:160
static QString toRelativePath(const QString &path, const QString &oswpFile)
Definition projectserializer.h:147
static constexpr int kCurrentSchemaVersion
Definition projectserializer.h:50
static QString sidecarPathFor(const QString &inpPath)
Definition projectserializer.h:171
static bool saveToFile(const QString &oswpPath, SWMMVisProjectWindow *pw, QString *errorOut=nullptr)
Definition projectserializer.cpp:1144
Definition swmmvisproject.h:31
MDI sub-window owning a MapCanvas, SWMMModelLayer, and map tools.
Definition swmmvisprojectwindow.h:58
int path
Definition pslgminsize.cpp:234
QVector< int > parent
union-find
Definition pslgminsize.cpp:176