KWaylandServer::SurfaceInterface

KWaylandServer::SurfaceInterface Class Reference

#include <surface_interface.h>

Inheritance diagram for KWaylandServer::SurfaceInterface:

Properties

qint32 bufferScale
 
KWaylandServer::OutputInterface::Transform bufferTransform
 
QRegion damage
 
QRegion input
 
QRegion opaque
 
QSize size
 
- Properties inherited from QObject
 objectName
 

Signals

void aboutToBeDestroyed ()
 
void blurChanged ()
 
void bufferScaleChanged (qint32)
 
void bufferSizeChanged ()
 
void bufferTransformChanged (KWaylandServer::OutputInterface::Transform)
 
void childSubSurfaceAdded (SubSurfaceInterface *subSurface)
 
void childSubSurfaceRemoved (SubSurfaceInterface *subSurface)
 
void committed ()
 
void contrastChanged ()
 
void damaged (const QRegion &)
 
void inhibitsIdleChanged ()
 
void inputChanged (const QRegion &)
 
void mapped ()
 
void opaqueChanged (const QRegion &)
 
void pointerConstraintsChanged ()
 
void shadowChanged ()
 
void sizeChanged ()
 
void slideOnShowHideChanged ()
 
void subSurfaceTreeChanged ()
 
void surfaceToBufferMatrixChanged ()
 
void unmapped ()
 

Public Member Functions

 SurfaceInterface (CompositorInterface *compositor, wl_resource *resource)
 
QPointer< BlurInterfaceblur () const
 
QRect boundingRect () const
 
BufferInterfacebuffer ()
 
qint32 bufferScale () const
 
QSize bufferSize () const
 
OutputInterface::Transform bufferTransform () const
 
QList< QPointer< SubSurfaceInterface > > childSubSurfaces () const
 
ClientConnectionclient () const
 
CompositorInterfacecompositor () const
 
QPointer< ConfinedPointerInterfaceconfinedPointer () const
 
QPointer< ContrastInterfacecontrast () const
 
QRegion damage () const
 
SurfaceInterfacedataProxy () const
 
void frameRendered (quint32 msec)
 
uint32_t id () const
 
bool inhibitsIdle () const
 
QRegion input () const
 
bool inputIsInfinite () const
 
SurfaceInterfaceinputSurfaceAt (const QPointF &position)
 
bool isMapped () const
 
QPointer< LockedPointerInterfacelockedPointer () const
 
QPointF mapFromBuffer (const QPointF &point) const
 
QRegion mapFromBuffer (const QRegion &region) const
 
QPointF mapToBuffer (const QPointF &point) const
 
QRegion mapToBuffer (const QRegion &region) const
 
QPoint offset () const
 
QRegion opaque () const
 
QVector< OutputInterface * > outputs () const
 
void resetTrackedDamage ()
 
wl_resource * resource () const
 
void setDataProxy (SurfaceInterface *surface)
 
void setOutputs (const QVector< OutputInterface * > &outputs)
 
QPointer< ShadowInterface > shadow () const
 
QSize size () const
 
QPointer< SlideInterfaceslideOnShowHide () const
 
QPointer< SubSurfaceInterfacesubSurface () const
 
SurfaceInterfacesurfaceAt (const QPointF &position)
 
QMatrix4x4 surfaceToBufferMatrix () const
 
QRegion trackedDamage () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Static Public Member Functions

static SurfaceInterfaceget (wl_resource *native)
 
static SurfaceInterfaceget (quint32 id, const ClientConnection *client)
 
static QList< SurfaceInterface * > surfaces ()
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Additional Inherited Members

- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

Resource representing a wl_surface.

The SurfaceInterface gets created by the CompositorInterface. A SurfaceInterface normally takes up a role by being "attached" to either a ShellSurfaceInterface, a SubSurfaceInterface or a Cursor.

The implementation of the SurfaceInterface does not only wrap the features exposed by wl_surface, but goes further by integrating the information added to a SurfaceInterface by other interfaces. This should make interacting from the server easier, it only needs to monitor the SurfaceInterface and does not need to track each specific interface.

The SurfaceInterface takes care of reference/unreferencing the BufferInterface attached to it. As long as a BufferInterface is attached, the released signal won't be sent. If the BufferInterface is no longer needed by the SurfaceInterface, it will get unreferenced and might be automatically deleted (if it's no longer referenced).

See also
CompositorInterface
BufferInterface
SubSurfaceInterface
BlurInterface
ContrastInterface
ShadowInterface
SlideInterface

Definition at line 57 of file surface_interface.h.

Property Documentation

QRegion KWaylandServer::SurfaceInterface::damage
read

The current damage region.

Definition at line 63 of file surface_interface.h.

QRegion KWaylandServer::SurfaceInterface::input
read

