Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
TileScriptMetadata.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>
8
9#include <QRect>
10#include <QString>
11#include <QStringList>
12#include <QVariant>
13#include <QVariantMap>
14#include <QVector>
15
16namespace PhosphorTiles {
17namespace ScriptedHelpers {
18
24{
25 QString name;
26 QString type;
27 QVariant defaultValue;
28 QString description;
29 qreal minValue = 0.0;
30 qreal maxValue = 1.0;
31 QStringList enumOptions;
32
34 QVariantMap toVariantMap() const
35 {
36 QVariantMap m;
37 m[QLatin1String("name")] = name;
38 m[QLatin1String("type")] = type;
39 m[QLatin1String("defaultValue")] = defaultValue;
40 m[QLatin1String("description")] = description;
41 if (type == QLatin1String("number")) {
42 m[QLatin1String("minValue")] = minValue;
43 m[QLatin1String("maxValue")] = maxValue;
44 } else if (type == QLatin1String("enum")) {
45 m[QLatin1String("enumOptions")] = QVariant(enumOptions);
46 }
47 return m;
48 }
49};
50
73
78PHOSPHORTILES_EXPORT QVector<QRect> clampZonesToArea(const QVector<QRect>& zones, const QRect& area,
79 const QString& scriptId);
80
81} // namespace ScriptedHelpers
82} // namespace PhosphorTiles
ZoneNumberDisplay
How zone numbers are displayed in algorithm previews.
Definition AlgorithmMetadata.h:19
@ RendererDecides
Empty on the wire — algorithm defers to renderer default.
PHOSPHORTILES_EXPORT QVector< QRect > clampZonesToArea(const QVector< QRect > &zones, const QRect &area, const QString &scriptId)
Clamp zones to the given area, using the full area as a fallback for zones that fall entirely outside...
Definition AutotileEngine.h:46
Definition of a custom algorithm parameter, declared by a script's metadata.customParams list.
Definition TileScriptMetadata.h:24
QString type
"number", "bool", or "enum"
Definition TileScriptMetadata.h:26
QString name
Parameter name (camelCase, used as key in ctx.custom)
Definition TileScriptMetadata.h:25
QVariantMap toVariantMap() const
Convert to QVariantMap for QML consumption.
Definition TileScriptMetadata.h:34
qreal maxValue
Maximum for number type.
Definition TileScriptMetadata.h:30
QStringList enumOptions
Valid options for enum type.
Definition TileScriptMetadata.h:31
qreal minValue
Minimum for number type.
Definition TileScriptMetadata.h:29
QString description
Human-readable description for settings UI.
Definition TileScriptMetadata.h:28
QVariant defaultValue
Default value.
Definition TileScriptMetadata.h:27
Parsed metadata from a scripted algorithm's metadata table.
Definition TileScriptMetadata.h:55
bool supportsSplitRatio
Definition TileScriptMetadata.h:64
int masterZoneIndex
Definition TileScriptMetadata.h:62
QString id
Optional algorithm id (else "script:filename")
Definition TileScriptMetadata.h:70
PhosphorLayout::ZoneNumberDisplay zoneNumberDisplay
Definition TileScriptMetadata.h:58
bool supportsMemory
Definition TileScriptMetadata.h:65
QVector< CustomParamDef > customParams
Definition TileScriptMetadata.h:71
bool producesOverlappingZones
Definition TileScriptMetadata.h:67
bool supportsMinSizes
Default true — most algorithms support min sizes.
Definition TileScriptMetadata.h:69
bool supportsMasterCount
Definition TileScriptMetadata.h:63
QString description
Definition TileScriptMetadata.h:57
qreal defaultSplitRatio
0.0 = unset, falls back to algorithm default
Definition TileScriptMetadata.h:59
QString name
Definition TileScriptMetadata.h:56
int minimumWindows
0 = unset
Definition TileScriptMetadata.h:61
int defaultMaxWindows
0 = unset
Definition TileScriptMetadata.h:60
bool supportsScriptState
Persists an opaque ctx.state bag across retiles (non-tree memory)
Definition TileScriptMetadata.h:66
bool centerLayout
Definition TileScriptMetadata.h:68