- Qt 6.9
- Qt Wayland Compositor
- C++ Classes
- QWaylandQuickItem
- Qt Wayland Compositor | Commercial or GPLv3

# QWaylandQuickItem Class

The QWaylandQuickItem class provides a Qt Quick item representing a QWaylandView. More...

Header: | `#include <QWaylandQuickItem>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)` `target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)`
qmake: | `QT += waylandcompositor`
In QML: | WaylandQuickItem
Inherits: | QQuickItem
Inherited By: | QWaylandQuickShellSurfaceItem

- List of all members, including inherited members

## Properties

allowDiscardFrontBuffer : bool bufferLocked : bool compositor : QWaylandCompositor* const focusOnClick : bool origin : const QWaylandSurface::Origin | output : QWaylandOutput* paintEnabled : bool surface : QWaylandSurface* touchEventsEnabled : bool

## Public Functions

| QWaylandQuickItem(QQuickItem *parent = nullptr)
virtual | ~QWaylandQuickItem() override
bool | allowDiscardFrontBuffer() const
QWaylandCompositor * | compositor() const
bool | focusOnClick() const
bool | inputEventsEnabled() const
bool | inputRegionContains(const QPointF &localPosition) const
bool | isBufferLocked() const
bool | isPaintEnabled() const
QPointF | mapFromSurface(const QPointF &point) const
QPointF | mapToSurface(const QPointF &point) const
QWaylandSurface::Origin | origin() const
QWaylandOutput * | output() const
void | setAllowDiscardFrontBuffer(bool discard)
void | setBufferLocked(bool locked)
void | setFocusOnClick(bool focus)
void | setInputEventsEnabled(bool enabled)
void | setOutput(QWaylandOutput *output)
void | setPrimary()
void | setSubsurfaceHandler(QObject *)
void | setSurface(QWaylandSurface *surface)
void | setTouchEventsEnabled(bool enabled)
QObject * | subsurfaceHandler() const
QWaylandSurface * | surface() const
bool | touchEventsEnabled() const
QWaylandView * | view() const

## Reimplemented Public Functions

virtual QSGTextureProvider * | textureProvider() const override

## Public Slots

void | setPaintEnabled(bool paintEnabled)
virtual void | takeFocus(QWaylandSeat *device = nullptr)

## Signals

void | allowDiscardFrontBufferChanged()
void | bufferLockedChanged()
void | compositorChanged()
void | focusOnClickChanged()
void | inputEventsEnabledChanged()
void | originChanged()
void | outputChanged()
void | paintEnabledChanged()
void | subsurfaceHandlerChanged()
void | surfaceChanged()
void | surfaceDestroyed()
void | touchEventsEnabledChanged()

## Detailed Description

When writing a QWaylandCompositor in Qt Quick, this class can be used to display a client's contents on an output device and will pass user input to the client.

## Property Documentation

### allowDiscardFrontBuffer : bool

By default, the item locks the current buffer until a new buffer is available and updatePaintNode() is called. Set this property to true to allow Qt to release the buffer immediately when the throttling view is no longer using it. This is useful for items that have slow update intervals.

Access functions:

bool | allowDiscardFrontBuffer() const
void | setAllowDiscardFrontBuffer(bool discard)

Notifier signal:

void | allowDiscardFrontBufferChanged()

### bufferLocked : bool

This property holds whether the item's buffer is currently locked. As long as the buffer is locked, it will not be released and returned to the client.

The default is false.

Access functions:

bool | isBufferLocked() const
void | setBufferLocked(bool locked)

Notifier signal:

void | bufferLockedChanged()

### `[read-only]` compositor : QWaylandCompositor* const

This property holds the compositor for the surface rendered by this QWaylandQuickItem.

Access functions:

QWaylandCompositor * | compositor() const

Notifier signal:

void | compositorChanged()

### focusOnClick : bool

This property specifies whether the QWaylandQuickItem should take focus when it is clicked or touched.

The default is `true`.

Access functions:

bool | focusOnClick() const
void | setFocusOnClick(bool focus)

Notifier signal:

void | focusOnClickChanged()

### `[read-only]` origin : const QWaylandSurface::Origin

This property holds the origin of the QWaylandQuickItem.

Access functions:

QWaylandSurface::Origin | origin() const

Notifier signal:

void | originChanged()

### output : QWaylandOutput*

This property holds the output on which this item is displayed.

Access functions:

QWaylandOutput * | output() const
void | setOutput(QWaylandOutput *output)

Notifier signal:

void | outputChanged()

### paintEnabled : bool

Holds `true` if the item is hidden, though the texture is still updated. As opposed to hiding the item by setting visible to `false`, setting this property to `false` will not prevent mouse or keyboard input from reaching item.

Access functions:

bool | isPaintEnabled() const
void | setPaintEnabled(bool paintEnabled)

Notifier signal:

void | paintEnabledChanged()

### surface : QWaylandSurface*

This property holds the surface rendered by this QWaylandQuickItem.

Access functions:

QWaylandSurface * | surface() const
void | setSurface(QWaylandSurface *surface)

Notifier signal:

void | surfaceChanged()

### touchEventsEnabled : bool

This property holds `true` if touch events are forwarded to the client surface, `false` otherwise.

Access functions:

bool | touchEventsEnabled() const
void | setTouchEventsEnabled(bool enabled)

Notifier signal:

void | touchEventsEnabledChanged()

## Member Function Documentation

### QWaylandQuickItem::QWaylandQuickItem(QQuickItem *parent = nullptr)

Constructs a QWaylandQuickItem with the given parent.

### `[override virtual noexcept]` QWaylandQuickItem::~QWaylandQuickItem()

Destroy the QWaylandQuickItem.

### bool QWaylandQuickItem::inputRegionContains(const QPointF &localPosition) const

Returns `true` if the input region of this item's surface contains the position given by localPosition.

### `[invokable]` QPointF QWaylandQuickItem::mapFromSurface(const QPointF &point) const

Maps the given point in the Wayland surfaces's coordinate system to the equivalent point within this item's coordinate system, and returns the mapped coordinate.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` QPointF QWaylandQuickItem::mapToSurface(const QPointF &point) const

Maps the given point in this item's coordinate system to the equivalent point within the Wayland surface's coordinate system, and returns the mapped coordinate.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` void QWaylandQuickItem::setPrimary()

Makes this QWaylandQuickItem's view the primary view for the surface.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QWaylandSurface::primaryView.

### `[signal]` void QWaylandQuickItem::surfaceDestroyed()

This signal is emitted when the client has destroyed the `wl_surface` associated with the QWaylandQuickItem. The handler for this signal is expected to either destroy the QWaylandQuickItem immediately or start a close animation and then destroy the Item.

If an animation is started, bufferLocked should be set to ensure the item keeps its content until the animation finishes

See also QWaylandQuickItem::bufferLocked.

### `[virtual slot]` void QWaylandQuickItem::takeFocus(QWaylandSeat *device = nullptr)

Calling this function causes the item to take the focus of the input device.

### `[override virtual]` QSGTextureProvider *QWaylandQuickItem::textureProvider() const

Reimplements: QQuickItem::textureProvider() const.

Returns the texture provider of this QWaylandQuickItem.

### QWaylandView *QWaylandQuickItem::view() const

Returns the view rendered by this QWaylandQuickItem.