The current input region.

Definition at line 71 of file surface_interface.h.

QRegion KWaylandServer::SurfaceInterface::opaque
read

The opaque region for a translucent buffer.

Definition at line 67 of file surface_interface.h.

Member Function Documentation

void KWaylandServer::SurfaceInterface::aboutToBeDestroyed ( )
signal

This signal is emitted when the underlying wl_surface resource is about to be freed.

The unbound() signal is emitted either when the client that owns the surface has been destroyed or if the surface has been destroyed due to a destructor request.

The SurfaceInterface object and the associated wl_surface resource are valid when this signal is emitted.

QPointer< BlurInterface > KWaylandServer::SurfaceInterface::blur ( ) const
Returns
The Blur for this Surface.
Since
5.5

Definition at line 828 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::blurChanged ( )
signal
Since
5.5
QRect KWaylandServer::SurfaceInterface::boundingRect ( ) const

Returns the rectangle that bounds this surface and all of its sub-surfaces.

QPoint(0, 0) corresponds to the upper left corner of this surface.

Since
5.69

Definition at line 810 of file surface_interface.cpp.

BufferInterface * KWaylandServer::SurfaceInterface::buffer ( )
Returns
the current BufferInterface, might be nullptr.

Definition at line 766 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::bufferScaleChanged ( qint32  )
signal

This signal is emitted when the scale of the attached buffer has changed.

QSize KWaylandServer::SurfaceInterface::bufferSize ( ) const

Returns the size of the attached buffer, in device pixels.

If no buffer is attached to this surface, an invalid QSize will be returned.

void KWaylandServer::SurfaceInterface::bufferSizeChanged ( )
signal

This signal is emitted when the size of the attached buffer has changed.

OutputInterface::Transform KWaylandServer::SurfaceInterface::bufferTransform ( ) const

Returns the buffer transform that had been applied to the buffer to compensate for output rotation.

If the surface is on an output that is rotated 90 degrees clockwise, the buffer will be rotated 90 degrees counter clockwise.

void KWaylandServer::SurfaceInterface::bufferTransformChanged ( KWaylandServer::OutputInterface::Transform  )
signal

This signal is emitted when the buffer transform has changed.

void KWaylandServer::SurfaceInterface::childSubSurfaceAdded ( SubSurfaceInterface subSurface)
signal

Emitted whenever a new child sub-surface subSurface is added.

Since
5.70
void KWaylandServer::SurfaceInterface::childSubSurfaceRemoved ( SubSurfaceInterface subSurface)
signal

Emitted whenver the child sub-surface subSurface is removed.

Since
5.70
QList< QPointer< SubSurfaceInterface > > KWaylandServer::SurfaceInterface::childSubSurfaces ( ) const
Returns
Children in stacking order from bottom (first) to top (last).

Definition at line 795 of file surface_interface.cpp.

ClientConnection * KWaylandServer::SurfaceInterface::client ( ) const

Returns the Wayland client that owns this SurfaceInterface.

Definition at line 406 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::committed ( )
signal

Emitted when the Surface has been committed.

This signal is emitted after all the relevant damage and xyzChanged signals for this commit are emitted.

Since
5.54
CompositorInterface * KWaylandServer::SurfaceInterface::compositor ( ) const

Returns the compositor for this SurfaceInterface.

Definition at line 416 of file surface_interface.cpp.

QPointer< ConfinedPointerInterface > KWaylandServer::SurfaceInterface::confinedPointer ( ) const

Pointer confinement installed on this SurfaceInterface.

See also
pointerConstraintsChanged
Since
5.29

Definition at line 962 of file surface_interface.cpp.

QPointer< ContrastInterface > KWaylandServer::SurfaceInterface::contrast ( ) const
Returns
The Contrast for this Surface.
Since
5.5

Definition at line 833 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::contrastChanged ( )
signal
Since
5.5
void KWaylandServer::SurfaceInterface::damaged ( const QRegion )
signal

Emitted whenever the SurfaceInterface got damaged.

The signal is only emitted during the commit of state. A damage means that a new BufferInterface got attached.

See also
buffer
damage
SurfaceInterface * KWaylandServer::SurfaceInterface::dataProxy ( ) const

Returns the data proxy of this SurfaceInterface or null if there is none set.

Since
5.56

Definition at line 977 of file surface_interface.cpp.

SurfaceInterface * KWaylandServer::SurfaceInterface::get ( wl_resource *  native)
static
Returns
The SurfaceInterface for the native resource.

Definition at line 776 of file surface_interface.cpp.

SurfaceInterface * KWaylandServer::SurfaceInterface::get ( quint32  id,
const ClientConnection client 
)
static
Returns
The SurfaceInterface with given id for client, if it exists, otherwise nullptr.
Since
5.3

