Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
ITileAlgorithmRegistry.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 fuddlesworth
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#pragma once
5
6#include <phosphortiles_export.h>
7
10
11#include <QList>
12#include <QString>
13#include <QStringList>
14
15namespace PhosphorTiles {
16
17class TilingAlgorithm;
18
41{
42 Q_OBJECT
43public:
44 explicit ITileAlgorithmRegistry(QObject* parent = nullptr);
46
47 // ─── Enumeration / query ───────────────────────────────────────────────
48
51 virtual TilingAlgorithm* algorithm(const QString& id) const = 0;
52
54 virtual QStringList availableAlgorithms() const = 0;
55
58 virtual QList<TilingAlgorithm*> allAlgorithms() const = 0;
59
61 virtual bool hasAlgorithm(const QString& id) const = 0;
62
69 virtual TilingAlgorithm* defaultAlgorithm() const = 0;
70
78 virtual QString defaultAlgorithmId() const = 0;
79
80 // ─── Mutation ──────────────────────────────────────────────────────────
81
86 virtual void registerAlgorithm(const QString& id, TilingAlgorithm* algorithm) = 0;
87
90 virtual bool unregisterAlgorithm(const QString& id) = 0;
91
92 // ─── Preview params ────────────────────────────────────────────────────
93
98 virtual void setPreviewParams(const AlgorithmPreviewParams& params) = 0;
99
101 virtual const AlgorithmPreviewParams& previewParams() const noexcept = 0;
102
103Q_SIGNALS:
108 void algorithmRegistered(const QString& id);
109
114 void algorithmUnregistered(const QString& id, bool replacing);
115
120 void previewParamsChanged();
121};
122
123} // namespace PhosphorTiles
Abstract notifier surface for every registry that feeds an ILayoutSource.
Definition ILayoutSourceRegistry.h:37
Abstract contract for a tiling-algorithm registry.
Definition ITileAlgorithmRegistry.h:41
virtual TilingAlgorithm * algorithm(const QString &id) const =0
Resolve an algorithm by its stable id.
ITileAlgorithmRegistry(QObject *parent=nullptr)
virtual bool hasAlgorithm(const QString &id) const =0
Whether an algorithm is registered under id.
virtual TilingAlgorithm * defaultAlgorithm() const =0
Convenience: the registry's recommended default algorithm.
virtual QList< TilingAlgorithm * > allAlgorithms() const =0
Every registered algorithm pointer.
virtual void setPreviewParams(const AlgorithmPreviewParams &params)=0
Apply the user-configured tiling parameters.
virtual void registerAlgorithm(const QString &id, TilingAlgorithm *algorithm)=0
Register an algorithm under id.
virtual bool unregisterAlgorithm(const QString &id)=0
Unregister and delete the algorithm with id.
virtual QStringList availableAlgorithms() const =0
All registered algorithm ids, in registration order.
virtual const AlgorithmPreviewParams & previewParams() const noexcept=0
The currently-configured preview parameters.
virtual QString defaultAlgorithmId() const =0
Stable id of the registry's recommended default algorithm.
Abstract base class for tiling algorithms.
Definition TilingAlgorithm.h:56
Definition AutotileEngine.h:71
User-configured tiling parameters that affect algorithm preview generation.
Definition AlgorithmPreviewParams.h:20