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

Go to the source code of this file.

Classes

struct  openswmmvis::project::examples::ExampleInfo
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::project
 
namespace  openswmmvis::project::examples
 

Functions

QString openswmmvis::project::examples::seedMarkerFileName ()
 
QString openswmmvis::project::examples::installExamplesDir ()
 
QString openswmmvis::project::examples::appDataExamplesDir ()
 
bool openswmmvis::project::examples::copyDirectoryRecursively (const QString &srcDir, const QString &dstDir, QString *err=nullptr)
 Recursively copies srcDir into dstDir (created if missing).
 
bool openswmmvis::project::examples::syncFromInstall (const QString &srcDir, const QString &dstDir, const QString &version, QString *err=nullptr)
 Syncs the install payload into the per-user dir.
 
QString openswmmvis::project::examples::preferredExamplesDir (const QString &version)
 Seeds and returns the directory the Welcome panel should scan.
 
QVector< ExampleInfoopenswmmvis::project::examples::discoverExamples (const QString &dir)
 Enumerates examples in dir.
 

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

Bundled-example seeding and discovery for the Welcome screen.

The read-only install payload (macOS <bundle>/Resources/examples, Linux/Windows <prefix>/share/openswmmgui/examples) is synced incrementally into the per-user data dir (QStandardPaths::AppLocalDataLocation + "/examples") at every startup, and the Welcome panel lists whatever directory the seeder hands back. Opening an example ALWAYS copies it to a user-chosen folder first — the baseline (both install payload and appdata mirror) is never opened in place, so simulation results can never pollute it.

Widget-free (Qt Core only) so everything here is unit-testable headless.