53using LoadProgressFn = std::function<void(
int localPct,
const QString &stage)>;
91 if (localPct < 0) localPct = 0;
92 if (localPct > 100) localPct = 100;
152 [[nodiscard]]
int percent()
const {
return m_lastPct; }
155 [[nodiscard]] QString
label()
const {
return m_label; }
173 std::array<int, kStageCount> m_localPct{};
175 QString m_emittedLabel;
177 bool m_finishedEmitted =
false;
Weighted, monotonic progress aggregator for one project open.
Definition loadprogress.h:114
static QString stageLabel(OpenStage stage)
Definition loadprogress.cpp:59
void finishStage(OpenStage stage)
Mark stage fully done (idempotent).
Definition loadprogress.cpp:96
void progressChanged(int pct, const QString &label)
QString label() const
Definition loadprogress.h:155
int percent() const
Definition loadprogress.h:152
bool isComplete() const
Definition loadprogress.cpp:118
static int stageWeight(OpenStage stage)
Definition loadprogress.cpp:51
void setStage(OpenStage stage, int localPct, const QString &label=QString())
Report partial progress within stage.
Definition loadprogress.cpp:76
void finishAll()
Definition loadprogress.cpp:108
OpenStage
The stages of a single project open, in nominal order.
Definition loadprogress.h:62
@ CrsFinish
adoptOpenEngine CRS resolution + finishModelLoad
@ SoaCopy
SWMMModelLayer::buildFromEngine SoA pull.
@ Count_
sentinel — not a stage
@ MeshSceneA
rebuildSceneGeometryLight + LOD pyramid
@ MeshSceneB
finishSceneGeometryAsync (edges/grids/adjacency)
@ EngineParse
swmm_engine_open — the .inp parse itself
@ MeshParse
InpMeshReader::read.
@ GeomCache
buildGeometryCache (5 sub-stages)
@ Sidecar
.oswp sidecar apply
@ Results
sibling .out discovery + open
int unpackLoadProgressPct(int packed)
Definition loadprogress.h:101
OpenStage unpackLoadProgressStage(int packed)
Definition loadprogress.h:96
std::function< void(int localPct, const QString &stage)> LoadProgressFn
Progress sink handed to a worker-side producer.
Definition loadprogress.h:53
int packLoadProgress(OpenStage stage, int localPct)
Definition loadprogress.h:89
constexpr int kLoadProgressStride
Encode a (stage, localPct) pair into a single QPromise progress int.
Definition loadprogress.h:87
QVector< int > parent
union-find
Definition pslgminsize.cpp:176