Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
PhosphorEngine::WindowRegistry Class Reference

#include <phosphor-engine/include/PhosphorEngine/WindowRegistry.h>

Inheritance diagram for PhosphorEngine::WindowRegistry:
[legend]

Signals

void windowAppeared (const QString &instanceId)
 
void metadataChanged (const QString &instanceId, const WindowMetadata &oldMetadata, const WindowMetadata &newMetadata)
 
void windowDisappeared (const QString &instanceId)
 

Public Member Functions

 WindowRegistry (QObject *parent=nullptr)
 
 ~WindowRegistry () override
 
void upsert (const QString &instanceId, const WindowMetadata &metadata)
 
void remove (const QString &instanceId)
 
std::optional< WindowMetadatametadata (const QString &instanceId) const
 
QString appIdFor (const QString &instanceId) const override
 
QStringList instancesWithAppId (const QString &appId) const
 
bool contains (const QString &instanceId) const
 
QStringList allInstances () const
 
int size () const
 
void clear ()
 
QString canonicalizeWindowId (const QString &rawWindowId) override
 
QString canonicalizeForLookup (const QString &rawWindowId) const override
 
void releaseCanonical (const QString &anyWindowId)
 
int pruneStaleInstances (const QSet< QString > &aliveInstanceIds)
 Defensive cleanup for windows that died WITHOUT a close signal reaching the registry (compositor crash, lost D-Bus call): drop every metadata record AND canonical-id translation whose instance id is absent from aliveInstanceIds, firing windowDisappeared for each so subscribers (e.g.
 
- Public Member Functions inherited from PhosphorEngine::IWindowRegistry
virtual ~IWindowRegistry ()=default
 

Constructor & Destructor Documentation

◆ WindowRegistry()

PhosphorEngine::WindowRegistry::WindowRegistry ( QObject *  parent = nullptr)
explicit

◆ ~WindowRegistry()

PhosphorEngine::WindowRegistry::~WindowRegistry ( )
override

Member Function Documentation

◆ allInstances()

QStringList PhosphorEngine::WindowRegistry::allInstances ( ) const

◆ appIdFor()

QString PhosphorEngine::WindowRegistry::appIdFor ( const QString &  instanceId) const
overridevirtual

◆ canonicalizeForLookup()

QString PhosphorEngine::WindowRegistry::canonicalizeForLookup ( const QString &  rawWindowId) const
overridevirtual

◆ canonicalizeWindowId()

QString PhosphorEngine::WindowRegistry::canonicalizeWindowId ( const QString &  rawWindowId)
overridevirtual

◆ clear()

void PhosphorEngine::WindowRegistry::clear ( )

◆ contains()

bool PhosphorEngine::WindowRegistry::contains ( const QString &  instanceId) const

◆ instancesWithAppId()

QStringList PhosphorEngine::WindowRegistry::instancesWithAppId ( const QString &  appId) const

◆ metadata()

std::optional< WindowMetadata > PhosphorEngine::WindowRegistry::metadata ( const QString &  instanceId) const

◆ metadataChanged

void PhosphorEngine::WindowRegistry::metadataChanged ( const QString &  instanceId,
const WindowMetadata oldMetadata,
const WindowMetadata newMetadata 
)
signal

◆ pruneStaleInstances()

int PhosphorEngine::WindowRegistry::pruneStaleInstances ( const QSet< QString > &  aliveInstanceIds)

Defensive cleanup for windows that died WITHOUT a close signal reaching the registry (compositor crash, lost D-Bus call): drop every metadata record AND canonical-id translation whose instance id is absent from aliveInstanceIds, firing windowDisappeared for each so subscribers (e.g.

saved-autotile-order cleanup) drop their ghost state too. Returns the count removed. aliveInstanceIds are the uuid components (WindowId::extractInstanceId), matching this registry's keying. The normal per-window path is remove() + releaseCanonical on windowClosed; this is the batch backstop the WTA alive-ids report drives.

◆ releaseCanonical()

void PhosphorEngine::WindowRegistry::releaseCanonical ( const QString &  anyWindowId)

◆ remove()

void PhosphorEngine::WindowRegistry::remove ( const QString &  instanceId)

◆ size()

int PhosphorEngine::WindowRegistry::size ( ) const

◆ upsert()

void PhosphorEngine::WindowRegistry::upsert ( const QString &  instanceId,
const WindowMetadata metadata 
)

◆ windowAppeared

void PhosphorEngine::WindowRegistry::windowAppeared ( const QString &  instanceId)
signal

◆ windowDisappeared

void PhosphorEngine::WindowRegistry::windowDisappeared ( const QString &  instanceId)
signal

The documentation for this class was generated from the following file: