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
ilayerstylesubject.h
Go to the documentation of this file.
1
22#ifndef OPENSWMMVIS_UI_DIALOGS_ILAYERSTYLESUBJECT_H
23#define OPENSWMMVIS_UI_DIALOGS_ILAYERSTYLESUBJECT_H
24
25#include <QJsonObject>
26#include <QObject>
27#include <QString>
28
29namespace openswmmvis::ui {
30
39{
40public:
41 virtual ~ILayerStyleSubject() = default;
42
44 [[nodiscard]] virtual QString title() const = 0;
45
48 [[nodiscard]] virtual QString section() const { return {}; }
49
51 [[nodiscard]] virtual QObject *propertyObject() const = 0;
52
56 [[nodiscard]] virtual QString routingId() const { return {}; }
57
62 [[nodiscard]] virtual QJsonObject snapshot() const;
63
65 virtual void restore(const QJsonObject &snapshot);
66};
67
71{
72public:
74 QObject *propertyObject,
75 QString routingId = {},
76 QString section = {})
77 : m_title(std::move(title))
78 , m_section(std::move(section))
79 , m_routingId(std::move(routingId))
80 , m_propertyObject(propertyObject)
81 {}
82
83 [[nodiscard]] QString title() const override { return m_title; }
84 [[nodiscard]] QString section() const override { return m_section; }
85 [[nodiscard]] QString routingId() const override { return m_routingId; }
86 [[nodiscard]] QObject *propertyObject() const override { return m_propertyObject; }
87
88private:
89 QString m_title;
90 QString m_section;
91 QString m_routingId;
92 QObject *m_propertyObject = nullptr;
93};
94
95} // namespace openswmmvis::ui
96
97#endif // OPENSWMMVIS_UI_DIALOGS_ILAYERSTYLESUBJECT_H
One styleable thing the dialog can edit.
Definition ilayerstylesubject.h:39
virtual QObject * propertyObject() const =0
virtual void restore(const QJsonObject &snapshot)
Definition ilayerstylesubject.cpp:106
virtual QJsonObject snapshot() const
Definition ilayerstylesubject.cpp:83
virtual QString section() const
Definition ilayerstylesubject.h:48
virtual QString routingId() const
Definition ilayerstylesubject.h:56
virtual QString title() const =0
Definition ilayerstylesubject.h:71
QString routingId() const override
Definition ilayerstylesubject.h:85
QString section() const override
Definition ilayerstylesubject.h:84
QObject * propertyObject() const override
Definition ilayerstylesubject.h:86
QString title() const override
Definition ilayerstylesubject.h:83
LayerStyleSubject(QString title, QObject *propertyObject, QString routingId={}, QString section={})
Definition ilayerstylesubject.h:73
Definition openswmmvislayer.h:43