Definition at line 784 of file surface_interface.cpp.

uint32_t KWaylandServer::SurfaceInterface::id ( ) const

Returns the object id for this Wayland surface.

Definition at line 401 of file surface_interface.cpp.

bool KWaylandServer::SurfaceInterface::inhibitsIdle ( ) const
Returns
Whether this SurfaceInterface wants idle to be inhibited on the Output it is shown
See also
inhibitsIdleChanged
Since
5.41

Definition at line 967 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::inhibitsIdleChanged ( )
signal

Emitted whenever the SurfaceInterface starts/ends to inhibit idle.

See also
inhibitsIdle
Since
5.41
SurfaceInterface * KWaylandServer::SurfaceInterface::inputSurfaceAt ( const QPointF position)

Finds the input receiving SurfaceInterface at the given position in surface-local coordinates.

This can be either a descendant SurfaceInterface honoring the stacking order or the SurfaceInterface itself if its geometry contains the given position.

If no such SurfaceInterface is found, e.g. because the SurfaceInterface is unmapped or there is no input region containing the position, nullptr is returned.

Parameters
positionThe position in surface-local coordinates
Returns
Input receiving child surface at the given position or surface itself at the position, might be nullptr
Since
5.52

Definition at line 929 of file surface_interface.cpp.

bool KWaylandServer::SurfaceInterface::isMapped ( ) const

Whether the SurfaceInterface is currently considered to be mapped.

A SurfaceInterface is mapped if it has a non-null BufferInterface attached. If the SurfaceInterface references a SubSurfaceInterface it is only considered mapped if it has a BufferInterface attached and the parent SurfaceInterface is mapped.

Returns
Whether the SurfaceInterface is currently mapped
Since
5.22

Definition at line 843 of file surface_interface.cpp.

QPointer< LockedPointerInterface > KWaylandServer::SurfaceInterface::lockedPointer ( ) const

Pointer lock installed on this SurfaceInterface.

See also
pointerConstraintsChanged
Since
5.29

Definition at line 957 of file surface_interface.cpp.

QPointF KWaylandServer::SurfaceInterface::mapFromBuffer ( const QPointF point) const

Maps the specified point from the buffer pixel coordinates to surface-local coordinates.

Note that there is no direct connection between points in the surface-local coordinates and points in the buffer pixel coordinates. In order to map points between the two spaces, one has to use mapToBuffer() and mapFromBuffer().

The returned value will become invalid when the surfaceToBufferMatrixChanged() signal is emitted.

See also
surfaceToBufferMatrix(), surfaceToBufferMatrixChanged()
Since
5.20

Definition at line 987 of file surface_interface.cpp.

QRegion KWaylandServer::SurfaceInterface::mapFromBuffer ( const QRegion region) const

Maps the specified region from the buffer pixel coordinates to surface-local coordinates.

Note that there is no direct connection between regions in the surface-local coordinates and regions in the buffer pixel coordinates. In order to map regions between the two spaces, one has to use mapToBuffer() and mapFromBuffer().

The returned value will become invalid when the surfaceToBufferMatrixChanged() signal is emitted.

See also
surfaceToBufferMatrix(), surfaceToBufferMatrixChanged()
Since
5.20

Definition at line 1006 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::mapped ( )
signal

Emitted when the Surface becomes visible, i.e.

a non-null buffer has been attached.

QPointF KWaylandServer::SurfaceInterface::mapToBuffer ( const QPointF point) const

Maps the specified point from the surface-local coordinates to buffer pixel coordinates.

Note that there is no direct connection between points in the surface-local coordinates and points in the buffer pixel coordinates. In order to map points between the two spaces, one has to use mapToBuffer() and mapFromBuffer().

The returned value will become invalid when the surfaceToBufferMatrixChanged() signal is emitted.

See also
surfaceToBufferMatrix(), surfaceToBufferMatrixChanged()
Since
5.20

Definition at line 982 of file surface_interface.cpp.

QRegion KWaylandServer::SurfaceInterface::mapToBuffer ( const QRegion region) const

Maps the specified region from the surface-local coordinates to buffer pixel coordinates.

Note that there is no direct connection between regions in the surface-local coordinates and regions in the buffer pixel coordinates. In order to map regions between the two spaces, one has to use mapToBuffer() and mapFromBuffer().

The returned value will become invalid when the surfaceToBufferMatrixChanged() signal is emitted.

See also
surfaceToBufferMatrix(), surfaceToBufferMatrixChanged()
Since
5.20

Definition at line 1001 of file surface_interface.cpp.

QVector< OutputInterface * > KWaylandServer::SurfaceInterface::outputs ( ) const
Returns
All OutputInterfaces the SurfaceInterface is on.
See also
setOutputs
Since
5.27

Definition at line 863 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::pointerConstraintsChanged ( )
signal

