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
IPropertyEditor Class Referenceabstract

Abstract interface every concrete editor implements. More...

#include <ipropertyeditor.h>

Collaboration diagram for IPropertyEditor:

Public Member Functions

virtual ~IPropertyEditor ()=default
 
virtual QString objectKind () const =0
 Stable identifier for the object kind this editor handles.
 
virtual QWidget * editorForObject (const SWMMObjectRef &ref)=0
 Build (or reuse) the editor's QWidget bound to ref.
 
virtual void apply (const SWMMObjectRef &ref)=0
 Push the editor's current values back through the engine setters for ref. Called when the user clicks Apply / OK in a modal editor, or on focus-loss for inline editors.
 

Detailed Description

Abstract interface every concrete editor implements.

Editors are not QObjects directly so concrete subclasses can choose their own parent / lifetime model. The returned QWidget* from editorForObject is owned by the caller (typically PropertiesPanel), which reparents it into the right-side dock.

Constructor & Destructor Documentation

◆ ~IPropertyEditor()

virtual IPropertyEditor::~IPropertyEditor ( )
virtualdefault

Member Function Documentation

◆ apply()

virtual void IPropertyEditor::apply ( const SWMMObjectRef ref)
pure virtual

Push the editor's current values back through the engine setters for ref. Called when the user clicks Apply / OK in a modal editor, or on focus-loss for inline editors.

Implementations are responsible for engine-state guards (BUILDING / OPENED checks) — the registry imposes no policy.

◆ editorForObject()

virtual QWidget * IPropertyEditor::editorForObject ( const SWMMObjectRef ref)
pure virtual

Build (or reuse) the editor's QWidget bound to ref.

Returning nullptr means "this editor can't handle that ref" — the registry will fall back to the next match or to the legacy property-tree path. Implementations may cache the widget across calls when the ref's name is unchanged; PropertiesPanel does not assume widget identity.

◆ objectKind()

virtual QString IPropertyEditor::objectKind ( ) const
pure virtual

Stable identifier for the object kind this editor handles.

Lowercase, no spaces, matches the BM.0 data-objects table or the legacy SWMM-GUI form unit name (e.g. "junction", "outfall", "storage", "divider", "conduit", "pump", "orifice", "weir", "outlet", "subcatchment", "raingage", "curve", "timeseries", "pattern", "lid_control", "pollutant", "landuse", "aquifer", "snowpack", "control_rule", "transect", "hydrograph", "street", "inlet", "inlet_usage").

Used as the registry key — must remain stable across releases.


The documentation for this class was generated from the following file: