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
streetregistry.h
Go to the documentation of this file.
1
12#ifndef OPENSWMMVIS_STREET_STREETREGISTRY_H
13#define OPENSWMMVIS_STREET_STREETREGISTRY_H
14
16
17#include <QHash>
18#include <QObject>
19#include <QString>
20#include <QVector>
21
22namespace openswmmvis::street {
23
24class StreetRegistry : public QObject
25{
26 Q_OBJECT
27
28public:
29 explicit StreetRegistry(QObject *parent = nullptr);
30 ~StreetRegistry() override;
31
32 QVector<StreetProvider *> providers() const { return m_providers; }
33 int providerCount() const noexcept { return m_providers.size(); }
34
35 StreetProvider *findByName(const QString &name) const;
36 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
37
40 StreetProvider *create(const QString &name);
41
42 void remove(StreetProvider *p);
43 bool rename(StreetProvider *p, const QString &newName);
44
49
52 int saveToEngine(void *engineHandle);
53
56 int saveToEngine();
57
58 void *engineHandle() const noexcept { return m_engineHandle; }
59
60signals:
64 const QString &prevName, const QString &newName);
66
67private:
68 void wireProviderSignals_(StreetProvider *p);
69
70 QVector<StreetProvider *> m_providers;
71 QHash<QString, StreetProvider *> m_byLowerName;
72 void *m_engineHandle = nullptr;
73};
74
75} // namespace openswmmvis::street
76
77#endif // OPENSWMMVIS_STREET_STREETREGISTRY_H
Definition streetprovider.h:30
Definition streetregistry.h:25
bool rename(StreetProvider *p, const QString &newName)
Definition streetregistry.cpp:59
StreetProvider * findByName(const QString &name) const
Definition streetregistry.cpp:21
void remove(StreetProvider *p)
Definition streetregistry.cpp:50
void providerAdded(openswmmvis::street::StreetProvider *provider)
bool hasName(const QString &name) const
Definition streetregistry.h:36
void providerParamsChanged(openswmmvis::street::StreetProvider *provider)
void * engineHandle() const noexcept
Definition streetregistry.h:58
QVector< StreetProvider * > providers() const
Definition streetregistry.h:32
int providerCount() const noexcept
Definition streetregistry.h:33
StreetProvider * create(const QString &name)
Create + own a new provider with the given name. Returns the new provider, or nullptr if the name col...
Definition streetregistry.cpp:39
int saveToEngine()
Flush against the engine handle cached by the most recent load / save. No-op if neither has been call...
Definition streetregistry.cpp:124
int loadFromEngine(void *engineHandle)
Populate from a live SWMM engine handle. Caches engineHandle so the no-arg saveToEngine() overload ca...
Definition streetregistry.cpp:82
void providerAboutToBeRemoved(openswmmvis::street::StreetProvider *provider)
void providerRenamed(openswmmvis::street::StreetProvider *provider, const QString &prevName, const QString &newName)
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition streetprovider.h:27
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474
MVC model for a single SWMM street cross-section ([STREETS]).