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
controlruleprovider.h File Reference

Slice BR Phase 6.8.1 — MVC model for a single SWMM control rule. More...

#include <QObject>
#include <QString>
Include dependency graph for controlruleprovider.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openswmmvis::controls::ControlRuleProvider
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::controls
 

Enumerations

enum class  openswmmvis::controls::ValidationState {
  openswmmvis::controls::Pending = 0 ,
  openswmmvis::controls::Valid = 1 ,
  openswmmvis::controls::Invalid = 2
}
 Validator verdict for a rule body. Default Pending until the validator (Phase 6.8.2) has been wired. More...
 

Detailed Description

Slice BR Phase 6.8.1 — MVC model for a single SWMM control rule.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

One ControlRuleProvider per [CONTROLS] RULE block in the project. Owned by a project-scoped ControlRuleRegistry. Acts as the single source of truth for that rule: the editor dialog's list-pane row, the code-editor body, the validator badge, the Object Browser leaf, and the SWMMControlRulePropertyAdapter property panel all subscribe to the provider's Qt signals (per [[feedback_mvc_synchronized_uis]]).

Storage. The provider carries the rule's name (parsed from the RULE <name> header, mirroring swmm_control_get_id), the full rule body text including that header, and a cached ValidationState (Pending / Valid / Invalid). All mutations route through ControlRuleRegistry (so the registry's name index stays coherent) and ultimately through SWMMModelLayer::applyControlRule* (so the engine round-trips and controlRulesChanged(name) fires).

This file ships in Slice BR Phase 6.8.1 (MVC backbone). The code-editor dialog, syntax highlighter, completer, and validator land in Phase 6.8.2 — until then m_validation stays Pending and the list-view icon defaults to the pending sentinel.