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
projectserializer.h File Reference
#include <QDir>
#include <QFileInfo>
#include <QJsonObject>
#include <QString>
#include <QVector>
Include dependency graph for projectserializer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ProjectSerializer
 

Detailed Description

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

.oswp sidecar serializer. Captures the GUI-only state that can't round-trip through SWMM's INP format: layer CRS, category order, hidden objects, canvas CRS + extent, basemaps, and (in v4+) the project's instance list.

Schema history: v0 — pre-Slice-X stub ({ layers: [{ path }] }). No-op apply. v1 — Slice X first cut. Flat root: inpPath + layer + canvas. v2 — reserved (relative-path migration; never shipped). v3 — basemaps[] added. v4 — sessions[] array (Slice AA-3.2): inpPath / engineVersion / layer move into sessions[N]; root keeps canvas + basemaps + (future) preferences. All path fields stored relative to the .oswp directory.

Forward-compat: unknown root keys are skipped silently. Apply accepts every prior schema and migrates in-memory.