24#include <phosphorzones_export.h>
41class ScrollingTemplateStore;
58 Q_PROPERTY(
Layout* activeLayout READ activeLayout NOTIFY activeLayoutChanged)
67 virtual QVector<Layout*>
layouts()
const = 0;
119 const QString& activity = QString())
const = 0;
131 const QString& activity = QString())
const = 0;
149 const QString& activity)
const
152 Q_UNUSED(virtualDesktop)
173 const ScrollingTemplate templ = scrollingTemplateForContext(screenId, virtualDesktop, activity);
175 return templ.
id.toString();
182 if (scrollingTemplateExplicitlyNone(screenId, virtualDesktop, activity)) {
205 return currentVirtualDesktop();
216 Q_UNUSED(algorithmId)
227 const QString& activity = QString())
const
230 Q_UNUSED(virtualDesktop)
254 const QString& mode = QString())
const
257 Q_UNUSED(virtualDesktop);
275 Q_UNUSED(virtualDesktop);
289 const QString& activity)
const
292 Q_UNUSED(virtualDesktop);
305 const QString& activity)
const
308 Q_UNUSED(virtualDesktop);
322 const QString& activity)
const
325 Q_UNUSED(virtualDesktop);
351 const QString& activity)
const
354 Q_UNUSED(virtualDesktop)
Abstract notifier surface for every registry that feeds an ILayoutSource.
Definition ILayoutSourceRegistry.h:37
Enumeration + mutation surface for the in-memory zone-layout catalog.
Definition IZoneLayoutRegistry.h:51
virtual Layout * layout(int index) const =0
virtual Layout * layoutById(const QUuid &id) const =0
Resolve a layout by its stable UUID.
void layoutRemoved(Layout *layout)
virtual Layout * layoutForScreen(const QString &screenId, int virtualDesktop=0, const QString &activity=QString()) const =0
Cascade-resolve the manual layout for screenId.
virtual QString assignmentIdForScreen(const QString &screenId, int virtualDesktop=0, const QString &activity=QString()) const =0
Raw assignment id (manual-layout UUID, "autotile:<algorithmId>", or the bare "scrolling:" sentinel) f...
virtual bool isContextActiveLayoutSuppressed(const QString &screenId, int virtualDesktop, const QString &activity) const
True iff the (screenId, virtualDesktop, activity) context has no active layout specifically because t...
Definition IZoneLayoutRegistry.h:304
virtual int currentVirtualDesktopForScreen(const QString &screenId) const
This screen's current virtual desktop (Plasma 6.7 per-output virtual desktops, #648).
Definition IZoneLayoutRegistry.h:202
void layoutAdded(Layout *layout)
virtual bool removeLayout(Layout *layout)=0
virtual std::optional< bool > resolveContextDragSelectorEnabled(const QString &screenId, int virtualDesktop, const QString &activity) const
Resolve a per-context override of the drag selector popup — the edge-triggered zone / strip picker of...
Definition IZoneLayoutRegistry.h:288
virtual Layout * activeLayout() const =0
virtual bool removeLayoutById(const QUuid &id)=0
virtual QVector< Layout * > layouts() const =0
Enumerate every known layout.
IZoneLayoutRegistry(QObject *parent=nullptr)
virtual bool resolveContextLocked(const QString &screenId, int virtualDesktop, const QString &activity) const
Resolve whether rules lock the active layout for the (screenId, virtualDesktop, activity) context — t...
Definition IZoneLayoutRegistry.h:272
virtual Layout * layoutByName(const QString &name) const =0
virtual Layout * defaultLayout() const =0
Effective global default layout (snap-only fallback).
virtual QString currentActivity() const =0
virtual void addLayout(Layout *layout)=0
virtual void setActiveLayoutById(const QUuid &id)=0
void activeLayoutChanged(Layout *layout)
virtual ScrollingTemplate scrollingTemplateForContext(const QString &screenId, int virtualDesktop, const QString &activity) const
The resolved scrolling TEMPLATE for a context (the native ScrollingTemplate whose vocabularies and bl...
Definition IZoneLayoutRegistry.h:148
~IZoneLayoutRegistry() override
QString scrollingDisplayIdForContext(const QString &screenId, int virtualDesktop, const QString &activity) const
The id the layout PICKER highlights for a scrolling context: the resolved template's bare UUID,...
Definition IZoneLayoutRegistry.h:171
virtual void setActiveLayout(Layout *layout)=0
virtual ScrollingTemplateStore * scrollingTemplateStore() const
The native scrolling-template store wired into this registry, or null when none is (lightweight stubs...
Definition IZoneLayoutRegistry.h:137
void layoutAssigned(const QString &screenId, int virtualDesktop, Layout *layout)
virtual Layout * resolveLayoutForScreen(const QString &screenId) const =0
Convenience: resolve a layout using the registry's current (desktop, activity) context.
virtual bool scrollingTemplateExplicitlyNone(const QString &screenId, int virtualDesktop, const QString &activity) const
Whether the context opted out of templates EXPLICITLY, as opposed to merely naming none (an unset slo...
Definition IZoneLayoutRegistry.h:350
virtual ContextOverlayOverride resolveContextOverlay(const QString &screenId, int virtualDesktop, const QString &activity) const
Resolve the per-context overlay-property override for the (screenId, virtualDesktop,...
Definition IZoneLayoutRegistry.h:321
virtual ContextGapOverride resolveContextGaps(const QString &screenId, int virtualDesktop, const QString &activity, const QString &mode=QString()) const
Resolve the per-context gap override (zone padding + outer gaps) that rules pin for the (screenId,...
Definition IZoneLayoutRegistry.h:253
virtual int currentVirtualDesktop() const =0
virtual Layout * duplicateLayout(Layout *source)=0
virtual QJsonObject loadAutotileOverrides(const QString &algorithmId) const
Per-algorithm autotile settings (gaps, shader, hiddenFromSelector, …) stored in the unified layout-se...
Definition IZoneLayoutRegistry.h:214
virtual QString tilingAlgorithmForScreen(const QString &screenId, int virtualDesktop=0, const QString &activity=QString()) const
Raw id of the tiling algorithm active for the (screenId, virtualDesktop, activity) context,...
Definition IZoneLayoutRegistry.h:226
virtual int layoutCount() const =0
Represents a collection of zones that form a layout.
Definition Layout.h:42
constexpr QLatin1String ScrollingId
Scrolling has no layout entity, so its whole id is the bare sentinel — it exists so a mode-only Scrol...
Definition LayoutId.h:37
Definition IWindowTrackingService.h:23
constexpr QLatin1String NoScrollingTemplate
Reserved value of AssignmentEntry::scrollingTemplateLayout meaning "this context explicitly uses NO s...
Definition AssignmentEntry.h:132
Per-context gap override resolved from rules.
Definition AssignmentEntry.h:362
Per-context overlay-property overrides resolved from window-rule actions.
Definition AssignmentEntry.h:400