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
landuseregistry.h
Go to the documentation of this file.
1
11#ifndef OPENSWMMVIS_LANDUSE_LANDUSEREGISTRY_H
12#define OPENSWMMVIS_LANDUSE_LANDUSEREGISTRY_H
13
15
16#include <QHash>
17#include <QObject>
18#include <QString>
19#include <QVector>
20
21namespace openswmmvis::landuse {
22
23class LandUseRegistry : public QObject
24{
25 Q_OBJECT
26
27public:
28 explicit LandUseRegistry(QObject *parent = nullptr);
29 ~LandUseRegistry() override;
30
31 QVector<LandUseProvider *> providers() const { return m_providers; }
32 int providerCount() const noexcept { return m_providers.size(); }
33
34 LandUseProvider *findByName(const QString &name) const;
35 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
36
37 LandUseProvider *create(const QString &name);
39 bool rename(LandUseProvider *p, const QString &newName);
40
45 QString impactSummary(LandUseProvider *p) const;
46
48 int saveToEngine(void *engineHandle);
49 int saveToEngine();
50
51 void *engineHandle() const noexcept { return m_engineHandle; }
52
53signals:
57 const QString &prevName, const QString &newName);
59
60private:
61 void wireProviderSignals_(LandUseProvider *p);
62
63 QVector<LandUseProvider *> m_providers;
64 QHash<QString, LandUseProvider *> m_byLowerName;
65 void *m_engineHandle = nullptr;
66};
67
68} // namespace openswmmvis::landuse
69
70#endif // OPENSWMMVIS_LANDUSE_LANDUSEREGISTRY_H
Definition landuseprovider.h:23
Definition landuseregistry.h:24
void * engineHandle() const noexcept
Definition landuseregistry.h:51
LandUseProvider * findByName(const QString &name) const
Definition landuseregistry.cpp:22
int providerCount() const noexcept
Definition landuseregistry.h:32
LandUseProvider * create(const QString &name)
Definition landuseregistry.cpp:40
void providerParamsChanged(openswmmvis::landuse::LandUseProvider *provider)
void providerRenamed(openswmmvis::landuse::LandUseProvider *provider, const QString &prevName, const QString &newName)
QString impactSummary(LandUseProvider *p) const
Definition landuseregistry.cpp:51
bool rename(LandUseProvider *p, const QString &newName)
Definition landuseregistry.cpp:102
bool hasName(const QString &name) const
Definition landuseregistry.h:35
void providerAdded(openswmmvis::landuse::LandUseProvider *provider)
QVector< LandUseProvider * > providers() const
Definition landuseregistry.h:31
int saveToEngine()
Definition landuseregistry.cpp:154
int loadFromEngine(void *engineHandle)
Definition landuseregistry.cpp:125
void remove(LandUseProvider *p)
Definition landuseregistry.cpp:82
void providerAboutToBeRemoved(openswmmvis::landuse::LandUseProvider *provider)
MVC model for a single SWMM land use ([LANDUSES]).
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition landuseprovider.h:20
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474