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

Renderer-class panel interface + factory registry. More...

#include "layers/swmm_category.h"
#include "render/iattributeprovider.h"
#include "render/sublayers/feature/featuresublayer.h"
#include <QString>
#include <QVector>
#include <QWidget>
#include <functional>
#include <memory>
#include <optional>
#include <vector>
Include dependency graph for irendererpanel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::ui::RendererPanelContext
 Context passed to renderer-panel factories at construction time. More...
 
class  openswmmvis::ui::IRendererPanel
 
class  openswmmvis::ui::RendererPanelRegistry
 
struct  openswmmvis::ui::RendererPanelRegistry::Entry
 
class  openswmmvis::ui::RendererPanelRegistrar
 

Namespaces

namespace  OpenSWMM
 
namespace  OpenSWMM::Render
 
namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Macros

#define REGISTER_RENDERER_PANEL(ID_STRING, DISPLAY_STRING, FACTORY)
 
#define REGISTER_RENDERER_PANEL_GATED(ID_STRING, DISPLAY_STRING, FACTORY, APPLICABLE, REASON_STRING)
 

Detailed Description

Renderer-class panel interface + factory registry.

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
    Slice X.2.  Mirrors Qt's IStyleEditorWidget seam but at the
    renderer-class layer.  The Symbology tab's top dropdown lists
    all available renderer classes (Single / Graduated / Categorized
    / Rule-based + any future plugins).  Switching the dropdown
    mounts a registered panel matching the picked class.

    Each renderer panel:
      - reads the current per-kind renderer from its host layer,
      - writes through to setKindRenderer / setRenderer on each edit,
      - listens for the layer's repaintRequested / rendererChanged
        signals to refresh on external mutations.

    Plugins register a factory via REGISTER_RENDERER_PANEL.  The
    dropdown picks up the new class automatically — no edits to the
    dialog code.

Macro Definition Documentation

◆ REGISTER_RENDERER_PANEL

#define REGISTER_RENDERER_PANEL (   ID_STRING,
  DISPLAY_STRING,
  FACTORY 
)
Value:
static const openswmmvis::ui::RendererPanelRegistrar \
s_register_renderer_##__LINE__( \
QStringLiteral(ID_STRING), QStringLiteral(DISPLAY_STRING), FACTORY);

◆ REGISTER_RENDERER_PANEL_GATED

#define REGISTER_RENDERER_PANEL_GATED (   ID_STRING,
  DISPLAY_STRING,
  FACTORY,
  APPLICABLE,
  REASON_STRING 
)
Value:
static const openswmmvis::ui::RendererPanelRegistrar \
s_register_renderer_##__LINE__( \
QStringLiteral(ID_STRING), QStringLiteral(DISPLAY_STRING), FACTORY, \
APPLICABLE, QStringLiteral(REASON_STRING));

Gap A4.2 — registration with a declarative applicability predicate + tooltip reason for the greyed-out dropdown row.