Abstract notifier surface for every registry that feeds an ILayoutSource.
More...
#include <phosphor-layout-api/include/PhosphorLayoutApi/ILayoutSourceRegistry.h>
Signals | |
| void | contentsChanged () |
| Emitted when the set of layouts this registry produces changes in any way that invalidates cached previews — entries added, removed, renamed, or re-parameterised. | |
Public Member Functions | |
| ILayoutSourceRegistry (QObject *parent=nullptr) | |
| ~ILayoutSourceRegistry () override | |
Abstract notifier surface for every registry that feeds an ILayoutSource.
A provider library (phosphor-zones, phosphor-tiles, future phosphor-scrolling, …) has some concrete registry class that owns its in-memory catalogue of layouts and mutates it over time. That registry inherits ILayoutSourceRegistry so the matching ILayoutSource can self-wire a single contentsChanged signal in its constructor, without every consumer having to know which provider-specific signal to bridge.
Providers with finer-grained signals of their own (e.g. AlgorithmRegistry's algorithmRegistered / algorithmUnregistered / previewParamsChanged) keep them alongside this interface and internally forward each one into contentsChanged — callers that only care about "something changed" listen on the unified signal; callers that need discrimination stay on the provider-specific ones.
Intentionally QObject-derived. The corresponding zones interface (PhosphorZones::IZoneLayoutRegistry) inherits this type to pick up the signal, and concrete registries inherit through it rather than through QObject directly so there is still exactly one QObject base along every inheritance path.
|
explicit |
|
override |
|
signal |
Emitted when the set of layouts this registry produces changes in any way that invalidates cached previews — entries added, removed, renamed, or re-parameterised.
Corresponds 1:1 with ILayoutSource::contentsChanged on the source side; concrete ILayoutSource implementations are expected to bridge the two directly in their constructor.