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
lidcontrolregistry.h
Go to the documentation of this file.
1
13#ifndef OPENSWMMVIS_LID_LIDCONTROLREGISTRY_H
14#define OPENSWMMVIS_LID_LIDCONTROLREGISTRY_H
15
17
18#include <QHash>
19#include <QObject>
20#include <QString>
21#include <QVector>
22
23namespace openswmmvis::lid {
24
25class LidControlRegistry : public QObject
26{
27 Q_OBJECT
28
29public:
30 explicit LidControlRegistry(QObject *parent = nullptr);
32
33 QVector<LidControlProvider *> providers() const { return m_providers; }
34 int providerCount() const noexcept { return m_providers.size(); }
35
36 LidControlProvider *findByName(const QString &name) const;
37 bool hasName(const QString &name) const { return findByName(name) != nullptr; }
38
39 LidControlProvider *create(const QString &name);
41 bool rename(LidControlProvider *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_(LidControlProvider *p);
58
59 QVector<LidControlProvider *> m_providers;
60 QHash<QString, LidControlProvider *> m_byLowerName;
61 void *m_engineHandle = nullptr;
62};
63
64} // namespace openswmmvis::lid
65
66#endif // OPENSWMMVIS_LID_LIDCONTROLREGISTRY_H
Definition lidcontrolprovider.h:26
Definition lidcontrolregistry.h:26
void providerAboutToBeRemoved(openswmmvis::lid::LidControlProvider *provider)
int loadFromEngine(void *engineHandle)
Definition lidcontrolregistry.cpp:82
void providerParamsChanged(openswmmvis::lid::LidControlProvider *provider)
int saveToEngine()
Definition lidcontrolregistry.cpp:104
int providerCount() const noexcept
Definition lidcontrolregistry.h:34
QVector< LidControlProvider * > providers() const
Definition lidcontrolregistry.h:33
LidControlProvider * findByName(const QString &name) const
Definition lidcontrolregistry.cpp:21
void * engineHandle() const noexcept
Definition lidcontrolregistry.h:47
void remove(LidControlProvider *p)
Definition lidcontrolregistry.cpp:50
LidControlProvider * create(const QString &name)
Definition lidcontrolregistry.cpp:39
bool rename(LidControlProvider *p, const QString &newName)
Definition lidcontrolregistry.cpp:59
void providerAdded(openswmmvis::lid::LidControlProvider *provider)
void providerRenamed(openswmmvis::lid::LidControlProvider *provider, const QString &prevName, const QString &newName)
bool hasName(const QString &name) const
Definition lidcontrolregistry.h:37
MVC model for a single SWMM LID control ([LID_CONTROLS]).
ArrowPlacement p
Definition linesymbollayer.cpp:27
Definition lidcontrolprovider.h:23
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString name
Definition sectionmodelbuilders.cpp:474