6#include <phosphortileengine_export.h>
174 m_contextGapProvider = std::move(provider);
208 std::optional<QVariant> perScreenOverride(
const QString& screenId,
const QString& key)
const;
214 void wipeStateBagsOnEffectiveAlgorithmChange(
const QString& screenId,
const QString& oldEffectiveId,
215 const QString& newEffectiveId);
222 bool screenFollowsGlobalAlgorithm(
const QString& screenId,
const QString& previousGlobalId)
const;
228 static QString algorithmIdFromMap(
const QVariantMap& map,
const QString& fallback);
233 QString rememberedAlgorithmId(
const QString& screenId,
const QVariantMap& previousOverrides)
const;
240 QVariantMap contextGapMap(
const QString& screenId)
const;
244 static std::optional<int> contextGapFromMap(
const QVariantMap& ctx, QLatin1String key);
249 int innerGapFromMap(
const QString& screenId,
const QVariantMap& ctx)
const;
255 std::optional<::PhosphorLayout::EdgeGaps> contextOuterGapsFromMap(
const QVariantMap& ctx)
const;
261 int outerGapBase(
const QString& screenId,
const QVariantMap& ctx)
const;
264 QHash<QString, QVariantMap> m_perScreenOverrides;
270 QHash<QString, QString> m_rememberedAlgorithmId;
Algorithm-layer constants for the autotile/tile primitives.
Core engine for automatic window tiling.
Definition AutotileEngine.h:78
Resolves per-screen configuration overrides for autotiling.
Definition PerScreenConfigResolver.h:41
bool effectiveRespectMinimumSize(const QString &screenId) const
PerScreenConfigResolver(AutotileEngine *engine)
void removeOverridesForScreen(const QString &screenId)
Drop a screen's in-memory overrides while REMEMBERING the algorithm they resolved to (autotile toggle...
void forgetScreen(const QString &screenId)
Drop a screen's overrides AND the remembered algorithm, for an id that will never be reused (an orpha...
int effectiveMaxWindows(const QString &screenId) const
void clearPerScreenConfig(const QString &screenId)
Clear per-screen configuration overrides.
PhosphorTiles::AutotileInsertPosition effectiveInsertPosition(const QString &screenId) const
::PhosphorLayout::EdgeGaps effectiveOuterGaps(const QString &screenId) const
void applyPerScreenConfig(const QString &screenId, const QVariantMap &overrides)
Apply per-screen configuration overrides.
PhosphorTiles::AutotileOverflowBehavior effectiveOverflowBehavior(const QString &screenId) const
void forgetRememberedAlgorithmsForUnknownScreens()
Drop remembered algorithms for screens that are no longer connected.
QString effectiveAlgorithmId(const QString &screenId) const
EffectiveGaps effectiveGaps(const QString &screenId) const
Both gap keys from ONE context resolve.
PhosphorTiles::TilingAlgorithm * effectiveAlgorithm(const QString &screenId) const
bool effectiveSmartGaps(const QString &screenId) const
std::function< QVariantMap(const QString &screenId)> ContextGapProvider
Inject a per-context (window-rule) gap-override provider.
Definition PerScreenConfigResolver.h:171
void setContextGapProvider(ContextGapProvider provider)
Definition PerScreenConfigResolver.h:172
QVariantMap effectiveCustomParamsOverride(const QString &screenId) const
The per-screen custom-parameter override map (a SetAlgorithmParam rule the daemon injected),...
QVariantMap perScreenOverrides(const QString &screenId) const
Get currently applied per-screen overrides for comparison.
qreal effectiveSplitRatioStep(const QString &screenId) const
void updatePerScreenOverride(const QString &screenId, const QString &key, const QVariant &value)
Update a single per-screen override value in-place.
bool hasPerScreenOverride(const QString &screenId, const QString &key) const
Check if a screen has a per-screen override for a specific key.
int effectiveInnerGap(const QString &screenId) const
void applyGlobalAlgorithmChange(const QString &previousGlobalId, const QString &newGlobalId)
Apply a GLOBAL algorithm switch to every screen that follows it.
void removeOverridesMatching(const std::function< bool(const QString &)> &pred)
forgetScreen for every stored id matching pred — the whole-OUTPUT reap.
Abstract base class for tiling algorithms.
Definition TilingAlgorithm.h:54
Definition PerScreenKeys.h:9
Definition AutotileConfig.h:13
Definition AutotileEngine.h:59
AutotileInsertPosition
Definition AutotileConstants.h:191
AutotileOverflowBehavior
Definition AutotileConstants.h:186
Per-side edge gap values (resolved, non-negative pixel values)
Definition EdgeGaps.h:27
Definition PerScreenConfigResolver.h:184
::PhosphorLayout::EdgeGaps outer
Definition PerScreenConfigResolver.h:186