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
rulevalidator.h
Go to the documentation of this file.
1
17#ifndef OPENSWMMVIS_CONTROLS_RULEVALIDATOR_H
18#define OPENSWMMVIS_CONTROLS_RULEVALIDATOR_H
19
21
22#include <QObject>
23#include <QPointer>
24#include <QString>
25#include <QTimer>
26
27class SWMMModelLayer;
28
29namespace openswmmvis::controls {
30
31class RuleValidator : public QObject
32{
33 Q_OBJECT
34
35public:
41
45 explicit RuleValidator(SWMMModelLayer *layer, QObject *parent = nullptr);
46 ~RuleValidator() override;
47
50 Result validate(const QString &text) const;
51
56 void validateDebounced(ControlRuleProvider *provider, const QString &text);
57
58 int debounceMs() const noexcept { return m_debounceMs; }
59 void setDebounceMs(int ms) noexcept { m_debounceMs = ms; }
60
61private:
62 Result validateImpl_(const QString &text) const;
63
64 QPointer<SWMMModelLayer> m_layer;
65 QPointer<ControlRuleProvider> m_pendingProvider;
66 QString m_pendingText;
67 QTimer *m_debounceTimer = nullptr;
68 int m_debounceMs = 250;
69};
70
71} // namespace openswmmvis::controls
72
73#endif // OPENSWMMVIS_CONTROLS_RULEVALIDATOR_H
Renders the SWMM network elements (nodes, links, subcatchments, rain gages) for one OpenSWMMEngine mo...
Definition swmmmodellayer.h:133
Definition controlruleprovider.h:45
Definition rulevalidator.h:32
Result validate(const QString &text) const
Synchronous validation. Returns immediately. Used by tests and the list-model's initial population pa...
Definition rulevalidator.cpp:33
void validateDebounced(ControlRuleProvider *provider, const QString &text)
Debounced validation. Schedules a validate call after debounceMs() of edit quiescence,...
Definition rulevalidator.cpp:74
void setDebounceMs(int ms) noexcept
Definition rulevalidator.h:59
int debounceMs() const noexcept
Definition rulevalidator.h:58
Slice BR Phase 6.8.1 — MVC model for a single SWMM control rule.
Definition controlruleprovider.h:34
ValidationState
Validator verdict for a rule body. Default Pending until the validator (Phase 6.8....
Definition controlruleprovider.h:38
@ Pending
Not yet validated (or sandbox engine missing).
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
QString text
Definition queryparser.cpp:35
int errorLine
1-based; -1 when unavailable.
Definition rulevalidator.h:39
QString message
Empty when Valid.
Definition rulevalidator.h:38
ValidationState state
Definition rulevalidator.h:37