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
56 virtual QStringList availableAlgorithms() const = 0;
57
60 virtual QList<TilingAlgorithm*> allAlgorithms() const = 0;
61
63 virtual bool hasAlgorithm(const QString& id) const = 0;
64
71 virtual TilingAlgorithm* defaultAlgorithm() const = 0;
72
80 virtual QString defaultAlgorithmId() const = 0;
81
82 // ─── Mutation ──────────────────────────────────────────────────────────
83
88 virtual void registerAlgorithm(const QString& id, TilingAlgorithm* algorithm) = 0;
89
92 virtual bool unregisterAlgorithm(const QString& id) = 0;
93
94 // ─── Preview params ────────────────────────────────────────────────────
95
100 virtual void setPreviewParams(const AlgorithmPreviewParams& params) = 0;
101
103 virtual const AlgorithmPreviewParams& previewParams() const noexcept = 0;
104
105Q_SIGNALS:
110 void algorithmRegistered(const QString& id);
111
116 void algorithmUnregistered(const QString& id, bool replacing);
117
122 void previewParamsChanged();
123};
124
125} // 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.
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:51
Definition AutotileEngine.h:46
User-configured tiling parameters that affect algorithm preview generation.
Definition AlgorithmPreviewParams.h:20