Emitted whenever a pointer constraint get (un)installed on this SurfaceInterface.

The pointer constraint does not get activated, the compositor needs to activate the lock/confinement.

See also
confinedPointer
lockedPointer
Since
5.29
void KWaylandServer::SurfaceInterface::resetTrackedDamage ( )

Reset the damage tracking.

The compositor should invoke this method once it updated it's internal state and processed the current damage.

See also
trackedDamage
Since
5.22

Definition at line 858 of file surface_interface.cpp.

wl_resource * KWaylandServer::SurfaceInterface::resource ( ) const

Returns the Wayland resource corresponding to this SurfaceInterface.

Definition at line 411 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::setDataProxy ( SurfaceInterface surface)

Set surface as a data proxy for this SurfaceInterface.

This enables the proxy to conduct drags on the surface's client behalf.

Setting a data proxy is only allowed when the client owning this surface has not created a data device itself.

Since
5.56

Definition at line 972 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::setOutputs ( const QVector< OutputInterface * > &  outputs)

Sets the outputs this SurfaceInterface overlaps with, may be empty.

The compositor should update whenever the SurfaceInterface becomes visible on an OutputInterface by e.g. getting (un)mapped, resized, moved, etc.

See also
outputs
Since
5.27

Definition at line 868 of file surface_interface.cpp.

QPointer< ShadowInterface > KWaylandServer::SurfaceInterface::shadow ( ) const
Returns
The Shadow for this Surface.
Since
5.4

Definition at line 823 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::shadowChanged ( )
signal
Since
5.4
QSize KWaylandServer::SurfaceInterface::size ( ) const

Returns the current size of the surface, in surface coordinates.

Note that there is no direct relationship between the surface size and the buffer size. In order to determine the size of the currently attached buffer, use buffer()->size().

void KWaylandServer::SurfaceInterface::sizeChanged ( )
signal

This signal is emitted when the surface size has changed.

QPointer< SlideInterface > KWaylandServer::SurfaceInterface::slideOnShowHide ( ) const
Returns
The Slide for this Surface.
Since
5.5

Definition at line 838 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::slideOnShowHideChanged ( )
signal
Since
5.5
QPointer< SubSurfaceInterface > KWaylandServer::SurfaceInterface::subSurface ( ) const
Returns
The SubSurface for this Surface in case there is one.

Definition at line 800 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::subSurfaceTreeChanged ( )
signal

Emitted whenever the tree of sub-surfaces changes in a way which requires a repaint.

Since
5.22
SurfaceInterface * KWaylandServer::SurfaceInterface::surfaceAt ( const QPointF position)

Finds the SurfaceInterface at the given position in surface-local coordinates.

This can be either a descendant SurfaceInterface honoring the stacking order or the SurfaceInterface itself if its geometry contains the given position.

If no such SurfaceInterface is found, e.g. because the SurfaceInterface is unmapped, nullptr is returned.

Parameters
positionThe position in surface-local coordinates
Returns
Child surface at the given position or surface itself at the position, might be nullptr
Since
5.22

Definition at line 904 of file surface_interface.cpp.

QList< SurfaceInterface * > KWaylandServer::SurfaceInterface::surfaces ( )
static

Returns a list with all created Wayland surfaces.

Definition at line 421 of file surface_interface.cpp.

QMatrix4x4 KWaylandServer::SurfaceInterface::surfaceToBufferMatrix ( ) const

Returns the projection matrix from the surface-local coordinates to buffer coordinates.

See also
surfaceToBufferMatrixChanged()
Since
5.20

Definition at line 1011 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::surfaceToBufferMatrixChanged ( )
signal

This signal is emitted when the projection matrix from the surface-local coordinate space to the buffer coordinate space has been changed.

Note that the compositor will most likely need to re-compute the texture coordinates after the surface-to-buffer matrix has been changed.

QRegion KWaylandServer::SurfaceInterface::trackedDamage ( ) const

Returns the tracked damage since the last call to resetTrackedDamage.

In contrast to damage this method does not reset the damage when a new BufferInterface gets committed. This allows a compositor to properly track the damage over multiple commits even if it didn't render each new BufferInterface.

The damage gets reset whenever resetTrackedDamage is called. This allows a compositor to properly track the change in its rendering scene for this SurfaceInterface. After it updates its internal state (e.g. by creating an OpenGL texture from the BufferInterface) it can invoke resetTrackedDamage and the damage tracker will start to track further damage changes.

Returns
Combined damage since last call to resetTrackedDamage
See also
damage
resetTrackedDamage
Since
5.22

Definition at line 853 of file surface_interface.cpp.

void KWaylandServer::SurfaceInterface::unmapped ( )
signal

Emitted when the Surface removes its content.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Wed Aug 5 2020 23:05:08 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.