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
snowpackregistry.h
Go to the documentation of this file.
1
13#ifndef OPENSWMMVIS_SNOWPACK_SNOWPACKREGISTRY_H
14#define OPENSWMMVIS_SNOWPACK_SNOWPACKREGISTRY_H
15
17
18#include <QHash>
19#include <QObject>
20#include <QString>
21#include <QVector>
22
23namespace openswmmvis::snowpack {
24
25class SnowpackRegistry : public QObject
26{
27 Q_OBJECT
28
29public:
30 explicit SnowpackRegistry(QObject *parent = nullptr);
32
33 QVector<SnowpackProvider *> providers() const { return m_providers; }
34 int providerCount() const noexcept { return m_providers.size(); }
35
36 SnowpackProvider *findByName(const QString &name) const;
37 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
38
39 SnowpackProvider *create(const QString &name);
41 bool rename(SnowpackProvider *p, const QString &newName);
42
44 int saveToEngine(void *engineHandle);
45 int saveToEngine();
46
47 void *engineHandle() const noexcept { return m_engineHandle; }
48
49signals:
53 const QString &prevName, const QString &newName);
55
56private:
57 void wireProviderSignals_(SnowpackProvider *p);
58
59 QVector<SnowpackProvider *> m_providers;
60 QHash<QString, SnowpackProvider *> m_byLowerName;
61 void *m_engineHandle = nullptr;
62};
63
64} // namespace openswmmvis::snowpack
65
66#endif // OPENSWMMVIS_SNOWPACK_SNOWPACKREGISTRY_H
Definition snowpackprovider.h:25
Definition snowpackregistry.h:26
bool hasName(const QString &name) const
Definition snowpackregistry.h:37
int loadFromEngine(void *engineHandle)
Definition snowpackregistry.cpp:92
int saveToEngine()
Definition snowpackregistry.cpp:138
QVector< SnowpackProvider * > providers() const
Definition snowpackregistry.h:33
void * engineHandle() const noexcept
Definition snowpackregistry.h:47
SnowpackProvider * create(const QString &name)
Definition snowpackregistry.cpp:50
SnowpackProvider * findByName(const QString &name) const
Definition snowpackregistry.cpp:32
void providerAdded(openswmmvis::snowpack::SnowpackProvider *provider)
void remove(SnowpackProvider *p)
Definition snowpackregistry.cpp:61
void providerRenamed(openswmmvis::snowpack::SnowpackProvider *provider, const QString &prevName, const QString &newName)
bool rename(SnowpackProvider *p, const QString &newName)
Definition snowpackregistry.cpp:70
int providerCount() const noexcept
Definition snowpackregistry.h:34
void providerAboutToBeRemoved(openswmmvis::snowpack::SnowpackProvider *provider)
void providerParamsChanged(openswmmvis::snowpack::SnowpackProvider *provider)
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition snowpackprovider.h:22
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474
MVC model for a single SWMM snow pack ([SNOWPACKS]).