10#ifndef SWMMVISPROJECTWINDOW_H
11#define SWMMVISPROJECTWINDOW_H
15#include <QMdiSubWindow>
64 const QString &filePath = QString(),
91 bool loadModel(QList<QString> &warnings, QList<QString> &errors);
154 QList<QString> &warnings,
155 QList<QString> &errors);
161 bool save(QString *errorOut =
nullptr);
162 bool saveAs(
const QString &newPath, QString *errorOut =
nullptr);
254 {
return mSelectProfileTool; }
259 {
return mAddVirtualJunctionTool; }
265 {
return { mAddJunctionTool, mAddOutfallTool, mAddStorageTool, mAddDividerTool }; }
270 {
return mAddInletJunctionTool; }
288 {
return mStatsRegistry; }
323 { mPending2DResultsRestore = entries; }
325 {
return mPending2DResultsRestore; }
330 QHash<class OpenSWMMVisMapTool *, QString>
toolActionKeys()
const;
425 const QString &vertUnit = QString());
436 const QList<QString> &errors);
449 const QString &meshPath);
465 const QVector<int> &triIdxList,
466 const QVector<openswmmvis::plot::PlotAttribute> &attrs);
496 const QVector<openswmmvis::plot::PlotAttribute> &attrs);
517 bool eventFilter(QObject *watched, QEvent *event)
override;
520 void updateWindowTitle();
521 void repositionMeasurePanel();
522 void updateMeasureUnitCombo();
527 bool finishModelLoad(QList<QString> &warnings, QList<QString> &errors);
532 void refreshActive2DCellHighlight();
539 bool mCanvasCRSAdopted =
false;
540 bool mHasChanges =
false;
541 bool mEditSessionActive =
false;
542 bool mElevationOffsetMode =
false;
543 bool mUntitled =
false;
544 bool mClosePromptActive =
false;
545 bool mClosing =
false;
546 QStringList mLastSaveWarnings;
547 QString mEngineVersion =
"6.0.0";
549 QJsonArray mPending2DResultsRestore;
581 QFrame *mMeasurePanel =
nullptr;
582 QComboBox *mMeasureModeCombo =
nullptr;
583 QComboBox *mMeasureUnitCombo =
nullptr;
584 QLabel *mMeasureTotalLabel =
nullptr;
586 bool mAutoLengthEnabled =
false;
596 QPointer<SWMMResultsLayer> mActiveResultsLayer;
597 QPointer<SWMM2DResultsLayer> mActive2DResultsLayer;
601 double mTerrainNodeOffset = 0.0;
602 double mTerrainLinkOffset = 0.0;
603 QString mTerrainVertUnit = QStringLiteral(
"m");
604 double mTerrainVertFactor = 1.0;
Unit unit
Definition aquifereditordialog.cpp:57
A map layer backed by a GDAL raster dataset.
Definition gisrasterlayer.h:61
The central map display widget — QGIS-style hybrid rendering.
Definition mapcanvas.h:63
Weighted, monotonic progress aggregator for one project open.
Definition loadprogress.h:114
Definition annotationlayer.h:30
Definition maptooladdtext.h:21
Top-level project container managing sessions, the SWMM model layer, and persistence paths for one SW...
Definition openswmmvisworkspace.h:42
Definition swmm2dmeshlayer.h:64
Definition swmm2dresultslayer.h:550
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Overlays time-stepped simulation results on the SWMM network geometry.
Definition swmmresultslayer.h:96
MDI sub-window owning a MapCanvas, SWMMModelLayer, and map tools.
Definition swmmvisprojectwindow.h:58
OpenSWMMVisAnnotationLayer * ensureAnnotationLayer()
Definition swmmvisprojectwindow.cpp:2005
void editSessionChanged(bool active)
void meshProfileTraced(const QVector< QPointF > &scenePolyline)
void autoLengthChanged(bool enabled)
bool hasModelLayer() const
Definition swmmvisprojectwindow.cpp:1969
void reloadElevationOffsetModeFromEngine()
Definition swmmvisprojectwindow.cpp:553
UnitSystem * unitSystem() const
Definition swmmvisprojectwindow.cpp:550
void activateAddWeirTool()
Definition swmmvisprojectwindow.cpp:1993
void activateAddJunctionTool()
Definition swmmvisprojectwindow.cpp:1984
void setActive2DResultsLayer(SWMM2DResultsLayer *layer)
Definition swmmvisprojectwindow.cpp:2109
bool save(QString *errorOut=nullptr)
Save the model to its current path or to a new path.
Definition swmmvisprojectwindow.cpp:1321
SWMMResultsLayer * activeResultsLayer() const
Definition swmmvisprojectwindow.cpp:2087
void activateSelectByPolygonTool()
Definition swmmvisprojectwindow.cpp:1869
SWMM2DResultsLayer * active2DResultsLayer() const
Definition swmmvisprojectwindow.cpp:2092
void hasChangesChanged(bool dirty)
bool hasMeshLayer() const
Definition swmmvisprojectwindow.cpp:1977
void activeResultsLayerChanged(SWMMResultsLayer *layer)
void loadModelAsync(class OpenProgressModel *progress=nullptr)
Non-blocking variant of loadModel().
Definition swmmvisprojectwindow.cpp:617
void setHasChanges(bool dirty)
Definition swmmvisprojectwindow.cpp:995
bool initializeBlankModel(const SWMMModelLayer::NewProjectSpec &spec, QList< QString > &warnings, QList< QString > &errors)
In-memory File → New: build a blank BUILDING-state engine from spec (SWMMModelLayer::adoptNewEngine) ...
Definition swmmvisprojectwindow.cpp:1304
void activatePick2DCellsTool()
Definition swmmvisprojectwindow.cpp:1871
SWMMModelLayer * modelLayer() const
Definition swmmvisprojectwindow.cpp:549
void closeEvent(QCloseEvent *event) override
Definition swmmvisprojectwindow.cpp:1759
void activateMeshSelectEdgeTool()
Definition swmmvisprojectwindow.cpp:1892
void markUntitled()
Definition swmmvisprojectwindow.cpp:1298
void convertLinkOffsets(bool toElevation, bool convertValues)
Definition swmmvisprojectwindow.cpp:581
void meshImportFinished(bool ok, const QString &message, const QString &meshPath)
double terrainNodeOffset() const
Definition swmmvisprojectwindow.h:387
void setEditSessionActive(bool active)
Definition swmmvisprojectwindow.cpp:1278
void activateZoomOutTool()
Definition swmmvisprojectwindow.cpp:1862
void zoomToFullExtent()
Definition swmmvisprojectwindow.cpp:2017
void activateAddConduitTool()
Definition swmmvisprojectwindow.cpp:1990
void active2DResultsLayerChanged(SWMM2DResultsLayer *layer)
void setNotesHtml(const QString &html)
Definition swmmvisprojectwindow.h:368
void meshVertexSeriesRequested(class SWMM2DMeshLayer *mesh, const QVector< int > &vertexIdxList, const QVector< openswmmvis::plot::PlotAttribute > &attrs)
bool isEditSessionActive() const
Definition swmmvisprojectwindow.h:179
MapCanvas * canvas() const
Definition swmmvisprojectwindow.cpp:548
void activateAddVirtualJunctionTool()
Definition swmmvisprojectwindow.cpp:1985
void importMeshFileAsync(const QString &srcPath)
Browse-and-load an existing SWMMVis 2D mesh (.2dm) into this project.
Definition swmmvisprojectwindow.cpp:1031
bool isAutoLengthEnabled() const
Definition swmmvisprojectwindow.h:357
void setTerrainLinkOffset(double offset)
Definition swmmvisprojectwindow.cpp:2194
QStringList lastSaveWarnings() const
Definition swmmvisprojectwindow.h:170
void activateSelectProfileTool()
Definition swmmvisprojectwindow.cpp:1910
class openswmmvis::OutputStatsRegistry * statsRegistry() const
Definition swmmvisprojectwindow.h:287
void activateAddOutletTool()
Definition swmmvisprojectwindow.cpp:1994
void activateAddStorageTool()
Definition swmmvisprojectwindow.cpp:1988
QString terrainVerticalUnit() const
Definition swmmvisprojectwindow.h:406
class OpenSWMMVisMapToolAddVirtualNode * addVirtualJunctionTool() const
Definition swmmvisprojectwindow.h:258
void activateAddInletJunctionTool()
Definition swmmvisprojectwindow.cpp:1986
void setElevationOffsetMode(bool elevation)
Definition swmmvisprojectwindow.cpp:565
class OpenSWMMVisMapToolSelectProfile * selectProfileTool() const
Definition swmmvisprojectwindow.h:253
bool hasChanges() const
Definition swmmvisprojectwindow.h:173
void activateMeshSelectVertexTool()
Definition swmmvisprojectwindow.cpp:1882
SelectionManager * selectionManager() const
Definition swmmvisprojectwindow.cpp:551
void terrainProfileTraced(const QVector< QPointF > &scenePolyline)
void activateMeshProfileTool()
Definition swmmvisprojectwindow.cpp:1918
bool saveAs(const QString &newPath, QString *errorOut=nullptr)
Definition swmmvisprojectwindow.cpp:1334
void activateAddGageTool()
Definition swmmvisprojectwindow.cpp:1995
bool loadModel(QList< QString > &warnings, QList< QString > &errors)
Definition swmmvisprojectwindow.cpp:610
void saveCompletedWithEngineWarnings(const QStringList &warnings)
QList< OpenSWMMVisMapToolAddNode * > addNodeTools() const
Definition swmmvisprojectwindow.h:264
void modelLoadFinished(bool ok, const QList< QString > &warnings, const QList< QString > &errors)
bool eventFilter(QObject *watched, QEvent *event) override
Definition swmmvisprojectwindow.cpp:1709
bool isElevationOffsetMode() const
Definition swmmvisprojectwindow.h:76
void activateZoomInTool()
Definition swmmvisprojectwindow.cpp:1861
void modelLoadError(const QString &msg)
double terrainLinkOffset() const
Definition swmmvisprojectwindow.h:390
void offsetModeChanged(bool elevation)
void activateSelectTool()
Definition swmmvisprojectwindow.cpp:1863
void activatePanTool()
Definition swmmvisprojectwindow.cpp:1860
OpenSWMMVisAnnotationLayer * annotationLayer() const
Definition swmmvisprojectwindow.h:349
bool isUntitled() const
Definition swmmvisprojectwindow.h:187
void restoreTerrainState(const QString &absoluteLayerPath, double nodeOffset, double linkOffset, const QString &vertUnit=QString())
Restores terrain state from a persisted .oswp session. Called by ProjectSerializer::applySession afte...
Definition swmmvisprojectwindow.cpp:2249
void setActiveTerrain(GISRasterLayer *layer)
Sets the active terrain raster and propagates it to all add-node and add-link tools owned by this win...
Definition swmmvisprojectwindow.cpp:2157
void pick2DCellsPicked(class SWMM2DResultsLayer *layer, const QVector< int > &triIdxList, const QVector< openswmmvis::plot::PlotAttribute > &attrs)
void activateAddOutfallTool()
Definition swmmvisprojectwindow.cpp:1987
class OpenSWMMVisMapToolSelect * selectTool() const
Definition swmmvisprojectwindow.h:248
class MapToolPick2DCells * pick2DCellsTool() const
Definition swmmvisprojectwindow.h:275
void attachMeshLayer(class SWMM2DMeshLayer *meshLayer, bool pristine=false)
Subscribe a 2D mesh layer's edit signals to the project's dirty flag.
Definition swmmvisprojectwindow.cpp:1004
QJsonArray pending2DResultsRestore() const
Definition swmmvisprojectwindow.h:324
bool isClosing() const
Definition swmmvisprojectwindow.h:193
void changeEvent(QEvent *event) override
Definition swmmvisprojectwindow.cpp:1849
GISRasterLayer * activeTerrain() const
Definition swmmvisprojectwindow.h:378
void meshEdgeStatusMessage(const QString &message)
void activateAddSubcatchmentTool()
Definition swmmvisprojectwindow.cpp:1996
void setTerrainVerticalUnit(const QString &unit)
Sets the terrain raster's vertical unit and updates the conversion factor applied when computing node...
Definition swmmvisprojectwindow.cpp:2207
void setPending2DResultsRestore(const QJsonArray &entries)
Definition swmmvisprojectwindow.h:322
QHash< class OpenSWMMVisMapTool *, QString > toolActionKeys() const
Definition swmmvisprojectwindow.cpp:2019
void setEngineVersion(const QString &version)
Definition swmmvisprojectwindow.cpp:2074
class OpenSWMMVisMapToolAddInletNode * addInletJunctionTool() const
Definition swmmvisprojectwindow.h:269
void activateAddPumpTool()
Definition swmmvisprojectwindow.cpp:1991
void activateAddTextTool()
Definition swmmvisprojectwindow.cpp:1997
double terrainVertFactor() const
Definition swmmvisprojectwindow.h:384
void activateAddDividerTool()
Definition swmmvisprojectwindow.cpp:1989
QString notesHtml() const
Definition swmmvisprojectwindow.h:367
void setTerrainNodeOffset(double offset)
Definition swmmvisprojectwindow.cpp:2181
void activateTerrainProfileTool()
Definition swmmvisprojectwindow.cpp:1951
void clearPending2DResultsRestore()
Definition swmmvisprojectwindow.h:326
void analysisMeshProfileTraced(const QVector< QPointF > &scenePolyline)
void setActiveResultsLayer(SWMMResultsLayer *layer)
Definition swmmvisprojectwindow.cpp:2097
QString engineVersion() const
Definition swmmvisprojectwindow.h:361
void activateMeasureTool()
Definition swmmvisprojectwindow.cpp:1903
void meshEdgeFluxRequested(class SWMM2DMeshLayer *mesh, int triIdx, int edgeLocal, openswmmvis::plot::PlotAttribute attr)
~SWMMVisProjectWindow() override
QString activeTerrainLayerPath() const
Definition swmmvisprojectwindow.cpp:2082
class MapToolMeshProfile * meshProfileTool() const
Definition swmmvisprojectwindow.h:278
void activateAnalysisMeshProfileTool()
Definition swmmvisprojectwindow.cpp:1934
void setAutoLengthEnabled(bool enabled)
Definition swmmvisprojectwindow.cpp:2063
void activeTerrainChanged(GISRasterLayer *newTerrain)
void activateAddOrificeTool()
Definition swmmvisprojectwindow.cpp:1992
Owner of the canonical selection set for one SWMM project.
Definition selectionmanager.h:112
Per-project flow-units state + label helpers.
Definition unitsystem.h:28
Definition outputstatsregistry.h:70
bool ok
Definition inpmeshwriter.cpp:575
Definition meshcommands.h:302
PlotAttribute
What a series plots. One row per attribute in the Nx2 grid.
Definition plotattribute.h:38
Definition aquiferprovider.h:21
Slice BL — canonical enumeration of plottable result attributes.
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString message
Definition queryparser.cpp:150
Everything a blank untitled project needs — the in-memory replacement for the synthetic temp ....
Definition swmmmodellayer.h:296
Map layer that renders an OpenSWMMEngine network (nodes, links, subcatchments, rain gages) and provid...